Iniciación al uso de MATLAB...MATLAB y Métodos Numéricos • MATLAB tiene incorporado algunas...
Transcript of Iniciación al uso de MATLAB...MATLAB y Métodos Numéricos • MATLAB tiene incorporado algunas...
Iniciación al uso de MATLAB
Enrique FloresEnero, 2008
Alcance
• Arranque del Programa• Zonas de Trabajo• Variables, Operadores y Funciones• Gráficos• Programación en MATLAB• MATLAB y Métodos Numéricos
Arranque del Programa
Icono de MATLAB
Hacer doble click sobre el icono de MATLAB
Arranque del Programa
Icono de MATLAB
Icono de MATLAB
Hacer doble click sobre el icono de MATLAB
Zonas de TrabajoDirectorio Actual Ventana de Comandos
Historial de Comandos
Espacio de trabajo (almacén de variables)
Variables, Operadores y Funciones• Variables numéricas: >> a=1
a =1
• Variables vectoriales:>> b = [1 2 3]
b =1 2 3
>> c=[1;2;3]c =
123
Variables, Operadores y Funciones• Variables Matriciales>> d=[1 2 3;4 5 6;7 8 9;10 11 12]
d =1 2 34 5 67 8 910 11 12
Cuando las instrucciones se terminan en punto y coma, no se desplega el resultado
>> e=[1 -1 6];>> Cuando no se pone nombre a la variable, el resultado por defecto se
almacena con el nombre ans>> [2 3 4]ans =
2 3 4
Variables, Operadores y Funciones
Operadores Aritméticos+ Suma- Resta* Multiplicación/ División^ Potencia
Operadores Relacionales
== igual que
~= no igual que
> mayor que
< menor que
>= mayor o igual que
<= menor o igual que
Operadores Lógicos~ no& y| o
Valores Booleanos
1 verdadero
0 falso
Variables, Operadores y Funciones
• Operaciones con variables numéricas:>> a=1;b=2;c=3;d=4;(a+b)*c/d
ans =2.2500
• Operaciones con vectores>> a=[1 2 3];b=[4 5 6]; c=a+b,d=a-b
c =5 7 9
d =-3 -3 -3
Variables, Operadores y Funciones
• Operaciones con vectores>> f = a.^2 , g = a.*b
f =1 4 9
g =4 10 18
>> f(2)ans =
4>> f(2:3)
ans =4 9
Variables, Operadores y Funciones• Operaciones con Matrices>> A=[1 2 3; 4 5 6]; B=[1 1 0;0 1 0];C=[2 3; 4 5; 6 7];>> A+B,A-B,2*A
ans =2 3 34 6 6
ans =0 1 34 4 6
ans =2 4 68 10 12
Variables, Operadores y Funciones• Operaciones con Matrices>> A=[1 2 3; 4 5 6]; B=[1 1 0;0 1 0];C=[2 3; 4 5; 6 7];>> A*C, B‘ , C.^2
ans =28 3464 79
ans =1 01 10 0
ans =4 9
16 2536 49
Variables, Operadores y Funciones• Operaciones con Matrices>> d=[1 2 3;4 5 6;7 8 9;10 11 12]d =
1 2 34 5 67 8 9
10 11 12>> d(2,3)ans =
6>> d(2,:)ans =
4 5 6>> d(:,3)ans =
369
12
Variables, Operadores y Funciones• Algunas Funciones Incorporadas al
Programa:
>> sqrt(2)ans =
1.4142>> cos([1 2 3;4 5 6])ans =
0.5403 -0.4161 -0.9900-0.6536 0.2837 0.9602
sqrt() raíz cuadrada
sin() seno
log() Logaritmo neperiano
Variables, Operadores y Funciones
• Funciones definidas por el usuario:Debe definirse un archivo .m
Archivo .m
Variables, Operadores y Funciones• Definido el archivo .m, se escriben las líneas que definen la función y se
guarda el archivo con el nombre dado a la función (en este caso, fun.m)
Variables, Operadores y Funciones
• Para poder llamar una función, debe estar en el directorio actual:
Funcion definida por el usuario
Llamado a la funcion
Graficas• En dos dimensiones>> x=linspace(-7,7,500); y = sin(x); plot(x,y)
Graficas• Varias graficas en simultaneo:>> x=linspace(-7,7,500); y = sin(x);z = cos(x); plot(x,y,'o',x,z,'*')
Graficas• En tres dimensiones:>> t=0:.01:2*pi;x=cos(t);y=sin(t);z=t;plot3(x,y,z,'r')
Graficas• En tres dimensiones:>> [x,y]=meshgrid(-1:.01:1);>> z=x.^2+y.^2;>> mesh(z)
Graficas• En tres dimensiones:>> [x,y]=meshgrid(-1:.01:1);>> z=x.^2+y.^2;>> surf(z)
Programación en MATLAB• Estructuras de Controlif … elseif…elseSintaxis: if (expresion1)
acciones1;elseif (expresion2)
acciones2;else
acciones3;End
>> a=1;b=-1;c=0;>> if c>a a=a+2; else b= b*10; disp(b); end
-10
Programación en MATLAB• Estructuras de ControlWhile…Sintaxiswhile (expresion)
acciones; end>> n=5;k=0;while(k<=n) x= k/3; disp(x); k = k+1; end
00.33330.666711.33331.6667
Programación en MATLAB• Estructuras de ControlFor…Sintaxisfor variable de control = rango de la variable
acciones end>> for k=1:5 x= k/3; disp(x); end
0.3333
0.6667
1
1.3333
1.6667
Programación en MATLAB• Un pequeño programa en MATLABfunction s=traprl(f,a,b,M)Integración usando la regla compuesta del Trapecio%Entrada - f es el integrando% - a y b son los limites de integración% - M es el numero de subintervalos%Salida - s es el valor de la integralh=(b-a)/M;s=0;for k=1:(M-1)
x=a+h*k;s=s+feval(f,x);
ends=h*(feval(f,a)+feval(f,b))/2+h*s;
Programación en MATLAB• Corrida del Programa>> f=inline('x');a=0;b=1;M=10;s=traprl(f,a,b,M)
s =
0.5000
>> f=inline('x-sin(x)');a=0;b=1;M=10;s=traprl(f,a,b,M)
s =
0.0407
MATLAB y Métodos Numéricos• MATLAB tiene incorporado algunas herramientas de análisis
numérico, tales como integración numérica aproximada, solución de problemas de valor inicial en Ecuaciones Diferenciales Ordinarias, solución de problemas con valores de frontera en Ecuaciones Diferenciales Parciales, ajuste de curvas, entre otros.
• Existe bibliografía de análisis numérico donde el mismo se apoya con el uso de MATLAB, por ejemplo:NUMERICAL METHODS Using MATLAB, by John H. Mathews and KurtisD. Fink
MATLAB y Métodos Numéricos• Solución del Problema de valor inicial:dy/dt = t + y ; y(0) = 0; 0<=t<=1;Usando ode45 (provista por MATLAB)>>f=inline(‘t+y’,’t’,’y’);>> [t,y]=ode45(f,[0 1],[0 0]);>> plot(t,y)
MATLAB y Métodos Numéricos• Solución del Problema de valor inicial:dy/dt = t + y ; y(0) = 0; 0<=t<=1;Usando euler.m (provista Numerical Methods using MATLAB)>> f=inline('t+y','t','y');a=0;b=1;ya=0;M=100;>> E=euler(f,a,b,ya,M);>> plot(E(:,1),E(:,2))