Documente Academic
Documente Profesional
Documente Cultură
Introducción a Matlab
1 ¿Qué es Matlab?
2 La interfaz gráfica
3 Instrucciones básicas
4 Operaciones con vectores y matrices
Vectores
Matrices
5 Funciones y scripts
6 Estructuras de control
Condicionales
Bucles
7 Representaciones gráficas
Plot
Surf
8 Cálculo simbólico
9 Ejercicios
¿Qué es Matlab?
La interfaz gráfica
Instrucciones básicas
Comandos
help
save, clear, clc, who, load
Tipos de archivos
.m, .mat, .fig
Funciones
sin, cos, log, log10, atan, atan2
Otros
ans, NaN, ...
π: pi, e: exp(1), i: 1i
π
Ejemplo 8. Cálculo de e−i 2
>> exp(-1i*pi/2)
1 ¿Qué es Matlab?
2 La interfaz gráfica
3 Instrucciones básicas
5 Funciones y scripts
6 Estructuras de control
7 Representaciones gráficas
8 Cálculo simbólico
9 Ejercicios
FI Chicharro + A Cordero + JR Torregrosa Otoño ’19 13 / 42
Vectores
Ejemplo 12. Obtén un vector de 300 nodos equiespaciados entre los valores 0 y 5
>> x=linspace(0,5,300);
T
Ejemplo 14. Sean w = 4 π −1 0 yt= i 0 2 1−i , calcula
T
w + t : w+t.’
w · t: w*t
z = w1 t1 w2 t2 w3 t3 w4 t4 : w.*t.’
1 ¿Qué es Matlab?
2 La interfaz gráfica
3 Instrucciones básicas
5 Funciones y scripts
6 Estructuras de control
7 Representaciones gráficas
8 Cálculo simbólico
9 Ejercicios
FI Chicharro + A Cordero + JR Torregrosa Otoño ’19 17 / 42
Matrices
Extracción de elementos
Una componente: A(2,3)=-1
Varias componentes: A([2,3],2)=2 5
Una fila: A(3,:)=1 5 3
Una columna: A(:,2)=-1 2 5
Funciones y scripts
Funciones vs scripts
Funciones Scripts
Tiene parámetros de entrada No tiene parámetros de entrada
Útil con pocos y muchos parámetros Útil con pocos parámetros
raizcuadradafunction.m raizcuadradascript.m
function y=raizcuadradafunction(x) x=5;
y=sqrt(x); y=sqrt(x);
Ejemplo 19. Genera el archivo e2g.m que resuelve polinomios de segundo grado
del tipo ax2 + bx + c = 0. Como parámetros de entrada tienes que introducir los
coeficientes a, b y c, y como parámetros de salida las soluciones.
1. Abrir el editor de Matlab
2. Escribir la función
function [sol]=e2g(a,b,c)
sol1=(-b+sqrt(b^2-4*a*c))/(2*a);
sol2=(-b-sqrt(b^2-4*a*c))/(2*a);
sol=[sol1 sol2];
Ejemplo 20. Ejecuta el programa e2g para obtener la solución de los siguientes
polinomios de segundo grado.
2x2 − 5 = 0: >> s1=e2g(2,0,-5)
x2 + 1 = 0: >> s2=e2g(1,0,1)
x2 − i2x + π = 0: >> s3=e2g(1,-2*1i,pi)
Estructuras de control
1 ¿Qué es Matlab?
2 La interfaz gráfica
3 Instrucciones básicas
5 Funciones y scripts
6 Estructuras de control
Condicionales
Bucles
7 Representaciones gráficas
8 Cálculo simbólico
9 Ejercicios
FI Chicharro + A Cordero + JR Torregrosa Otoño ’19 25 / 42
Condicionales
if Ejemplo 21. if
if nota<5
if condición
disp(’Suspenso’)
instrucciones else
end disp(’Aprobado’)
end
if condición
intrucciones Ejemplo 22. if
else if nota<5
instrucciones disp(’Suspenso’)
end else if nota<7
disp(’Aprobado’)
else if nota<9
if condición disp(’Notable’)
intrucciones else
else if condición disp(’Sobresaliente’)
instrucciones end
end
else end
instrucciones
end Alineación en Matlab
end
Ctrl+A + Ctrl+I
FI Chicharro + A Cordero + JR Torregrosa Otoño ’19 26 / 42
Condicionales
switch
switch expresión
case valor1 Ejemplo 23. switch
instrucciones
case valor2 Raı́ces de f (x) = x2 + c para
instrucciones c ∈ {−1, 0, 1}
end switch c
case -1
disp(’Raı́ces reales’)
switch expresión
case 0
case valor1
disp(’Raı́z real’)
instrucciones
otherwise
case valor2
disp(’Raı́ces complejas’)
instrucciones
end
otherwise
instrucciones
end
1 ¿Qué es Matlab?
2 La interfaz gráfica
3 Instrucciones básicas
5 Funciones y scripts
6 Estructuras de control
Condicionales
Bucles
7 Representaciones gráficas
8 Cálculo simbólico
9 Ejercicios
FI Chicharro + A Cordero + JR Torregrosa Otoño ’19 28 / 42
Bucles
while
while condición
instrucciones Ejemplo 24. while
end iter=0;
Uso de condiciones while iter<=20&&fx>1e-6
fx=f(x); dfx=df(x);
Incrementales x=x-fx/dfx;
n=0; iter=iter+1;
while n<10 end
instrucciones
n=n+1;
end
Representaciones gráficas
1 ¿Qué es Matlab?
2 La interfaz gráfica
3 Instrucciones básicas
5 Funciones y scripts
6 Estructuras de control
7 Representaciones gráficas
Plot
Surf
8 Cálculo simbólico
9 Ejercicios
FI Chicharro + A Cordero + JR Torregrosa Otoño ’19 32 / 42
Plot
plot(x,y)
Representa en abscisas los valores de x y en ordenadas los valores de y, unidos por lı́neas.
Los vectores tienen que tener las mismas dimensiones.
Opciones
Añadir tı́tulo a los ejes: xlabel(texto), ylabel(texto)
Añadir tı́tulo a la figura: title(texto)
Los tı́tulos permiten texto en LATEX
Guardar figura como *.fig
Añadir mallado a los ejes: grid
Incluir leyenda: legend(texto1,texto2)
x=cos(t);
0
y=sin(t);
plot(t/2/pi,[x;y]); -0.5
xlabel(’t’), legend(’x’,’y’)
-1
0 0.2 0.4 0.6 0.8 1
t
1 ¿Qué es Matlab?
2 La interfaz gráfica
3 Instrucciones básicas
5 Funciones y scripts
6 Estructuras de control
7 Representaciones gráficas
Plot
Surf
8 Cálculo simbólico
9 Ejercicios
FI Chicharro + A Cordero + JR Torregrosa Otoño ’19 34 / 42
Surf
mesh(x,y,z)
Abscisas: vector x. Ordenadas: vector y. Cota: matriz z.
Los vectores tienen que tener las mismas dimensiones.
La matriz tiene length(x) filas y length(y) columnas.
Opciones
Interpolar el resultado: shading interp
Visualizar la barra de colores: colorbar
Cambiar la paleta de colores: colormap mapa de colores
rc=linspace(-2,2,20); ic=linspace(-3,3,40); 2
surf(rc,ic,abs(zC)) 1
xlabel(’\Re\{c\}’) 0
3
-1 0
-2 -1
={c} -3 -2 <{c}
Cálculo simbólico
Matlab también puede trabajar con cálculo simbólico, aunque no es tan potente como
Mathematica
Es necesario definir qué variables serán simbólicas
21/12/17 17:23 MATLAB Command Window 1 of 1
Matlab Mathematica
>> syms x c In[3]:= fx_, c_ x ^ 2 c
>> fx=x^2+c
fx = Out[3]= c x2
x^2 + c
>> v=x+fx In[4]:= vx_, c_ x fx, c
v =
x^2 + x + c Out[4]= c x x2
Mx_, c_ x fx, c ^ 2 fv, c fx, c Simplify
>> fv=v^2+c
fv = In[5]:=
c x2
c + (x^2 + x + c)^2
2
>> M=simplify(x-fx^2/(fv-fx))
M = Out[5]= x
(x^3 + x^2 + c*x - c)/(x^2 + 2*x + c) v2 x2
>> solve(M==x,x) In[6]:= SolveMx, c x, x
x c , x c , x c , x c
ans =
(-c)^(1/2)
Out[6]=
-(-c)^(1/2)
>>
>>
>>
>>
>>
FI Chicharro + A Cordero + JR Torregrosa Otoño ’19 37 / 42
9
Ejercicios
Ejercicio 1.
1. Genera un script que exporte a Excel en formato tabla los resultados de las
siguientes funciones en el intervalo x ∈ [−5, 5], tomando 11 valores en cada
intervalo. Muestra por pantalla los gráficos resultantes.
f1 (x) = x2 − x
f2 (x) = cos2 (x)
f3 (x) = exp(−x)
f4 (x) = sin(x) + cos(x)
2. Genera un informe con los valores numéricos y las representaciones gráficas.
Ejercicio 2.
1. Genera un programa (una function que muestre por pantalla la derivada analı́tica y
la derivada aproximada de una función. La derivada aproximada viene dada por la
expresión
f (x + h) − f (x)
f 0 (x) ≈ ,
h
donde h = xi − xi−1 . Como parámetros de entrada tendrás que dar la función y los
valores de x.
2. Modifica dicho programa para que exporte los valores numéricos de la derivada
analı́tica y la derivada aproximada para las siguientes funciones y los siguientes
intervalos, tomando siempre 11 nodos:
f1 (x) = x3 − 3x + 2, x ∈ [−1, 1],
2
√ (x) − ln(x + 5), x ∈ [−3, 0],
f2 (x) = sin
f3 (x) = 3x + exp(−x/2), x ∈ [−1, 2].
3. Genera un informe con los valores numéricos y las representaciones gráficas.