curso de matlab
DESCRIPTION
Comandos basicos de Matlab, resolucion de problemas de ingenieria civil en Maltab, comandos while for if.TRANSCRIPT
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
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
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
/ \
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
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
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
¿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
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.
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.
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
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
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
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
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
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
>> 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
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
>> 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 = 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
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
-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
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
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 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 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
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
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
>> 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
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
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
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
>> 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
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
>> 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
>> 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
- Programa 1
- Programa 2
Función WHILE, mientras
- Programa 3
- Programa 4
Desde ( variable : valor inicial : valor final )
Proceso
Fin
- Programa 1
- Programa 2
Función FOR, desde – hasta
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
- Programa 1
- Programa 2
- Programa 3
- Programa 1
Función WHILE, mientras
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
- Programa 2
- Programa 3
CAPITULO 4
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.
-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
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.
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
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
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
EJERCICIO COMPLETO
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
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
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
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
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
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
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
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
-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
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)
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
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
%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);