78
2010 PAUL DAVID FIERRO QUINTANA Escuela Politécnica del Ejercito (E.S.P.E.) Ecuador-Quito 08/02/2010 C U R S O - M A T L A B

CURSO DE MATLAB.pdf

Embed Size (px)

Citation preview

Page 1: CURSO DE MATLAB.pdf

Cap

ítulo

: ¡E

rror!

No h

ay t

exto

con

el

esti

lo e

spec

ific

ad

o e

n e

l d

ocu

men

to.

1

2010

PAUL DAVID FIERRO QUINTANA

Escuela Politécnica del Ejercito

(E.S.P.E.) Ecuador-Quito

08/02/2010

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

Page 2: CURSO DE MATLAB.pdf

Comandos Importantes Y Claves

Lo digitamos para omitir el ECO

>>a = 5 ans=5

>>a = 5; >>

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

, Borra el área de gráficos

;

:

Digitando Alt92

Digitando Alt126

Significa “ o ”

|

\

clf

Page 3: CURSO DE MATLAB.pdf

INTRODUCCIÓN

Page 4: CURSO DE MATLAB.pdf

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

/ \

IZQ ------ DER

Suma

Resta

+

-

IZQ ------ DER

Multiplicación

*

IZQ ------ DER

Potenciación

^

IZQ ------ DER

Ingreso de Datos,

4x – 5x – 8 = 0

𝑥 =−𝑏± 𝑏2−4𝑎𝑐

2𝑎

X1 = (-(-5)+(((-5)^2)-4*4*(-8))^(1/2))/(2*4)

Si no pongo el paréntesis el

programa el programa 1ro lo eleva

a 1 y luego lo divide para 2

El mismo caso, si no ponemos el

paréntesis el programa 1ro nos

divide para 2 y luego nos

multiplica por 4

Page 5: CURSO DE MATLAB.pdf

2 E 3

2 x 103 = 2000

2/3

2/3 = 0,6667

2/3 = 0,666666667

2/3 = 6,6667e-001

Otros comandos,

>> FORMAT RAT, Devuelve el numero en fraccionarios.

>> FORMAT BAK, Formato bancario.

>> FORMAT + , Devuelve el signo del numero.

Para tener un formato con más

dígitos decimales, digitamos:

>> FORMAT LONG

Para tener un formato elevado a la e,

digitamos:

>> FORMAT SHORT e

>> FORMAT LONG e

Page 6: CURSO DE MATLAB.pdf

Variables de Comando: Es la combinación de letras, dígitos

OK ERROR

raiz1 raíz 1

r2

Indica con letra

OK ERROR

r1 1r - radio

Diferencias de Mayúsculas de minúsculas

OK ERROR

raiz1 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

Page 7: CURSO DE MATLAB.pdf

¿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

Log(x)

Ln (x)

Log10 (x)

Log (x)

- Función Real (x), me devuelve el número real.

X ε Reales

- Función Imag (x), me devuelve el número imaginario.

X ε Complejos

Page 8: CURSO DE MATLAB.pdf

Redondeo de Números

- Función Ceil (x), redondeo al + ∞.

- Función Floor (x), redondeo al - ∞.

Funciones Trigonométricas

sin (x) sec(x) asin(x)

cos (x) csc(x) acos(x)

tan(x) cot(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

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

- Función Conj (x), devuelve la conjugada del numero

complejo.

Page 9: CURSO DE MATLAB.pdf

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

Page 10: CURSO DE MATLAB.pdf

- Planteado de diferente forma,

Page 11: CURSO DE MATLAB.pdf

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

Page 12: CURSO DE MATLAB.pdf

-Resolución de una viga simple con carga puntual

Page 13: CURSO DE MATLAB.pdf

CAPITULO 1

Page 14: CURSO DE MATLAB.pdf

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.

5 -3 0 8 4

IND 1 2 3 4 5

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

- 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

a = ( 1 * 5 )

c

o

l

u

m

n

a

f

i

l

a

s

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

Page 15: CURSO DE MATLAB.pdf

Otros comandos

- Comando linspace,

Vector = linspace(valor inicial, valor final, numero de elementos)

l = 3,25

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.

V I G A

Page 16: CURSO DE MATLAB.pdf

EJERCICIOS

>> a,b a = 5 -3 0 8 4 b = 3.5000 4.0000 -2.0000 40.0000 1.0000 -15.0000 h=[a b]

h = 5.0000 -3.0000 0 8.0000 4.0000 3.5000 4.0000 -2.0000 40.0000 1.0000 -15.0000 >> whos Name Size Bytes Class Attributes a 1x5 40 double ans 1x2 16 double b 1x6 48 double h 1x11 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

Page 17: CURSO DE MATLAB.pdf

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 7 6 5 4 3 2 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 3.1416 3.4558 3.7699 Columns 34 through 41 4.0841 4.3982 4.7124 5.0265 5.3407 5.6549 5.9690 6.2832

Page 18: CURSO DE MATLAB.pdf

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 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 >> max(a)

Suma todos los elementos de un vector

Devuelve el número mayor de un vector

Page 19: CURSO DE MATLAB.pdf

ans = 7 >> min(a) ans = -3 >> sort(a)

ans = -3 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) ans = -5

CAMBIAR EL ELEMENTO DE UN VECTOR >> a(5)=-10 a = -5 3 1 0 -10 2 >> a([1 2]) ans = -5 3 >> a(1,2) ans = 3

Devuelve el número menor de un vector

Ordena al vector de menor a mayor

>> a(2) ans = 3

- Elemento de a, posición 1

-Elemento de a, posición 2

- Fila 1

-Posición 2

Page 20: CURSO DE MATLAB.pdf

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

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

Page 21: CURSO DE MATLAB.pdf

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

Page 22: CURSO DE MATLAB.pdf

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

Page 23: CURSO DE MATLAB.pdf

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 1 0 3 -1 >> a+3 ans = 6 3 -5 5 2 7 >> a-3 ans = 0 -3 -11 -1 -4 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 3.1416 3.4558 3.7699 Columns 34 through 41 4.0841 4.3982 4.7124 5.0265 5.3407 5.6549 5.9690 6.2832

Page 24: CURSO DE MATLAB.pdf

SUMA ENTRE VECTORES

>> a

a =

3 0 -8 2 -1 4

>> b

b =

2 0 1 0 3 -1

>> % SUMA DE VETORES

>> a+b

ans =

5 0 -7 2 2 3

>> a-b

ans =

1 0 -9 2 -4 5

Page 25: CURSO DE MATLAB.pdf

-Solución de un sistema lineal de ecuaciones

Page 26: CURSO DE MATLAB.pdf

-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

Cada uno de los ejes nos proporciona un grafico para cada conjunto de datos.

Nota: DIVISIÓN DEL ÁREA DE GRÁFICOS

Ejes

1 2 3 4

5

Page 27: CURSO DE MATLAB.pdf

Ahora cambiamos el sentido del corte y tendremos la vista longitudinal del elemento

Page 28: CURSO DE MATLAB.pdf

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

Page 29: CURSO DE MATLAB.pdf
Page 30: CURSO DE MATLAB.pdf

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

Page 31: CURSO DE MATLAB.pdf
Page 32: CURSO DE MATLAB.pdf
Page 33: CURSO DE MATLAB.pdf
Page 34: CURSO DE MATLAB.pdf

CAPITULO 2

Page 35: CURSO DE MATLAB.pdf

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 5.0000 6.0000 7.0000 8.0000 3.0000 3.2500 3.5000 3.7500 4.0000 1.0000 2.0000 3.0000 4.0000 5.0000 >> size(b) ans = 3 5

Reemplazo De Valores

%Para reemplazar un valor >> a(2,2)=10

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

Cambio En Orden De Las Filas >> a=[1 2 3; 4 5 6; 7 8 9] a = 1 2 3 4 5 6 7 8 9

Page 36: CURSO DE MATLAB.pdf

Para Cambiar Las Filas De La Matriz >> b=a(3:-1:1,1:3) b = 7 8 9 4 5 6 1 2 3 >> c=a(1:3,3:-1:1) c = 3 2 1 6 5 4 9 8 7

Para Cambiar Filas Y Columnas

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

Page 37: CURSO DE MATLAB.pdf

Menores De Una Matriz Dada la matriz a=[5 8 -3 ; 4 1 0; 3 -2 -1] a = 5 8 -3 4 1 0 3 -2 -1 >> b=a(2:3,2:3) b = 1 0 -2 -1 >> %Otro menor >> c=a(2:3,1:2) c = 4 1 3 -2 >> d=a(2:3,[1 3]) d = 4 0 3 -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 8 -3 4 1 0 3 -2 -1

Page 38: CURSO DE MATLAB.pdf

>> a(1,:)=[] a = 4 1 0 3 -2 -1 >> %Eliminacion columnas >> a(:,2)=[] a = 4 0 3 -1

Otros Ejemplos Dados >> a=[5 8 -3 ; 4 1 0; 3 -2 -1] a = 5 8 -3 4 1 0 3 -2 -1 >> b=a b = 5 8 -3 4 1 0 3 -2 -1 >> %Para que en la 1 fila tenga la tercer de a y en la primera la tercera >> b(1,:)=a(3,:) b = 3 -2 -1 4 1 0 3 -2 -1 >> b(3,:)=a(1,:) b = 3 -2 -1 4 1 0 5 8 -3

Page 39: CURSO DE MATLAB.pdf

Proceso Simultáneo Del Intercambio Anterior

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

>> c([1 3],:)=a([3 1],:)

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

Matrices A Continuación Una De Otra >> a=[1 2; 3 4]

a = 1 2 3 4

>> b=[5 6; 7 8] b = 5 6 7 8 >> c=[a b]

c = 1 2 5 6 3 4 7 8 >> d=[a; b] d = 1 2 3 4 5 6 7 8

Page 40: CURSO DE MATLAB.pdf

Funciones Directas >> a a = 1 2 3 4 >> flipud(a) ans = 3 4 1 2 >> fliplr(a) ans = 2 1 4 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

Page 41: CURSO DE MATLAB.pdf

Para Una Matriz a = 1 2 3 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

Page 42: CURSO DE MATLAB.pdf

>> 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 0 1 0 0 0 1 >> eye(3,4) ans = 1 0 0 0 0 1 0 0 0 0 1 0 >> eye(4,3) ans = 1 0 0 0 1 0 0 0 1 0 0 0

Determinantes a = 1 2 3 4 >> det(a)

ans = -2

Page 43: CURSO DE MATLAB.pdf

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 -1 -3 -1 1 2 1 1 >> vti=input('Ingresar los vectores independientes : ') Ingresar los vectores independientes : [8; -5; 7] vti = 8 -5 7 >> mx=mc mx = 2 3 -1 -3 -1 1 2 1 1 >> mx(:,1)=vti mx = 8 3 -1 -5 -1 1 7 1 1 >> my=mc my = 2 3 -1 -3 -1 1 2 1 1

Page 44: CURSO DE MATLAB.pdf

>> my(:,2)=vti my = 2 8 -1 -3 -5 1 2 7 1 >> mz=mc mz = 2 3 -1 -3 -1 1 2 1 1 >> mz(:,3)=vti mz = 2 3 8 -3 -1 -5 2 1 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

Page 45: CURSO DE MATLAB.pdf

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

Page 46: CURSO DE MATLAB.pdf

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

Page 47: CURSO DE MATLAB.pdf

EJERCICIO

Page 48: CURSO DE MATLAB.pdf

CAPITULO 3

Page 49: CURSO DE MATLAB.pdf

CAPITULO 3

ESTRUCTURAS

- Programa 1

- Programa 2

Función WHILE, mientras

Page 50: CURSO DE MATLAB.pdf

- Programa 3

Page 51: CURSO DE MATLAB.pdf

- Programa 4

Page 52: CURSO DE MATLAB.pdf

Desde ( variable : valor inicial : valor final )

Proceso

Fin

- Programa 1

- Programa 2

Función FOR, desde – hasta

Page 53: CURSO DE MATLAB.pdf

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

Caso contrario Proceso 2 (omite proceso 2)

Proceso 3

Condición falsa

Si (condición) Proceso 1

Caso contrario Proceso 2

Proceso 3

Función IF, si entonces

Función ELSE, caso contrario

Page 54: CURSO DE MATLAB.pdf

- Programa 1

- Programa 2

- Programa 3

Page 55: CURSO DE MATLAB.pdf

- Programa 1

Función WHILE, mientras

Page 56: CURSO DE MATLAB.pdf

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

Función SWITCH, evaluar campo

- Comando case, caso

- Comando otherwise, en otro caso

Page 57: CURSO DE MATLAB.pdf

- Programa 2

- Programa 3

Page 58: CURSO DE MATLAB.pdf

CAPITULO 4

Page 59: CURSO DE MATLAB.pdf

CAPITULO 4

GRAFICOS, DIAGRAMA DE BARRAS

1

1

Nos devuelve la grafica de cada

una de las funciones con diferentes

colores.

X=-1:0.1:5; Se está creando

una serie de números, el

programa lo evaluara en las

funciones del seno y coseno.

Page 60: CURSO DE MATLAB.pdf

-4-3-2-10 12345 678910

-1

-0.5

0

0.5

1

1 2 3 4 5 6 7 8 9 102

4

6

8

10

12

14

16

18

20

0.25

0.5

30

210

60

240

90

270

120

300

150

330

180 0

34%

11%

40%

14%

DIAGRAMA DE GRADAS

Clf x=[1 5 9 10]; y=[18 12 2 20];

stairs( x , y );

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

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

DIAGRAMA DE PASTEL Nos arroja directamente el porcentaje

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

pie (v);

ADICIONAL x=-4:1:10; y=cos(x); %Función coseno en forma de barra en tercera dimensión

bar3( x , y , ' b ' );

Agregar color

Page 61: CURSO DE MATLAB.pdf

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

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

0 50

10

20

30

t

x

x=t2

0 5-5

0

5

t

y

y=2t-5

0 5-1

-0.5

0

0.5

1

t

z

z=sin(t)

0 5-1

-0.5

0

0.5

1

t

u

u=cos(t)

0 50

2

4

6

t

v

v=abs(t)

0 50

1

2

3

t

w

w=sqrt(t)

Indicamos la posición en la que

queremos que aparezca nuestro

grafico.

Page 62: CURSO DE MATLAB.pdf

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

OTRO EJEMPLO

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

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

-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

-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5

Page 63: CURSO DE MATLAB.pdf

PARA RECUPERAR EL FORMATO ORIGINAL, OMITE EL AXIS

axis auto

PARA TENER EJES CUADRADOS

axis square

PONE FACTORES DE ESCALA IGUALES EN X E Y

axis equal

-8 -6 -4 -2 0 2 4 6 8-1500

-1000

-500

0

500

1000

1500

-8 -6 -4 -2 0 2 4 6 8-1500

-1000

-500

0

500

1000

1500

-1500 -1000 -500 0 500 1000 1500

-1000

-500

0

500

1000

Page 64: CURSO DE MATLAB.pdf

GRAFICO NORMAL CON AXIS IJ

-8 -6 -4 -2 0 2 4 6 8

-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

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Page 65: CURSO DE MATLAB.pdf

EJERCICIO COMPLETO

Page 66: CURSO DE MATLAB.pdf

GRAFICOS DE FLECHAS, GRAFICO TIPO COMPASS

x=-pi:0.8:pi; y=3-sin(x);

compass ( x , y );

COMO ORIGEN UNA LINEA RECTA

feather ( x , y );

1

2

3

4

5

30

210

60

240

90

270

120

300

150

330

180 0

-4 -2 0 2 4 6 8 10 120

0.5

1

1.5

2

2.5

3

3.5

4

Page 67: CURSO DE MATLAB.pdf

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

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

- Nos presenta el titulo de la función representada

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

-3 -2 -1 0 1 2 3-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

-3 -2 -1 0 1 2 30

5

10

15

20

25

30

35

40

45

50

-3 -2 -1 0 1 2 3

0

5

10

15

20

25

30

35

40

45

50

x

4 x2-3 x+2

Page 68: CURSO DE MATLAB.pdf

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

0 5 101

1.1

1.2

1.3

1.4Funcion exponencial NORMAL

100

101

1

1.1

1.2

1.3

1.4SEMILOGARITMICO EN X

0 5 1010

0

100.1

SEMILOGARITMICO EN y

100

101

100

100.1

LOGARITMICO TOTAL

1

4 3

2

Page 69: CURSO DE MATLAB.pdf

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

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

GRÁFICOS DE 3 DIMENSIONES PARA RELLENAR EN 3 DIMENSIONES

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

-8 -6 -4 -2 0 2 4 6 8-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

-10

-5

0

5

10

-5

0

5

10-1

-0.5

0

0.5

1

-10

-5

0

5

10

-5

0

5

10-1

-0.5

0

0.5

1

Page 70: CURSO DE MATLAB.pdf

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;

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

[ x y ] = meshgrid ( xa , ya )

- Para formar una retícula cuadrada con variaciones del mismo tipo

[ x y ] = meshgrid ( 0 : 0.2 : 4 ) z = exp ( x.^2 + y.^2 ); mesh ( x , y , z )

01

23

4

0

1

2

3

40

2

4

6

8

x 1013

Page 71: CURSO DE MATLAB.pdf

GRAFICOS EN VOLUMEN 2 Clear [ x y ] = meshgrid ( -2 : 0.2 : 2)

z = x.*exp(-x.^2-y.^2);

mesh ( x , y , z )

- Para obtener las curvas de nivel proyectadas en el eje xy

meshc ( x , y , z );

-2-1

01

2

-2

-1

0

1

2-0.5

0

0.5

-2-1

01

2

-2

-1

0

1

2-0.5

0

0.5

Page 72: CURSO DE MATLAB.pdf

EJEMPLO 1 Clear [x y]=meshgrid(-2:.2:2); z=x.^2+y.^2; mesh(x,y,z);

meshc(x,y,z);

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

z=x.^2-y.^2-9;

- Limita la grafica

meshz (x , y , z);

-2-1

01

2

-2

-1

0

1

20

2

4

6

8

-3-2

-10

12

3

-4

-2

0

2

4-20

-15

-10

-5

0

Page 73: CURSO DE MATLAB.pdf

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

EJEMPLO 4

- Para obtener las curvas de nivel proyectadas.

Surfc ( x , y , z);

-1.5-1

-0.50

0.51

1.5

-2

-1

0

1

2-1

-0.5

0

0.5

1

-1.5-1

-0.50

0.51

1.5

-2

-1

0

1

2-1

-0.5

0

0.5

1

-1.5-1

-0.50

0.51

1.5

-2

-1

0

1

2-1

-0.5

0

0.5

1

Page 74: CURSO DE MATLAB.pdf

-4-2

02

4

-4

-2

0

2

4-2

-1

0

1

2

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

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

surf(x,y,z);

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

- Grafico tipo cascada Waterfall ( x , y , z);

CURVAS DE NIVEL CURVAS DE NIVEL EN VOLUMEN

contour(x,y,z,20); contour3(x,y,z,20);

Número de curvas de nivel

-3 -2 -1 0 1 2 3

-3

-2

-1

0

1

2

3

-3-2

-10

12

3

-2

0

2

-2

-1

0

1

2

-10-5

05

10

-10

-5

0

5

10-0.5

0

0.5

1

Page 75: CURSO DE MATLAB.pdf

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 Numero de reticulas en la esfera sphere sphere(4)

Page 76: CURSO DE MATLAB.pdf

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

cylinder(y);

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

-1

-0.5

0

0.5

1

-1

-0.5

0

0.5

1-1

-0.5

0

0.5

1

-1

-0.5

0

0.5

1

-1

-0.5

0

0.5

1-1

-0.5

0

0.5

1

-20

2

-4-2

02

40

0.2

0.4

0.6

0.8

1

0 1 2 3 4 5 6 71

1.2

1.4

1.6

1.8

2

2.2

2.4

2.6

2.8

3

Page 77: CURSO DE MATLAB.pdf

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

0 1 2 3 4 53

4

5

6

7

8

9

10

11

12

13

-20

0

20

-20

0

20

0

0.2

0.4

0.6

0.8

1

Page 78: CURSO DE MATLAB.pdf

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