Tema 01 - Introduccion A Matlab
Tema 01 - Introduccion A Matlab
Tema 01 - Introduccion A Matlab
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
Workspace
Ventana de comandos
Historial de comandos
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
N Garrido + A Cordero + JR Torregrosa Primavera 20’ 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
N Garrido + A Cordero + JR Torregrosa Primavera 20’ 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
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
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
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
Funciones vs scripts
Funciones
Tiene parámetros de entrada
Scripts
Útil con pocos y muchos parámetros No tiene parámetros de entrada
raizcuadradafunction.m Útil con pocos parámetros
function y=raizcuadradafunction(x) raizcuadradascript.m
y=sqrt(x);
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 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
N Garrido + A Cordero + JR Torregrosa Primavera 20’ 25 / 42
Condicionales
if
if condición
instrucciones
end
if
if condición
instrucciones
end
if condición
intrucciones
else
instrucciones
end
if
if condición
instrucciones
end
if condición
intrucciones
else
instrucciones
end
if condición
intrucciones
else if condición
instrucciones
else
instrucciones
end
end
N Garrido + A Cordero + JR Torregrosa Primavera 20’ 26 / 42
Condicionales
if Ejemplo 21. if
if nota<5
if condición disp(’Suspenso’)
instrucciones else
end disp(’Aprobado’)
end
if condición
intrucciones
else
instrucciones
end
if condición
intrucciones
else if condición
instrucciones
else
instrucciones
end
end
N Garrido + A Cordero + JR Torregrosa Primavera 20’ 26 / 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’)
end
instrucciones end
else end
instrucciones
end
end
N Garrido + A Cordero + JR Torregrosa Primavera 20’ 26 / 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’)
end
instrucciones end
else end
instrucciones
end Alineación en Matlab
end
Ctrl+A + Ctrl+I
N Garrido + A Cordero + JR Torregrosa Primavera 20’ 26 / 42
Condicionales
switch
switch expresión
case valor1
instrucciones
case valor2
instrucciones
end
switch
switch expresión
case valor1
instrucciones
case valor2
instrucciones
end
switch expresión
case valor1
instrucciones
case valor2
instrucciones
otherwise
instrucciones
end
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
N Garrido + A Cordero + JR Torregrosa Primavera 20’ 28 / 42
Bucles
while
while condición
instrucciones
end
while
while condición
instrucciones
end
Uso de condiciones
Incrementales
n=0;
while n<10
instrucciones
n=n+1;
end
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
for simple
for ı́ndices=vector
instrucciones
end
for doble
for ı́ndices1=vector1
for ı́ndices2=vector2
instrucciones
end
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
N Garrido + A Cordero + JR Torregrosa Primavera 20’ 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.
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)
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
N Garrido + A Cordero + JR Torregrosa Primavera 20’ 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.
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
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)
>>
>>
>>
>>
>>
N Garrido + A Cordero + JR Torregrosa Primavera 20’ 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.