You are on page 1of 78

2010

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

Captulo: Error! No hay texto con el estilo especificado en el documento.

Comandos

Importantes Y

Claves

Lo digitamos para omitir el ECO >>a = 5 ans=5 >>a = 5; >>

Digitando Alt92

Digitando Alt126

Lo digitamos cuando necesitemos series >>a = 1 : 1 : 10

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

, Borra el rea de grficos

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

IZQ ------ DER * IZQ ------ DER

Potenciacin

IZQ ------ DER

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

2E3 2 x 103 = 2000

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

Cmo almacenar, recuperar datos?


Para guardar, File, Save worspace as: - Lo podemos guardar con mximo 8 dgitos. - Matlab lo guarda con extensin .mat Para recuperar, File, Open, Abrir: - Digito who. - Y me aparece las variables en la pantalla. Para guardar mediante comandos: >> save 'c:\civ\matlab\work\ejer2.mat' Para abrir mediante comandos: >> load 'c:\civ\matlab\work\ejer2.mat'

Funciones Cientficas de Matlab


- Funcin abs (x), puede ser constante o variable. X Reales X Complejos, mdulos X Alfanumricos - Funcin MATLAB Log(x) Ln (x)

Log10 (x)

Log (x)

- Funcin

Real (x), me devuelve el nmero real. X Reales

- Funcin

Imag (x), me devuelve el nmero imaginario. X Complejos

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)

Ejemplo Cos 45 = 0,5253 (radianes) Cos (45*pi/180) = 0,7071 (grados)

Comandos de Ayuda
- Comando look for, sirve para buscar ayuda de algn comando.

- O tambin en Barra de Herramientas, Help, Funtion browser.

Comando de Entrada y Salida de Datos


Comando Input, para el ingreso de datos Variable = input('mensaje') Comando Comando Disp, para presentar una variable Fprintf ('resultados'); ejem. COLEGIO DE INGENIEROS CIVILES

fprintf('COLEGIO\n DE\t INGENIEROS\n CIVILES');

Para poner un mensaje en la variable, fprintf('l1=%f\t l2=%f\tl3=%f',l1,l2,l3);

d = entero f = flotante s = alfanumrico

Para que imprima con un nmero determinado de decimales, fprintf('%.2f',l1);

Para que imprima con un 2 decimales y con 5 espacios del margen o de la anterior respuesta , fprintf('% 5.2f',l1);

Para que imprima con el signo, fprintf('% +f',l1);

EJERCICIOS
-Resolucin de un triangulo

Planteado de diferente forma,

-Resolucin de una viga simple con carga distribuida cuadrada

-Resolucin de una viga simple con carga puntual

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

A(1) A(2) . . . A(5)

- Comando seize = vector, >>size (a) >> 1 5 >>size [(5 -3 0 8)] >> 1 5

Vectores, series con incremento y de decremento


-Incremento,
>>a = 1 : 1 : 10

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

- 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

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

Operaciones con vectores


- Tiene que ser de las mismas dimensiones a(1 x 3) b(1 x 6 ) - Para divisin elemento a elemento a.b

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

0 8 4 4.0000 -2.0000 40.0000

1.0000 -15.0000

h=[a b] h = 5.0000 -3.0000 >> whos Name a ans b h

8.0000

4.0000

3.5000

4.0000 -2.0000 40.0000

1.0000 -15.0000

Size

Bytes Class 40 double 16 double 48 double 88 double

Attributes

1x5 1x2 1x6 1x11

TRANSPUESTA DE UN VECTOR
>> a a= >> a' ans = 5 -3 0 8 4 5 -3 0 8 4

INGRESO COMO COLUMNAS


>> i=[5;-3;0;8;4] i= 5 -3 0 8 4

SERIES CON INCREMENTOS


>>a=1:10 a= 1 2 3 4 5 6 7 8 9 10

>> b=2:2:10 b= 2 4 6 8 10

>> c=0:0.1:1 c= 0 0.1000

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

VECTORES CON INCREMENTO DE ANGULOS


>> e=-2*pi:0.1*pi:2*pi e= 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

AL CONOCER EL NMERO DE TERMINOS DESEADOS


>> f=linspace(1,10,15) f= Columns 1 through 11 1.0000 1.6429 2.2857 2.9286 3.5714 4.2143 4.8571 5.5000 6.1429 6.7857 7.4286

Columns 12 through 15 8.0714 8.7143 9.3571 10.0000

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

OBTENCION DEL TAMANO DE UN VECTOR


a= 7 -3 1 0 4 2

>> t=size(a) t= 1 6

>> [nf nc]=size(a) nf = 1 nc = 6

SUMA DE ELEMENTOS DE VECTORES


a= 7 -3 1 0 4 2

>> sum(a) ans = 11

Suma todos los elementos de un vector

>> max(a)

Devuelve el nmero mayor de un vector

ans =

>> min(a) ans = -3

Devuelve el nmero menor de un vector

>> sort(a) ans = -3 0 1 2 4 7

Ordena al vector de menor a mayor

MANIPULACION DE ELEMENTOS DENTRO DE UN VECTOR


>> a=[-5 3 1 0 -8 2] a= -5 >> a(1) ans = -5 3 1 0 -8 2 >> a(2) ans = 3

CAMBIAR EL ELEMENTO DE UN VECTOR


>> a(5)=-10 a= -5 3 1 0 -10 2

- 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

>> a([1 3 5]) ans = -5 1 -10

>> a(1:2:5) ans = -5 >> a(:) ans = -5 3 1 0 -10 2 1 -10

AUMENTAR ELEMENTOS

a=
>> a(7)=4 a= -5 3 1 0 -10 2 4

-5

0 -10

>> a(10)=5 a= -5 3 1 0 -10 2 4 0 0 5

>> a(11:13)=[3 8 10] a= -5 3 1 0 -10 2 4 0 0 5 3 8 10

>> a([3 8 10])=[-3 -1 4] a= -5 3 -3 0 -10 2 4 -1 0 4 3 8 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

>> a([1 3])=[] a= 3 ------------------------------------------------------------------------------------------------------------------------------------------>>a=1:9 a= 1 2 3 4 5 6 7 8 9

CREAR UNA NUEVA MATRIZ


>> b=a b= 1 2 3 4 5 6 7 8 9

>> c=a(9:-1:1) c= 9 8 7 6 5 4 3 2 1

>> a=3:0.1:3.5 a= 3.0000 3.1000 3.2000 3.3000 3.4000 3.5000

>> b=a(6:-1:1) b= 3.5000 3.4000 3.3000 3.2000 3.1000 3.0000

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

Columns 12 through 16 0.9280 0.7280 0.5280 0.3280 0.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

Columns 12 through 16 2.3280 2.5280 2.7280 2.9280 3.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

>> a+3 ans = 6

-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

SUMA ENTRE VECTORES >> a a= 3 >> b b= 2 0 1 0 3 -1 0 -8 2 -1 4

>> % SUMA DE VETORES >> a+b ans = 5 >> a-b ans = 1 0 -9 2 -4 5 0 -7 2 2 3

-Solucin de un sistema lineal de ecuaciones

-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

Cambio En Orden De Las Filas


>> a=[1 2 3; 4 5 6; 7 8 9] a= 1 4 7 2 5 8 3 6 9

Para Cambiar Las Filas De La Matriz


>> b=a(3:-1:1,1:3) b= 7 4 1 8 5 2 9 6 3

>> c=a(1:3,3:-1:1) c= 3 6 9 2 5 8 1 4 7

Para Cambiar Filas Y Columnas


>> d=a(3:-1:1,3:-1:1) d= 9 6 3 8 5 2 7 4 1

>> %Para tomar todos los elementos de una fila >> e=a(:,3:-1:1) e= 3 6 9 2 5 8 1 4 7

Menores De Una Matriz


Dada la matriz a= 5 4 3 8 1 -2 -3 0 -1 a=[5 8 -3 ; 4 1 0; 3 -2 -1]

>> b=a(2:3,2:3) b= 1 -2 0 -1

>> %Otro menor >> c=a(2:3,1:2) c= 4 3 1 -2

>> d=a(2:3,[1 3]) d= 4 3 0 -1

%Para extraer filas >> e=a(2,:) e= 4 1 0

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

>> %Eliminacion columnas >> a(:,2)=[] a= 4 3 0 -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

Proceso Simultneo Del Intercambio Anterior


a= 5 4 3 8 1 -2 -3 0 -1

>> c([1 3],:)=a([3 1],:) c= 3 4 5 -2 1 8 -1 0 -3

Matrices A Continuacin Una De Otra


>> a=[1 2; 3 4] a= 1 3 2 4

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

>> flipud(a) ans = 3 1 4 2

>> fliplr(a) ans = 2 4 1 3

>> rot90(a) ans = 2 4 1 3 >> v=[3 -1 2 5 ] v= 3 -1 2 5

>> diag(v) ans = 3 0 0 0 0 -1 0 0 0 0 2 0 0 0 0 5

Para Una Matriz


a= 1 3 2 4

>> length(a) ans = 2

Genreacin de matrices >> zeros(3) ans = 0 0 0 0 0 0 0 0 0

>> zeros (3,4) ans = 0 0 0 0 0 0 0 0 0 0 0 0

>> ones(3) ans = 1 1 1 1 1 1 1 1 1

>> ones(3,4) ans = 1 1 1 1 1 1 1 1 1 1 1 1

>> ones (size (a)) ans = 1 1 1 1

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

>> det(a) ans = -2

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

POLINOMIOS, COMANDOS IMPORTANTES


- Comando conv( polinomio 1 , polinomio 2 ), - Comando deconv ( polinomio dividendo , polinomio divisor ), - Comando polyder ( polinomio), devuelve la derivada del polinomio. - Comando polyint ( polinomio), - Comando polyval( polinomio, valor a evaluar), devuelve el polinomio evaluado en un numero. - Comando roots ( polinomio), devuelve las races del polinomio.

- Funcin hold on , para un grafico superpuesto.

- Comando plot( x , y , ' color ' ),

CDIGO R G B K Y M

COLOR rojo verde azul negro amarillo magneta

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

FOR, desde hasta

- Programa 2

Funcin

IF, si entonces

Funcin

ELSE, caso contrario

Primer Opcin
Condicin verdadera

Si (condicin) Proceso 2 Proceso 3

Proceso 1

Condicin falsa

Si (condicin) Proceso 2 Proceso 3

Proceso 1

Segunda Opcin
Condicin verdadera

Si (condicin) Caso contrario Proceso 3


Condicin falsa

Proceso 1 Proceso 2
(omite proceso 2)

Si (condicin) Caso contrario Proceso 3

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

SWITCH, evaluar campo

- Comando case, caso - Comando otherwise, en otro caso

- 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

polar( t , t y , ' c ' );

180

210

330

240 270

300

DIAGRAMA DE PASTEL
Nos arroja directamente el porcentaje
34%

14%

Ejemplo: resultados de una votacin v=[180 60 210 75];

pie (v);
40% 11%

ADICIONAL
1

x=-4:1:10;
0.5

y=cos(x);
0

%Funcin coseno en forma de barra en tercera dimensin

-0.5 -1 -4 -3 -2 -1 0

bar3( x , y , ' b ' ); Agregar color

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

z=5*x.^3 +3*x.^2-2*x+8; plot(x,z);grid; axis([-4 4 -0.6 .6]);

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

PARA RECUPERAR EL FORMATO ORIGINAL, OMITE EL AXIS

axis auto
1500

1000

500

-500

-1000

-1500 -8

-6

-4

-2

PARA TENER EJES CUADRADOS

axis square
1500

1000

500

-500

-1000

-1500 -8

-6

-4

-2

PONE FACTORES DE ESCALA IGUALES EN X E Y

axis equal
1000

500

-500

-1000 -1500 -1000 -500 0 500 1000 1500

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

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 -8

-6

-4

-2

-6

-4

-2

EJERCICIO COMPLETO

GRAFICOS DE FLECHAS, GRAFICO TIPO COMPASS x=-pi:0.8:pi; y=3-sin(x);

compass ( x , y );
90 120 4 3 150 2 1 180 0 30 5 60

210

330

240 270

300

COMO ORIGEN UNA LINEA RECTA feather ( x , y );

4 3.5 3 2.5 2 1.5 1 0.5 0 -4

-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

Nos presenta el titulo de la funcin representada


4 x 2-3 x+2 50 45 40 35 30 25 20 15 10 5 0 -3 -2 -1 0 x 1 2 3

ezplot('4*x.^2-3*x+2',[-3,3]);

EJERCICIO, EXPONENCIAL
clc clear clf x=1:.2:10; y=1+exp(-x.^2);

LOGARITMICO

subplot ( 2 , 2 , 1 ); plot ( x , y ) ; grid ; title('Funcin exponencial NORMAL');

EJE DE LAS X EN ESCALA LOGARITMICA


subplot ( 2 , 2 , 2 );

semilogx ( x , y ) ; grid ; title ( ' SEMILOGARITMICO EN X ' );

EJE DE LAS Y EN ESCALA LOGARITMICA


subplot ( 2 , 2 , 3 ); semilogy ( x , y ); grid ; title ( ' SEMILOGARITMICO EN y ' );

EJE DE LAS

X & Y EN ESCALA LOGARITMICA

subplot ( 2 , 2 , 4 ); loglog ( x , y ); grid ; title ( ' LOGARITMICO TOTAL ' );


Funcion exponencial NORMAL SEMILOGARITMICO EN X 1.4 1.3 1.2 1.1 1 0 10 LOGARITMICO TOTAL

1.4 1.3 1.2 1.1 1

5 SEMILOGARITMICO EN y

10

10

10

0.1

10

0.1

10

10

10 0 10

10

GRAFICAS CON RELLENO


clc clf clear x=(-2:0.1:2)*pi; y=sin(x);

Aqu se ingresa el parmetro y el color del relleno

fill ( x , y , ' r ' );


1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -8

-6

-4

-2

GRAFICAS DE SUPERFICIES
Clf t=(-6:0.2:8); x=t; y=3-t; z=cos(t);

GRFICOS DE 3 DIMENSIONES plot3 ( x , y , z );grid

PARA RELLENAR EN 3 DIMENSIONES fill3 ( x , y , z , 'm' );grid

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 obtener la rejilla de interseccin de x & y


y ] = meshgrid ( xa , ya )

Para formar una retcula cuadrada con variaciones del mismo tipo
y ] = meshgrid ( 0 : 0.2 : 4 )

z = exp ( x.^2 + y.^2 ); mesh ( x , y , z )

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

Para obtener las curvas de nivel proyectadas en el eje xy

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

0 -5 -10 -15 -20 4 2 0 -2 -4 -3 -2 -1 0 1 2 3

EJEMPLO 3
Clear [x,y]=meshgrid(-1.5:0.2:1.5); z=sin(x.^2+y.^2);

RELLENA CON COLORES LA GRILLA

PARA OBTENER CON COLORES SUAVES

surf(x,y,z)

surfl(x,y,z);

1 0.5 0 -0.5 -1 2 1 0 -1 -2 -1.5 -1 -0.5 0 0.5 1 1.5

1 0.5 0 -0.5 -1 2 1 0 -1 -2 -1.5 -1 -0.5 0 0.5 1 1.5

EJEMPLO 4
Para obtener las curvas de nivel proyectadas.

Surfc ( x , y , z);

1 0.5 0 -0.5 -1 2 1 0 -1 -2 -1.5 -1 -0.5 0 0.5 1 1.5

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

-0.5 10 5 0 -5 -10 -10 -5 5 0 10

EJEMPLO 5
Clear
2

[x,y]=meshgrid(-3:0.2:3); z=sin(x)+cos(y); -

1 0 -1

Grafico tipo cascada


-2 4 2 0 -2 -4 -4 -2 2 0 4

Waterfall ( x , y , z);

CURVAS DE NIVEL contour(x,y,z,20);

CURVAS DE NIVEL EN VOLUMEN contour3(x,y,z,20);

Nmero de curvas de nivel


3

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

VER UN PUNTO DESPLAZARSE EN EL ESPACIO

t=(-10:1/250:10)*pi; x=((cos(2*t)).^2).*sin(t); y=((sin(2*t)).^2).*cos(t); z=t;

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

-1 1 0.5 0 -0.5 -1 -1 -0.5 0.5 0 1

-1 1 0.5 0 -0.5 -1 -1 -0.5 0.5 0 1

VOLUMENES A PARTIR DE UNA CURA GENERADORA


>> t=0:.2:6.3; >> y=2+sin(t); >> plot(t,y); a esta grafica le haremos rotar y forma un volumen
3 2.8 2.6 2.4 2.2 2 1.8 1.6 1.4 1.2 1

cylinder(y);
1 0.8
0 1 2 3 4 5 6 7

0.6 0.4 0.2 0 4

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

13 12 11 10 9 8 7 6 5 4 3 1 0.8 0.6 0.4 0.2 0 20 20 0 0 1 2 3 4 5 -20 0 -20

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