Issuu on Google+

2010

PAUL DAVID FIERRO QUINTANA Escuela Politécnica del Ejercito (E.S.P.E.) Ecuador-Quito 08/02/2010

Capítulo: ¡Error! No hay texto con el estilo especificado en el documento.

C U R S O - M A T L A B

1

Comandos

;

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

Importantes Y

\

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

- 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

Digitando Alt92

>>a = 5; >>

:

Claves

, Borra el área de gráficos

|

Digitando Alt126

Significa “ o ”

INTRODUCCIÓN

INTRODUCCIĂ“N MATLAB = Laboratorio de Matrices, todo dato que trabaja matlab es un elemento de una matriz

Conceptos BĂĄsicos: Datos aceptados, -Datos AlfanumĂŠricos = Representan texto, no hay como hacer operaciones numĂŠricas. -Datos NumĂŠricos = 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 mĂĄs pequeĂąo es

Îľ

- Un numero mĂĄs pequeĂąo que

Îľ es 1 + Îľ

Operadores, OPERACIĂ“N

OPERADOR

ASOCIATIVIDAD

DivisiĂłn 4/2=2 4 \ 2 = 0,5 Suma

/

\

IZQ ------ DER

+ IZQ ------ DER

Resta

-

MultiplicaciĂłn

*

IZQ ------ DER

PotenciaciĂłn

^

IZQ ------ DER

Ingreso de Datos, 

4x – 5x – 8 = 0

đ?‘Ľ= X1 =

−đ?‘?Âą đ?‘? 2 −4đ?‘Žđ?‘?

Si no pongo el parĂŠntesis el programa el programa 1ro lo eleva a 1 y luego lo divide para 2

2đ?‘Ž

(-(-5)+(((-5)^2)-4*4*(-8))^(1/2))/(2*4) El mismo caso, si no ponemos el parĂŠntesis 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 más dígitos 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 combinación de letras, dígitos OK raiz1 r2

ERROR raíz 1

OK r1

ERROR 1r - radio

Indica con letra

Diferencias de Mayúsculas de minúsculas OK raiz1

ERROR raíz 1

Formato corto, 19 caracteres AAAAAAAA | BCD Debe relacionarse con su contenido

Variables de Activas: who, whos, size(a)

(letra de la variable)

clear (eliminar variable)

Variables Reservadas: ans, devuelve el eco pi, devuelve el valor constante i, devuelve la raíz -1 ( −1) inf, infinito ejem. 3/0 NaN, dato no numérico ejem. 0/0

real max, devuelve el número máximo que la maquina puede representar real min, devuelve el número mínimo que la maquina puede representar

¿Cómo almacenar, recuperar datos? 

Para guardar, File, Save worspace as: - Lo podemos guardar con máximo 8 dígitos. - Matlab lo guarda con extensión .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 Científicas de Matlab - Función abs (x), puede ser constante o variable. X ε Reales X ε Complejos, módulos X ε Alfanuméricos - Función MATLAB

- Función

Log(x)

Ln (x)

Log10 (x)

Log (x)

Real (x), me devuelve el número real. X ε Reales

- Función

Imag (x), me devuelve el número imaginario. X ε Complejos

Redondeo de Números - Función

Ceil (x), redondeo al + ∞.

- Función

Fix (x), redondeo al número más próximo.

- Función

Floor (x), redondeo al - ∞.

- Función

Conj (x), devuelve la conjugada del numero complejo.

Funciones Trigonométricas 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 algún comando.

- O también 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

Disp, para presentar una variable

Comando

Fprintf ('resultados'); ejem.

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

 Para que imprima con un número determinado de decimales, fprintf('%.2f',l1);

COLEGIO DE INGENIEROS CIVILES

d = entero f = flotante s = alfanumérico

 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 -Resolución de un triangulo

-

Planteado de diferente forma,

-Resoluci贸n de una viga simple con carga distribuida cuadrada

-Resoluci贸n 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

(1*5)

4 5

f i l a s

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

c o l u m n a

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

- Una serie que comience desde el 10

- Con un incremento de 1

- Con un decremento de -1

- Hasta llegar al 10

- Hasta llegar al 1

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

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

Otros comandos - Comando linspace, Vector = linspace(valor inicial, valor final, numero de elementos) l = 3,25 V I G A

0

l

>>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 división 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 títulos en el eje x. - Comando y label ('seno'), para títulos 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

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

Size

0

8.0000

Bytes Class

1x5 1x2 1x6 1x11

40 double 16 double 48 double 88 double

TRANSPUESTA DE UN VECTOR >> a a=

5

-3

0

8

4

>> a' ans = 5 -3 0 8 4

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

1.0000 -15.0000

4.0000

3.5000

Attributes

4.0000 -2.0000 40.0000

1.0000 -15.0000

SERIES CON INCREMENTOS >>a=1:10 a= 1 2

3

4

5

8

10

6

7

8

9

10

>> b=2:2:10 b= 2

4

6

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

>> d=10:-1:1 d= 10 9 8

0.2000

7

6

0.3000

5

4

3

0.4000

2

0.5000

0.6000

0.7000

0.8000

0.9000

1.0000

1

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

0

0.3142

Columns 23 through 33 0.6283

0.9425

1.2566

1.5708

1.8850

2.1991

2.5133

2.8274

5.0265

5.3407

5.6549

5.9690

6.2832

Columns 34 through 41 4.0841

4.3982

4.7124

3.1416

3.4558

3.7699

AL CONOCER EL NÚMERO 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

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

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

>> sum(a) ans =

1

0

4

2

Suma todos los elementos de un vector

11

>> max(a)

Devuelve el número mayor de un vector

0

7.4286

ans =

7

Devuelve el n煤mero menor de un vector

>> min(a) ans =

-3

>> sort(a) ans =

-3

Ordena al vector de menor a mayor 0

1

2

4

7

MANIPULACION DE ELEMENTOS DENTRO DE UN VECTOR >> a=[-5 3 1 0 -8 2] a= -5

3

1

0

-8

2

>> a(1)

>> a(2)

ans =

ans = 3

-5

CAMBIAR EL ELEMENTO DE UN VECTOR >> a(5)=-10 a= -5

3

1

0 -10

2

- Elemento de a, posici贸n 1 >> a([1 2])

-Elemento de a, posici贸n 2

ans = -5

3

- Fila 1 >> a(1,2) ans = 3

-Posici贸n 2

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

1 -10

>> a(1:2:5) ans = -5

1 -10

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

AUMENTAR ELEMENTOS

a=

-5

3

1

0 -10

>> a(7)=4 a=

-5

3

1

0 -10

2

4

3

1

0 -10

2

4

0

0

5

2

4

0

0

5

>> a(10)=5 a=

-5

>> a(11:13)=[3 8 10] a=

-5

3

1

0 -10

3

8

10

>> a([3 8 10])=[-3 -1 4] a=

-5

3

-3

0 -10

2

4

-1

0

4

3

8

10

2

ELIMINACION DE ELEMENTOS a=[-1 0 3 5 -8] a= -1

0

3

5

-8

>> a(5)= [ ]

corchetes unidos

a= -1

0

3

5

>> a(2)=[]

corchetes unidos

a= -1

3

5

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

7

6

5

4

3

2

1

>> c=a(9:-1:1) c=

9

8

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

0.3280

0.1280

0.7280

0.9280

2.9280

3.1280

2.1280

1.9280

1.7280

1.5280

1.3280

1.1280

1.1280

1.3280

1.5280

1.7280

1.9280

2.1280

Columns 12 through 16 0.9280

0.7280

0.5280

>> a a= Columns 1 through 11 0.1280

0.3280

0.5280

Columns 12 through 16 2.3280

2.5280

>> c=['a' 'b' 'c'] c= abc >> c(4)='d' c= abcd >> c(6)='z' c=

2.7280

abcd z

OPERACIONES MATEMATICAS

>> a=[3 0 -8 2 -1 4] a=

3

0

-8

2

-1

4

>> b=[2 0 1 0 3 -1] b=

2

0

>> a+3 ans = 6

1

3

0

-5

3

-1

5

2

-1

-4

7

>> a-3 ans =

0

-3 -11

1

a/3 ans =

1.0000

0 -2.6667

0.6667 -0.3333

1.3333

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

0

0.3142

Columns 23 through 33 0.6283

0.9425

1.2566

1.5708

1.8850

2.1991

2.5133

2.8274

5.0265

5.3407

5.6549

5.9690

6.2832

Columns 34 through 41 4.0841

4.3982

4.7124

3.1416

3.4558

3.7699

SUMA ENTRE VECTORES >> a a= 3

0

-8

2

-1

4

0

1

0

3

-1

>> b b= 2

>> % SUMA DE VETORES >> a+b ans = 5

0

-7

2

2

3

0

-9

2

-4

5

>> a-b ans = 1

-Soluci贸n de un sistema lineal de ecuaciones

-Programa de temperatura INTERPOLACION BIDIMENSIONAL Se hizo un experimento determinar cómo es la distribución de la temperatura en un microondas: calentando un pastel y retirando termómetros ubicados en ciertas posiciones … Trazando en cada posición líneas simétricas tanto paralelas como perpendiculares

Ejes 1

2

3

4

5

Cada uno de los ejes nos proporciona un grafico para cada conjunto de datos. Nota: DIVISIÓN DEL ÁREA DE GRÁFICOS

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

ai')

tti=interp2(l,a,t,li,

% 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 función MESH nos proporciona el volumen del terreno, en cambio si se desea las curvas de nivel de la figura utilizamos la función CONTOUR .

Si se desea ampliar el número de curvas de nivel se le agrega un último argumento indicando el número de curvas deseadas dentro del paréntesis

CAPITULO 2

CAPITULO 2 MATRICES, ARREGLOS BIDIMENSIONALES Matrices con mรกs 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

5.0000 3.2500 2.0000

>> size(b) ans = 3

6.0000 3.5000 3.0000

7.0000 3.7500 4.0000

5

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

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

0 3

8.0000 4.0000 5.0000

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 8 -3 ; 4 1 0; 3 -2 -1]

a= 5 4 3

8 1 -2

-3 0 -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 Simult谩neo 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 Continuaci贸n 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

>> d=[a; b] d= 1 3 5 7

2 4 6 8

5 7

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

0 0 2 0

0 0 0 5

>> diag(v) ans = 3 0 0 0

0 -1 0 0

Para Una Matriz a= 1 3

2 4

>> length(a) ans =

2

Genreaci贸n 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

0 0 1

>> eye(3,4) ans = 1 0 0 1 0 0

0 0 1

0 0 0

>> eye(4,3) ans = 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 método 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 raíces del polinomio.

- Función hold on , para un grafico superpuesto.

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

CÓDIGO

COLOR

R

rojo

G

verde

B

azul

K

negro

Y

amarillo

M

magneta

EJERCICIO

CAPITULO 3

CAPITULO 3 ESTRUCTURAS Funci贸n - Programa 1

- Programa 2

WHILE, mientras

- Programa 3

- Programa 4

FunciĂłn Desde ( variable : valor inicial : valor final ) Proceso Fin - Programa 1

- Programa 2

FOR, desde – hasta

Función

Función

IF, si entonces

ELSE, caso contrario

Primer Opción Condición verdadera

Si (condición)

Proceso 1

Proceso 2 Proceso 3

Condición falsa

Si (condición)

Proceso 1

Proceso 2 Proceso 3

Segunda Opción Condición verdadera

Si (condición) Caso contrario

Proceso 1 Proceso 2

Proceso 3 Condición falsa

Si (condición) Caso contrario Proceso 3

Proceso 1 Proceso 2

(omite proceso 2)

- Programa 1

- Programa 2

- Programa 3

Funci贸n - Programa 1

WHILE, mientras

Funci贸n

SWITCH, evaluar campo

Evaluar ( variable entera ) Caso cte 1 Proceso 1 Caso cte 2 Proceso 2 Caso cte n Proceso n Por dimensi贸n Proceso n + 1 - Programa 1

- 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 números, el programa lo evaluara en las funciones del seno y coseno.

Nos devuelve la grafica de cada una de las funciones con diferentes colores.

1

1

DIAGRAMA DE GRADAS Clf

20 18

x=[1 5 9 10];

16 14

y=[18 12 2 20];

12 10

stairs( x , y );

8 6 4 2

1

2

3

4

5

6

7

8

9

DIAGRAMAS POLARES 90

0.5

120

t=0:0.1:2*pi; t y = abs(sin(2*t).*cos(2*t));

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

60 0.25

150

30

180

0

210

330

240

300 270

DIAGRAMA DE PASTEL

14%

Nos arroja directamente el porcentaje 34%

Ejemplo: resultados de una votaci贸n v=[180 60 210 75];

pie (v); 40% 11%

ADICIONAL 1

x=-4:1:10; 0.5

y=cos(x); 0

%Funci贸n coseno en forma de barra en tercera dimensi贸n

bar3( x , y , ' b ' );

-0.5 -1

Agregar color

-4-3 -2-1 0

12

34

56

78

9 10

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 posici贸n 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

y=2t-5

30

z=sin(t)

5

1 0.5

0

10

0

-0.5

0

-5

5

0

t u=cos(t) 6

3

4

2

2

-0.5

5

5

w

0

t

0 t w=sqrt(t)

v

u

0.5

0

-1

5 t v=abs(t)

1

-1

0

z

y

x

20

0

1

0

5 t

0

0

5 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

0

-500

-1000

-1500 -8

-6

-4

-2

0

2

4

6

8

-4

-2

0

2

4

6

8

PARA TENER EJES CUADRADOS

axis square 1500

1000

500

0

-500

-1000

-1500 -8

-6

PONE FACTORES DE ESCALA IGUALES EN X E Y

axis equal 1000

500

0

-500

-1000 -1500

-1000

-500

0

500

1000

1500

CON AXIS IJ

GRAFICO NORMAL 1

-1

0.8

-0.8

0.6

-0.6

0.4

-0.4

0.2

-0.2

0

0

-0.2

0.2

-0.4

0.4

-0.6

0.6

-0.8

0.8

-1 -8

-6

-4

-2

0

2

4

6

8

1 -8

-6

-4

-2

0

2

4

6

8

EJERCICIO COMPLETO

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

compass ( x , y ); 90

5

120

60 4 3

150

30 2 1

180

0

210

330

240

300 270

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

4 3.5 3 2.5 2 1.5 1 0.5 0 -4

-2

0

2

4

6

8

10

12

PARA FUNCIONES ESCRITAS DE MODO LITERAL -

Nos presenta el comportamiento de la funci贸n.

-

Ingresamos la funci贸n respetando la sintaxis de matlab y en un [ a , b ] donde a , b son valores establecidos.

fplot

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

0

1

-1

0

1

2

3

( '4*x.^2-3*x+2' , [ -3 , 3 ] ); 50 45 40 35 30 25 20 15 10 5 0 -3

-

-2

2

3

Nos presenta el titulo de la funci贸n representada

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

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

EJERCICIO, EXPONENCIAL

Y

LOGARITMICO

clc clear clf x=1:.2:10; y=1+exp(-x.^2); subplot ( 2 , 2 , 1 ); plot ( x , y ) ; grid ; title('Funci贸n 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

1

SEMILOGARITMICO EN X

1.4

1.4

1.3

1.3

1.2

1.2

1.1

1.1

1

0

5

1 0 10

10

SEMILOGARITMICO EN y

3

1

10 LOGARITMICO TOTAL

0.1

4

0.1

10

10

0

10

2

0

0

5

10

10 0 10

1

10

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

-

Aquテュ se ingresa el parテ。metro 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

0

2

4

6

8

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

GRテ:ICOS DE 3 DIMENSIONES

PARA RELLENAR EN 3 DIMENSIONES

plot3 ( x , y , z );grid

fill3 ( x , y , z , 'm' );grid

1

1

0.5

0.5

0

0

-0.5

-0.5 -1 10 10

5

5 0

0 -5 -5

-10

-1 10 10

5

5 0

0 -5 -5

-10

GRAFICOS EN VOLUMEN Para poder formar gráficos 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

y ] = meshgrid ( xa , ya ) -

[x

Para obtener la rejilla de intersección de x & y

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

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

13

x 10 8 6 4 2 0 4

3

4 3

2

2

1

1 0

0

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

-0.5 2 1

2 1

0

0

-1

-1 -2

-

-2

Para obtener las curvas de nivel proyectadas en el eje xy

meshc ( x , y , z );

0.5

0

-0.5 2 1

2 1

0

0

-1

-1 -2

-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

2 1

0

0

-1

-1 -2

-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

1

0.5

0.5

0

0

-0.5

-0.5

-1 2

-1 2

1 0 -1 -2

-1.5

-1

-0.5

0

0.5

1

1.5

1 0 -1 -2

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

-1.5

-1

-0.5

0

0.5

1

1.5

EJEMPLO 5 clear clf

1

0.5

[x,y]=meshgrid(-7.5:.5:7.5);

0

z=(sin(sqrt(x.^2+y.^2)))./(sqrt(x.^2+y.^2));

surf(x,y,z);

-0.5 10 5

10 5

0

0

-5

-5 -10

-10

EJEMPLO 5 Clear 2

[x,y]=meshgrid(-3:0.2:3);

1

z=sin(x)+cos(y);

0 -1

-

Grafico tipo cascada -2 4

Waterfall ( x , y , z);

2

4 2

0

0

-2

-2 -4

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

-4

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

NĂşmero de curvas de nivel 3

2 2

1 1

0 0

-1 -1

-2 2

-2

0 -3 -3

-2 -2

-1

0

1

2

3

-3

-2

-1

0

1

2

3

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

-1 1

0.5

1 0.5

0

0.5

1

-0.5

0.5

0

0

-0.5

-0.5 -1

0 -0.5

-1

-1

-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

cylinder(y);

2.6 2.4 2.2 2 1.8

1

1.6 1.4

0.8

1.2 1

0

1

2

3

4

5

6

7

0.6 0.4 0.2 0 4

OTRO EJERCICIO x=0:5; y=2*x+3; subplot(1,2,1);plot(x,y); subplot(1,2,2);cylinder(y);

2

0

-2

-4

-2

0

2

13 12 1

11 10

0.8

9

0.6

8

0.4

7

0.2

6

0 20

5

20 4 3

0 0

1

2

3

4

5

0 -20

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


Curso de Matlab