Iniciación al uso de MATLAB...MATLAB y Métodos Numéricos • MATLAB tiene incorporado algunas...

Preview:

Citation preview

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))