Professional Documents
Culture Documents
C U R S O - M A T L A B
PAUL DAVID FIERRO QUINTANA Escuela Politcnica del Ejercito (E.S.P.E.) Ecuador-Quito 08/02/2010
Comandos
Importantes Y
Claves
Digitando Alt92
Digitando Alt126
Significa o
- Una serie que comience desde el 1 - Con un incremento de 1 - Hasta llegar al 10 >>a = 1 : 1 : 10 a = 1 2 3 4 5 6 7 8 9 10
clf
INTRODUCCIN
INTRODUCCIN
MATLAB = Laboratorio de Matrices, todo dato que trabaja matlab es un elemento de una matriz
Conceptos Bsicos:
Datos aceptados, -Datos Alfanumricos = Representan texto, no hay como hacer operaciones numricas. -Datos Numricos = Representan datos. Datos enteros = datos exactos, ejm. 0 Punto Flotante, Las comas de una cifra. Densidad de una reta, Entre 2 reales siempre vamos a encontrar un real. - El valor ms pequeo es
es 1 +
ASOCIATIVIDAD IZQ ------ DER
- Un numero ms pequeo que Operadores, OPERACIN Divisin 4/2=2 4 \ 2 = 0,5 Suma Resta Multiplicacin / + \
OPERADOR
Potenciacin
Ingreso de Datos, 4x 5x 8 = 0
Si no pongo el parntesis el programa el programa 1ro lo eleva a 1 y luego lo divide para 2
=
X1 =
2 4 2
(-(-5)+(((-5)^2)-4*4*(-8))^(1/2))/(2*4)
El mismo caso, si no ponemos el parntesis el programa 1ro nos divide para 2 y luego nos multiplica por 4
2/3 2/3 = 0,6667 Para tener un formato con ms dgitos decimales, digitamos: >> FORMAT LONG
2/3 = 0,666666667 2/3 = 6,6667e-001 Para tener un formato elevado a la e, digitamos: >> FORMAT SHORT e >> FORMAT LONG e
Otros comandos, >> FORMAT RAT, Devuelve el numero en fraccionarios. >> FORMAT BAK, Formato bancario. >> FORMAT + , Devuelve el signo del numero.
Variables de Comando:
Es la combinacin de letras, dgitos OK raiz1 r2 Indica con letra OK r1 Diferencias de Maysculas de minsculas OK raiz1 Formato corto, 19 caracteres AAAAAAAA | BCD Debe relacionarse con su contenido ERROR raz 1 ERROR 1r - radio ERROR raz 1
Variables de Activas:
who, whos, size(a) clear (eliminar variable) (letra de la variable)
Variables Reservadas:
ans, devuelve el eco pi, devuelve el valor constante i, devuelve la raz -1 ( 1) inf, infinito ejem. 3/0 NaN, dato no numrico ejem. 0/0 real max, devuelve el nmero mximo que la maquina puede representar real min, devuelve el nmero mnimo que la maquina puede representar
Log10 (x)
Log (x)
- Funcin
- Funcin
Redondeo de Nmeros
- Funcin - Funcin Ceil (x), redondeo al + . Floor (x), redondeo al - . - Funcin - Funcin Fix (x), redondeo al nmero ms prximo. Conj (x), devuelve la conjugada del numero complejo.
Funciones Trigonomtricas
sin (x) cos (x) tan(x) sec(x) csc(x) cot(x) asin(x) acos(x) atan(x)
Comandos de Ayuda
- Comando look for, sirve para buscar ayuda de algn comando.
Para que imprima con un 2 decimales y con 5 espacios del margen o de la anterior respuesta , fprintf('% 5.2f',l1);
EJERCICIOS
-Resolucin de un triangulo
CAPITULO 1
CAPITULO 1
ARRAYS (arreglos-vectores-matrices)
Es un conjunto de datos del mismo tipo, un nico identificador, pero cada dato se diferencia por el ndice. a=
IND
5 1
-3 2
0 3
8 4
4 5
(1*5)
f i l a s c o l u m n a
- Comando seize = vector, >>size (a) >> 1 5 >>size [(5 -3 0 8)] >> 1 5
Decremento, >>d = 10 : -1 : 1 - Una serie que comience desde el 10 - Con un decremento de -1 - Hasta llegar al 1 >>d = 10 : -1 : 1 d = 10 9 8 7 6 5 4 3 2 1
>>a = 2 : 2 : 10 b = 2 4 6 8 10
Otros comandos
- Comando linspace, Vector = linspace(valor inicial, valor final, numero de elementos) l = 3,25
V I G A
>>l=3,25 l = 3,2500 >>x=linspace(0, l, 20) El numero 20 significa que al 3,25 lo va a dividir en 20 partes - Comando sort, Ordena al vector de menor a mayor
Graficas de Funciones
- Comando plot ( x , y ), para graficar. - Comando grid, para aplicar cuadricula. - Comando x label ('angulo[rad]'), para ttulos en el eje x. - Comando y label ('seno'), para ttulos en el eje y. - Comando tittle ('y=sin(x)'), para el titulo general.
EJERCICIOS
>> a,b a = 5 -3 b = 3.5000
1.0000 -15.0000
8.0000
4.0000
3.5000
1.0000 -15.0000
Size
Attributes
TRANSPUESTA DE UN VECTOR
>> a a= >> a' ans = 5 -3 0 8 4 5 -3 0 8 4
>> b=2:2:10 b= 2 4 6 8 10
0.2000
0.3000
0.4000
0.5000
0.6000
0.7000
0.8000
0.9000
1.0000
>> d=10:-1:1 d= 10 9 8
Columns 34 through 41 4.0841 4.3982 4.7124 5.0265 5.3407 5.6549 5.9690 6.2832
Ejemplo 2 y=linspace(1,0,10) y= 1.0000 0.8889 0.7778 0.6667 0.5556 0.4444 0.3333 0.2222 0.1111 0
>> t=size(a) t= 1 6
>> max(a)
ans =
- Elemento de a, posicin 1
>> a([1 2]) ans = -5 3
-Elemento de a, posicin 2
- Fila 1
>> a(1,2) ans = 3
-Posicin 2
AUMENTAR ELEMENTOS
a=
>> a(7)=4 a= -5 3 1 0 -10 2 4
-5
0 -10
ELIMINACION DE ELEMENTOS
a=[-1 0 3 5 -8] a= -1 0 3 5 -8 corchetes unidos
>> a(5)= [ ] a= -1 0 3 5
>> a(2)=[] a= -1 3 5
corchetes unidos
>> c=a(9:-1:1) c= 9 8 7 6 5 4 3 2 1
>> a=0.128:0.2:3.156; >> [nf nc]=size(a); >> b=a(nc:-1:1) b= Columns 1 through 11 3.1280 2.9280 2.7280 2.5280 2.3280 2.1280 1.9280 1.7280 1.5280 1.3280 1.1280
>> a a= Columns 1 through 11 0.1280 0.3280 0.5280 0.7280 0.9280 1.1280 1.3280 1.5280 1.7280 1.9280 2.1280
>> c=['a' 'b' 'c'] c= abc >> c(4)='d' c= abcd >> c(6)='z' c=
abcd z
OPERACIONES MATEMATICAS
>> a=[3 0 -8 2 -1 4] a=
>> b=[2 0 1 0 3 -1] b= 2 0 1 0 3 -1
-8
-1
-5
>> a-3 ans = a/3 ans = 1.0000 0 -2.6667 0.6667 -0.3333 1.3333 0 -3 -11 -1 -4 1
>> d=(-2:0.1:2)*pi d= Columns 1 through 11 -6.2832 -5.9690 -5.6549 -5.3407 -5.0265 -4.7124 -4.3982 -4.0841 -3.7699 -3.4558 3.1416 Columns 12 through 22 -2.8274 -2.5133 -2.1991 -1.8850 -1.5708 -1.2566 -0.9425 -0.6283 -0.3142 Columns 23 through 33 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133 2.8274 3.1416 3.4558 3.7699 0 0.3142
Columns 34 through 41 4.0841 4.3982 4.7124 5.0265 5.3407 5.6549 5.9690 6.2832
-Programa de temperatura INTERPOLACION BIDIMENSIONAL Se hizo un experimento determinar cmo es la distribucin de la temperatura en un microondas: calentando un pastel y retirando termmetros ubicados en ciertas posiciones Trazando en cada posicin lneas simtricas tanto paralelas como perpendiculares
Ejes
1 5 2 3 4
Cada uno de los ejes nos proporciona un grafico para cada conjunto de datos. Nota: DIVISIN DEL REA DE GRFICOS
Ahora cambiamos el sentido del corte y tendremos la vista longitudinal del elemento
Nota: Cuando se interpola tanto en largo como en ancho se produce un error ya que ambos se encuentran como filas
>> tti=interp2(l,a,t,li,ai) ??? Error using ==> interp2 at 147 XI and YI must be the same size or vectors of different orientations.
Para evitar este error, los vectores deben estar ubicados de la misma manera en que se encuentran en el terreno, es decir , uno de ellos debe estar como colunma
tti=interp2(l,a,t,li,
ai')
% Ahora graficamos las tres dimensiones % el rojo en matlab es lo mas alto subplot(2,2,[2 4]);mesh(li,ai,tti);grid; xlabel('Largo');ylabel('Ancho');zlabel('Temperatura'); title('Distribucion de temperatura total');
La funcin MESH nos proporciona el volumen del terreno, en cambio si se desea las curvas de nivel de la figura utilizamos la funcin CONTOUR .
Si se desea ampliar el nmero de curvas de nivel se le agrega un ltimo argumento indicando el nmero de curvas deseadas dentro del parntesis
CAPITULO 2
CAPITULO 2
MATRICES, ARREGLOS BIDIMENSIONALES
Matrices con ms de un vector
>> a=[3 5 -2; 4 8 3] a= 3 5 -2 4 8 3 >> %Creamos otra matriz >> b=[4:8; linspace(3,4,5); 1 2 3 4 5] b= 4.0000 3.0000 1.0000 >> size(b) ans = 3 5.0000 3.2500 2.0000 6.0000 3.5000 3.0000 7.0000 3.7500 4.0000 8.0000 4.0000 5.0000
Reemplazo De Valores
%Para reemplazar un valor >> a(2,2)=10
a=
3 4 5 -2 10 3
>> a(2,8)=3 a= 3 4 5 -2 10 3 5 0 0 0 0 0 0 0 0 3
>> c=a(1:3,3:-1:1) c= 3 6 9 2 5 8 1 4 7
>> %Para tomar todos los elementos de una fila >> e=a(:,3:-1:1) e= 3 6 9 2 5 8 1 4 7
>> b=a(2:3,2:3) b= 1 -2 0 -1
>> %Para extraer columnas >> f=a(:,3) f= -3 0 -1 >> %Para eliminar filas o columnas >> %Eliminacion de filas a= 5 4 3
8 1 -2
-3 0 -1
>> a(1,:)=[] a= 4 1 0 3 -2 -1
Otros Ejemplos
Dados >> a=[5 8 -3 ; 4 1 0; 3 -2 -1] a= 5 4 3 8 1 -2 -3 0 -1
>> b=a b= 5 4 3 8 1 -2 -3 0 -1
>> %Para que en la 1 fila tenga la tercer de a y en la primera la tercera >> b(1,:)=a(3,:) b= 3 4 3 -2 1 -2 -1 0 -1
>> b(3,:)=a(1,:) b= 3 -2 -1 4 1 0 5 8 -3
>> b=[5 6; 7 8] b= 5 6 7 8
>> c=[a b] c= 1 3 2 4 5 7 6 8
>> d=[a; b] d= 1 3 5 7
2 4 6 8
Funciones Directas
>> a a= 1 3 2 4
>> g=ones(length(d)) g= 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Matriz Identidad
>> eye(3) ans = 1 0 0 1 0 0 >> eye(3,4) ans = 1 0 0 1 0 0 >> eye(4,3) ans = 1 0 0 0
0 0 1
0 0 1
0 0 0
0 1 0 0
0 0 1 0
Determinantes
a= 1 3 2 4
EJERCICIO
Resolver el sistema de ecuaciones por el mtodo de Kramer 2x +3y z = 8 -3x y +z =-5 2x + y +z = 7
>> mc=input('Ingresar matriz de coeficientes : ') Ingresar matriz de coeficientes: [2 3 -1; -3 -1 1; 2 1 1] mc = 2 -3 2 3 -1 1 -1 1 1
>> vti=input('Ingresar los vectores independientes : ') Ingresar los vectores independientes : [8; -5; 7] vti = 8 -5 7 >> mx=mc mx = 2 -3 2 3 -1 1 -1 1 1
>> mx(:,1)=vti mx = 8 -5 7 3 -1 1 -1 1 1
>> my=mc my = 2 -3 2 3 -1 1 -1 1 1
>> my(:,2)=vti my = 2 -3 2 8 -5 7 -1 1 1
>> mz=mc mz = 2 -3 2 3 -1 1 -1 1 1
>> mz(:,3)=vti mz = 2 -3 2 3 -1 1 8 -5 7
>> dmc=det(mc) dmc = 12 >> dmx=det(mx) dmx = 18 >> dmy=det(my) dmy = 27 >> dmz=det(mz) dmz = 21 >> x=dmx/dmc x= 1.5000
>> y=dmy/dmc y= 2.2500 >> z=dmz/dmc z= 1.7500 fprintf('RAICES:\nx= %.2f \ny=%.2f \nz=%.2f',x,y,z) RAICES: x= 1.50 y=2.25 z=1.75>>
CDIGO R G B K Y M
EJERCICIO
CAPITULO 3
CAPITULO 3
ESTRUCTURAS Funcin
- Programa 1
WHILE, mientras
- Programa 2
- Programa 3
- Programa 4
Funcin
Desde ( variable : valor inicial : valor final ) Proceso Fin - Programa 1
- Programa 2
Funcin
IF, si entonces
Funcin
Primer Opcin
Condicin verdadera
Proceso 1
Condicin falsa
Proceso 1
Segunda Opcin
Condicin verdadera
Proceso 1 Proceso 2
(omite proceso 2)
Proceso 1 Proceso 2
- Programa 1
- Programa 2
- Programa 3
Funcin
- Programa 1
WHILE, mientras
Funcin
Evaluar ( variable entera ) Caso cte 1 Proceso 1 Caso cte 2 Proceso 2 Caso cte n Proceso n Por dimensin Proceso n + 1 - Programa 1
- Programa 2
- Programa 3
CAPITULO 4
CAPITULO 4
GRAFICOS, DIAGRAMA DE BARRAS
X=-1:0.1:5; Se est creando una serie de nmeros, el programa lo evaluara en las funciones del seno y coseno.
Nos devuelve la grafica de cada una de las funciones con diferentes colores.
DIAGRAMA DE GRADAS
Clf x=[1 5 9 10]; y=[18 12 2 20];
20 18 16 14 12 10
stairs( x , y );
8 6 4 2 1 2 3 4 5 6 7 8 9 10
DIAGRAMAS POLARES
90 0.5 60 0.25
t=0:0.1:2*pi; t y = abs(sin(2*t).*cos(2*t));
150
120
30
180
210
330
240 270
300
DIAGRAMA DE PASTEL
Nos arroja directamente el porcentaje
34%
14%
pie (v);
40% 11%
ADICIONAL
1
x=-4:1:10;
0.5
y=cos(x);
0
-0.5 -1 -4 -3 -2 -1 0
12
34
56
78
9 10
EJERCICIO
clf t=0:0.3:5; x=t.^2; y=2*t-5; z=sin(t); u=cos(t); v=abs(t); w=sqrt(t);
subplot ( 2 , 3 , 1 ) ; plot ( t , x , ' r ' ) ; grid ; xlabel('t'); ylabel('x'); title('x=t^2'); Indicamos la posicin en la que queremos que aparezca nuestro grafico. subplot(2,3,2);plot(t,y,'b');grid;xlabel('t');ylabel('y');title('y=2t-5'); subplot(2,3,3);plot(t,z,'c');grid;xlabel('t');ylabel('z');title('z=sin(t)'); subplot(2,3,4);plot(t,u,'g');grid;xlabel('t');ylabel('u');title('u=cos(t)'); subplot(2,3,5);plot(t,v,'y');grid;xlabel('t');ylabel('v');title('v=abs(t)'); subplot(2,3,6);plot(t,w);grid;xlabel('t');ylabel('w');title('w=sqrt(t)');
x=t 2 30 5 y=2t-5 1 0.5 0 0 -0.5 -5 -1 z=sin(t)
20
10
0 t u=cos(t)
0 t v=abs(t)
0 t w=sqrt(t)
1 0.5 0 -0.5 -1
w
1 0 0 t 5 0 0 t
0 t
MANEJO DE EJES
PARA CAMBIAR LOS EJES, COORDENAS MINIMAS Y COORDENADAS MAXIMAS DENTRO DEL PARENTESIS
x=(-2:0.1:2)*pi; y=sin(x); plot(x,y);grid;
Axis ( [ -4
4 -0.6 .6 ] ) ;
0.5 0.4 0.3 0.2 0.1 0 -0.1 -0.2 -0.3 -0.4 -0.5 -4 -3 -2 -1 0 1 2 3 4
OTRO EJEMPLO
0.5
axis auto
1500
1000
500
-500
-1000
-1500 -8
-6
-4
-2
axis square
1500
1000
500
-500
-1000
-1500 -8
-6
-4
-2
axis equal
1000
500
-500
GRAFICO NORMAL
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -8
CON AXIS IJ
-6
-4
-2
-6
-4
-2
EJERCICIO COMPLETO
compass ( x , y );
90 120 4 3 150 2 1 180 0 30 5 60
210
330
240 270
300
-2
10
12
PARA FUNCIONES ESCRITAS DE MODO LITERAL Nos presenta el comportamiento de la funcin. Ingresamos la funcin respetando la sintaxis de matlab y en un [ a , b ] donde a , b son valores establecidos.
('sin(x)',[-3,3]);
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -3
fplot
-2
-1
fplot
( '4*x.^2-3*x+2' , [ -3 , 3 ] );
50 45 40 35 30 25 20 15 10 5 0 -3
-2
-1
ezplot('4*x.^2-3*x+2',[-3,3]);
EJERCICIO, EXPONENCIAL
clc clear clf x=1:.2:10; y=1+exp(-x.^2);
LOGARITMICO
EJE DE LAS
5 SEMILOGARITMICO EN y
10
10
10
0.1
10
0.1
10
10
10 0 10
10
-6
-4
-2
GRAFICAS DE SUPERFICIES
Clf t=(-6:0.2:8); x=t; y=3-t; z=cos(t);
0.5
0.5
-0.5
-0.5
-1 10 5 0 -5 -5 -10 0 10 5
-1 10 5 0 -5 -5 -10 0 10 5
GRAFICOS EN VOLUMEN
Para poder formar grficos en volumen se necesita una matriz que interseque los valores de x & y para graficarlo con los valores de z.
xa = 0 : 0.2 : 5; ya = 0 : 0.2 : 8;
[x [x
Para formar una retcula cuadrada con variaciones del mismo tipo
y ] = meshgrid ( 0 : 0.2 : 4 )
x 10 8 6 4 2 0 4
13
3 2 1 0 0 1 3 2
GRAFICOS EN VOLUMEN 2
Clear [x y ] = meshgrid ( -2 : 0.2 : 2)
z = x.*exp(-x.^2-y.^2);
mesh ( x , y , z )
0.5
-0.5 2 1 0 -1 -2 -2 -1 1 0 2
meshc ( x , y , z );
0.5
-0.5 2 1 0 -1 -2 -2 -1 1 0 2
EJEMPLO 1
Clear [x y]=meshgrid(-2:.2:2); z=x.^2+y.^2; mesh(x,y,z); meshc(x,y,z);
8 6 4 2 0 2 1 0 -1 -2 -2 -1 1 0 2
EJEMPLO 2
Clear [x,y]=meshgrid(-3:0.2:3); z=x.^2-y.^2-9;
Limita la grafica
meshz (x , y , z);
EJEMPLO 3
Clear [x,y]=meshgrid(-1.5:0.2:1.5); z=sin(x.^2+y.^2);
surf(x,y,z)
surfl(x,y,z);
EJEMPLO 4
Para obtener las curvas de nivel proyectadas.
Surfc ( x , y , z);
EJEMPLO 5
clear clf [x,y]=meshgrid(-7.5:.5:7.5); z=(sin(sqrt(x.^2+y.^2)))./(sqrt(x.^2+y.^2));
1
0.5
surf(x,y,z);
EJEMPLO 5
Clear
2
[x,y]=meshgrid(-3:0.2:3); z=sin(x)+cos(y); -
1 0 -1
Waterfall ( x , y , z);
2
2
1
1
0
0
-1
-1
-2 2 0 -1 0 1 2 3
-2
-3 -3
-2
-2 -1 0 1 2 3
-3
-2
PARA
comet3(x,y,z);
GRAFICOS DE ESFERAS
clear sphere Numero de reticulas en la esfera sphere(4)
1
1
0.5
0.5
0
0
-0.5
-0.5
cylinder(y);
1 0.8
0 1 2 3 4 5 6 7
-2
-4
-2
OTRO EJERCICIO
x=0:5; y=2*x+3; subplot(1,2,1);plot(x,y); subplot(1,2,2);cylinder(y);
SEUDOANIAMACIONES EN MATLAB
M= memoria prar presentar un numero de frames % En el parentesis digito el numero de imagenes a presentar M=moviein(30); x=[-2*pi:0.2:2*pi]; %Genero varias imagenes for j=1:30 y=sin(x+j*pi/8); plot(x,y); %Para presentar la imagen M(filas columnas)=getframe(devuleve un vector columna con la informacion necesaria para presentar la imagen) M(:,j)=getframe; end %La instruccion que presenta la pelicula es movie(M, # de veces que deseo repetir la pelicula, velocidad de la Presentacion) movie(M,10,15)
OTRO EJERCICIO
%Elimino los ejes axis off M=moviein(30); for j=1:30; xa=-2:.2:2; ya=-2:.2:2; [x,y]=meshgrid(xa,ya); z=x.^2-y.^2; surf(z); %uNA FUNCION UQE PERMITE MODIFICAR LA VISION DEL VOLUMEN view([-37.5+6*j 30]) %Expreso los rangos en que quiero ver axis([0 25 0 30 -4 4]) axis off M(:,j)=getframe; end movie(M,60,15);