0% encontró este documento útil (0 votos)
4 vistas25 páginas

Introducción a MATLAB: Entradas y Salidas

El documento es un curso básico de MATLAB R2020B que cubre entradas y salidas de variables, estructuras de control como if-else y bucles for y while, así como la creación y uso de funciones. Se presentan ejemplos prácticos para resolver ecuaciones, calcular áreas y realizar estadísticas, además de manipulación de funciones y evaluación simbólica. También se aborda la solución de ecuaciones y el cálculo simbólico en MATLAB.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas25 páginas

Introducción a MATLAB: Entradas y Salidas

El documento es un curso básico de MATLAB R2020B que cubre entradas y salidas de variables, estructuras de control como if-else y bucles for y while, así como la creación y uso de funciones. Se presentan ejemplos prácticos para resolver ecuaciones, calcular áreas y realizar estadísticas, además de manipulación de funciones y evaluación simbólica. También se aborda la solución de ecuaciones y el cálculo simbólico en MATLAB.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

CURSO BASICO DE

MATLAB
R2020B
Ing. [Link]. Roberto Parra Zeballos

MATLAB - 2DA. PARTE


ENTRADAS Y SALIDAS DE VARIABLES
Input → Aparece un mensaje pidiendo un dato. El valor digitado será dado a la variable. Si se desea
asignar una cadena se añade el argumento ‘s’.
Sintaxis: Variable = input (‘mensaje’, ’s’)
Ejemplos:
>> z=input(‘Ingrese un número:’)
Ingrese un número: 7
>> whos z
Name Size Bytes Class Attributes
z 1x1 8 double
>> NOM = input ('Cuál es tu nombre?','s')
Cuál es tu nombre?Juancito
NOM =
Juancito
>> whos NOM
Name Size Bytes Class Attributes
NOM 1x8 16 char
ENTRADAS Y SALIDAS DE VARIABLES
disp → visualiza en pantalla un mensaje de texto o el valor de
una matriz, pero sin imprimir su nombre.
%c tipo

Ejemplos: %s para cadena de caracteres


>> disp (’FIN DEL PROGRAMA’)
%d para variables enteras
FIN DEL PROGRAMA
>> A %f para variables reales
A=
%lf para grandes variables reales
1 2 3 >>x=1/3
4 5 6 x= %e decimal tipo exponencial
0.3333
>> disp(A) >> disp('El valor de x = '), disp (x)
1 2 3 El valor de x =
0.3333
4 5 6 \n → nueva lines
fprintf → Visualiza un valor numérico con formato \t → tabulador
Sintaxis; fprintf( ‘mensaje y formato de la variable’, variable) \b → backspace
\r → return
Ejemplo: >> área = 100; \f → alimentación de hoja
>> fprintf ('El área del rectángulo es %12.3f cm2 \n', area)
El área del rectángulo es 100.000 cm2
ESTRUCTURAS IF-ELSEIF-ELSE-END
La orden else puede
 if expresión lógica 1 aparecer o no.
 conjunto de órdenes 1 También puede
 elseif expresión lógica 2 aparecer sólo la
 conjunto de órdenes 2 combinación if-end o
 elseif expresión lógica 3 la combinación
 conjunto de órdenes 3 if-else-end.
 .
 .
 else
 conjunto de órdenes

 end
 EJEMPLO
 Resolver una ecuación de 2do. Grado de la forma:
ax2 + bx + c = 0
 Se crea el siguiente fichero .m:
 % PROGRAMA QUE RESUELVE UNA ECUACIÓN DE 2DO. GRADO
 % DE LA FORMA--> a x^2 + b x +c = 0
 a = input('Lea la variable a = ?')
 b = input('Lea la variable b = ?')
 c = input('Lea la variable c = ?')
 D = b^2 - 4*a*c;
 % definir si las soluciones son reales o imaginarias
 if (D >= 0)
 x1 = (-b + sqrt(D))/(2*a);
 x2 = (-b - sqrt(D))/(2*a);
 fprintf ( '\n Las soluciones son: %10.5f %10.5f', x1, x2)
 else
 Re = -b/(2*a);
 Im = sqrt(abs(D))/(2*a);
 disp('Soluciones Imaginarias')
 x1 = Re + Im * sqrt(-1)
 x2 = Re - Im * sqrt(-1)

 end
LA ESTRUCTURA FOR-END
La sintaxis es la siguiente: For i = 1:0.1:10
 for k=x
 conjunto de órdenes
 end
donde k es una varible y x es un vector.
Por ejemplo si queremos calcular el valor de k2, cuando k = 4,5,6:
>> for k=[4,5,6]
 k^2
 end

Bucles while-end
Su sintaxis es la siguiente:
 while expresión lógica
 conjunto de órdenes
 End
EJEMPLO
 x=1
 while x<=11
 x=2*x
 end
 El valor de 𝑒 𝑥 se calcula con la siguiente serie de
Taylor:
TERM < Epsilon
𝑥 𝑥2 𝑥3
 𝑒 𝑥 = 1 + 1! + 2!
+ 3!
+⋯ −∞<𝑥 <∞

 Para cualquier valor de x, calcule el valor de 𝑒 𝑥 y


determine su error.

While (abs(TERM)) > Epsilon


----
----
----
end
FICHEROS FUNCTION
 Las function se construyen en ficheros .m . Las funciones
son archivos que pueden aceptar argumentos de entrada y devolver
argumentos de salida.
 function [Argumento(s) de Salida] = nombrefuncion (Arg.
Entrada)
% líneas de comentarios
% que aparecen al ejecutar
% help nombrefuncion
Órdenes que hacen los cálculos
...
 Por norma los nombres de la function y del fichero coincidirán.
Es decir, el fichero lo llamamos nombrefuncion.m
 Para llamar o ejecutar la function se realiza como las órdenes
normales
 » [Argumento(s) de Salida] = nombrefuncion (Arg. Entrada)
CONSTRUIR UNA FUNCTION RAICES.M QUE CALCULE LAS RAÍCES DE UN
POLINOMIO DE SEGUNDO GRADO AX2+BX+C

Una vez guardado el fichero


raices.m. Se puede llamar
Se escribe en el fichero raices.m >> [x,y] = raices(1,-3,2)
 function [x1, x2] = raices(a,b,c) x=
2
% y=
 % Función que calcula en x1 y x2 las raíces 1
>> help raices
 % de un polinomio de segundo grado Función que calcula en x1 y x2
 % a x^2 + b x + c = 0 las raíces
de un polinomio de segundo
% grado
a x^2 + b x + c = 0
 disc=sqrt(b*b-4*a*c)
 x1 = (-b + disc)/(2*a)
 x2 = (-b - disc)/(2*a)
ALGO MAS DE FUNCTION

MAS SOBRE FUNCIONES …
 Function [valores de retorno]= nombre_function (argumentos de entrada)
 Variable Local = se declara dentro de una function y es reconocida solo por esta.
 Variable Global = Variables a las cuales pueden acceder una funcion sin haber
sido pasadas como argumentos.
function prueba2 ()
global A; global B;
function b = prueba1 (a)
x=5;
x=5;
b=x*a; B=x*A;
end end
>> prueba1(5)
>> global A; >> A = 4;
ans = 25
>> b
>> global B; >> prueba2
Undefined function or variable 'b’. >> A=3; B=
>> prueba2 20
B = 15
EJEMPLO – CÁLCULO DE MEDIA Y
DESVIACION ESTANDARD
function [M, S] = media_desv(x) else
n =length (x); %POBLACION
M = sum(x)/n; dip('Poblacion')
suma = 0; disp (n)
% Muestra S = sqrt(suma/n);
for i = 1:n end
dif = (x(i)-M)^2; end
suma = suma + dif;
end >>x=[1 2 3 4 5 6];
if n <= 30 >> [M,S]= media_desv(x)
% MUESTRA Muestra
disp('Muestra') 6
disp (n) M= 3.5000
S = sqrt(suma/(n-1)); S= 1.8708
SUB-FUNCIONES –FUNCIONES
LLAMADAS POR OTRA FUNCION
function m = mediana (v,n)
%sub-funcion que calcula la mediana
w = sort (v);
function [MEDIA, MEDIANA] =
estadistica(u) %FUNCION PRIMARIA if rem (n,2) == 1
n = length (u); m = w((n+1)/2);
MEDIA = media(u,n); else
MEDIANA = mediana (u, n); m=(w(n/2)+w(n/2+1))/2;
end end
function a=media (v,n)
end
%sub-funcion que calcula la media
>> u = [6 5 4 1 2 3];
a =sum(v)/n;
>> [MEDIA, MEDIANA] = estadistica(u)
end
MEDIA = 3.5000
MEDIANA = 3.5000
CREACIÓN DE REFERENCIAS A
FUNCIONES >> y =@exp:
>> x=@sin;
>> z=y(x(2*pi))
A) Manipulador de funciones (FUNCTION
HANDLE). z= 1.0000
Función de funciones: Una función hace >> z=y(x(pi/2))
referencia a otra. z= 2.7183
Sintaxis: fhandle =@nomrfunción
Ejemplos:
>>f1=@sin
f1 = @sin
>>y =f1(pi/2)
Y=1
>>f2=@exp;
Y=f2(1)
Y = 2.7183
Sintaxis= @(lista de variables)
implementacion de function Ejemplo: Crear una function tiempo que
nos de la fechay hora actual.
Para ejecutar:
Fhandle(arg1, arg2, arg3, …., argN)
>>tiempo=@() datestr(now);
Ejemplo: Crear function hipot que
calcule la hipotenusa de un triangulo Ahorita = tiempo()
rectangulo.
Ahorita =
>>hipot = @(x,y) sqrt(x.^2+y.^2);
>>c=hipot(3,4)
'21-Mar-2024 14:17:30'
c= 5

B) MANIPULADORES A FUNCIONES
PERSONALIZADAS
Reciben como argumentos de
entrada manipuladores a función
para particularizar sus cálculos con la
función referenciada.
Ejemplo: Dada la función: Solución:
𝑓 𝑥 = 𝑒 −𝑥 cos 𝑥 Para resolver la integral, usaremos la
función quad cuya sintaxis es:
Calcular:
𝜋 q=quad(fhandle, a, b)
𝐼 = න 𝑓 𝑥 𝑑𝑥
0 function y = mifuncion1(x)
y= exp(-x).*cos(x);
end
>> I = quad(@mifuncion1, 0, pi)
C) FUNCIONES QUE UTILIZAN
I = 0.5216
MANIPULADORES DE FUNCIÓN
EVALUACION DE FUNCIONES: FEVAL
Evalua la function f en los argumentos
especificados.
Sintaxis:
feval=(‘f’, arg1, arg, …, argN) Eval: Evalua una cadena, sentencia o
[x1, x2] = feval (‘ECUA2’, 1,2,3) llamada a function.
X1=-1.0000 + 1.4142i Sintaxis: eval (‘string’)
X2 =-1.0000-1.4142i >> x=[1:5];
>> Cadena2='w=(x.^0.5-1)./(x.^0.5)';
>> eval(Cadena2)
w=
0 0.2929 0.4226 0.5000 0.5528
INTRODUCCIÓN DE FUNCIONES POR
TECLADO
1ra. Forma
3ra. Forma
> syms x
>> syms x
>> f1=input('Ingrese f1 = ')
>> f1=input('Ingrese f1 = ')
Ingrese f1 = sin(5*x)
f1 =sin(5*x) Ingrese f1 = sin(5*x)
>> diff (f1) f1 = sin(5*x)
ans = 5*cos(5*x) >> f1 = inline(f1)
2da. Forma f1 =
>> syms x Inline function:
>> f1=input('Ingrese f1 = ') f1(x) = sin(x.*5.0)
Ingrese f1 = @(x) sin(5*x);
>> feval(f1,1)
>> I = quad(f1, 0, pi)
ans = -0.9589
I= 0.4000
EJEMPLO – FUNCIONES POR TECLADO

>> f2
>> syms x y f2 =
>> f2=input('Ingrese f2 = ') cos(x*y^2) + sin(x*y)
Ingrese f2 = sin(x*y) + cos(x*y^2) >> f2=inline(f2)
f2 = cos(x*y^2) + sin(x*y) f2 =
>> x = [1 0 2 3] ; Inline function:
>> y=[1 1 1 1] ; f2(x,y) = cos(x.*y.^2)+sin(x.*y)
>> z = eval(f2) >> feval (f2, 1,1)
z = 1.3818 1.0000 0.4932 -0.8489 ans =
1.3818
CALCULO SIMBOLICO

Obtener el valor de f (x,y) = (2x+5y+3)^1/3 en los puntos (0,0), (0,1), (0,2),


y (0,3).
» syms x y
» f=(2*x+5*y+3)^(1/3)
» v=[0 1 2 3];
» val=subs(f,{x,y},{0*v,v}) %sustituye (x,y) por (0,v(i))
» val=double(val) %pasa val a variable numérica
LÍMITES, DERIVADAS E
INTEGRALES SIMBÓLICAS
MANIPULACIÓN DE EXPRESIONES
SIMBÓLICAS
SOLUCION DE ECUACIONES
 solve(p) → encuentra soluciones de la ecuación p=0
Calcúlense todas las raíces del polinomio z3+z2−4z+6

» syms z
» p=z^3+z^2-4*z+6
» sol=solve(p)
 nos da las soluciones de la ecuación. La solución es un vector
de tres componentes que hemos guardado con el nombre
sol.
 La orden solve no siempre da todas las soluciones como
puede comprobarse si se escribe
» sol=solve(’sin(x)’)
 Sólo devuelve sol = 0
>> syms x y
>> sol=solve('x+y-1', '2*x-3*y-10')
Para obtener los valores de la solución escribimos
>> sol.x, sol.y
FIN
Parte2

También podría gustarte