Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 1 - MATLAB
MATLAB
Vectores
Variables
Matrices
Gráficos
Programación
Programa
Secuencia de instrucciones
Compiladores
Lenguaje de o Intérpretes
programación
Programas
Herramienta de intermedios
comunicación
Ordenador
Lenguaje máquina o
Ideas ➽
lenguaje ensamblador
instrucciones
ejecutables ⬍
Usuario
Lenguaje alto nivel
2
Planificación
establecer la secuencia de
etapas a aplicar en la resolución
3
Edición
escritura del código fuente y empleo
del lenguaje de programación
Compilación y ejecución
del programa al lenguaje máquina 4
Comprobación y Corrección
5 de errores
del programa
Documentación
revisión del
código fuente, simpli cación e 6
inclusión de líneas de comentarios
fi
Datos
se almacenan como números:
Datos, Vectores, Matrices, …
Estructuras de Control
permiten modi car el orden de las
instrucciones de un programa
Condicionales o Bucles o
Bifurcaciones repeticiones
se ejecutan distintas permiten que se
instrucciones según ejecuten
se veri que o no repetidamente un
determinada conjunto de
condición instrucciones
Funciones
Inducen orden; separan las distintas
subrutinas que componen un programa
fi
fi
Entornos de Programación
MATLAB
Vectores
Variables
Matrices
Gráficos
MATLAB
Matrix Laboratory
vectores y matrices
escalares (reales y complejos)
cadenas de caracteres
grá cos 2D y 3D
p
3 ⇤ 57 + log(89) >> sqrt (3*5^7+log(89))/cos(8)
Ejemplo:
cos(8) ans =
Para que MATLAB lo ejecute se pulsa “intro”
El resultado de la operación lo devuelve en -3.3273e+03
la variable ans.
Ejemplo: cos(5) · 27.3
>> cos (5)*2^7.3
ans =
44.7013
ans =
3.8000
ans
Operadores
Símbolos que permiten hacer
operaciones
+, *, /, ^, …
Después
Primero las potencias,
luego los
productos y
se resuelven los
divisiones de
cálculos de los
izquierda a
paréntesis, desde
derecha, y
el más interno al
nalmente, las
más externo
sumas y restas de
izquierda a
derecha
•…
Comandos
Borrar pantalla de línea de comandos: clc
MATLAB
Variables
Vectores
Matrices
Gráficos
Variables
Áreas de memoria para guardar
valores
>> Radio=2.1;
>> Area=pi*Radio^2
Se identifican con nombres que
sugieran algo de ellas Area =
13.8544
En MATLAB las variables no son
nunca declaradas. Su tipo y su
tamaño cambian de forma
dinámica de acuerdo con los
valores que le son asignados
pi es el valor aproximado de π
Texto
Vectores y Matrices
Valores lógicos
Es una asignación!!!
El valor que está a la derecha se
asigna al nombre de la variable
que está a la izquierda
>> 2x=8
>> x2=8
X2 =
8
Borrar la variable p: clear p
Ejemplo
Asignar a la variable x el valor
(1/2)2
<latexit sha1_base64="G8OvAvr/OCCaCBCcjEHIMOw7Wes=">AAAB+3icbVDLTgJBEOzFF+Jr1YuJl4nEBKPiLhHxSPTiERN5JIBkdpiFCbOPzMyakM36M3oy6s2/8Af8Gwfcg4J1qu6qTrrKCTmTyrK+jMzC4tLySnY1t7a+sbllbu80ZBAJQusk4IFoOVhSznxaV0xx2goFxZ7DadMZXU/05gMVkgX+nRqHtOvhgc9cRrDSq5651+m7ApO4fFqwz0pH96Uktk4qx3bSM/NW0ZoCzRM7JXlIUeuZn51+QCKP+opwLGXbtkLVjbFQjHCa5DqRpCEmIzygbU197FHZjacJEnToBgKpIUXT+bc3xp6UY8/RHg+roZzVJsv/tHak3MtuzPwwUtQn2qI1N+JIBWhSBOozQYniY00wEUx/icgQ6y6Uriun49uzYedJo1S0L4rl2/N89SotIgv7cAAFsKECVbiBGtSBwCM8wxu8G4nxZLwYrz/WjJHe7MIfGB/f1xqSSg==</latexit>
5
(b) (1 0, 25)1/2 + (4/81)
<latexit sha1_base64="xO7qj0XshpAD7iAB21Ajy5fudD8=">AAAB/3icbVBLTwIxGOziC/G16lEPjcQEo8CWgHIkevGIiTwSWEm3FGjoPtJ2TciGg/4ZPRn15n/wD/hv7OIeFJzTzDfTpDNOwJlUlvVlpJaWV1bX0uuZjc2t7R1zd68p/VAQ2iA+90XbwZJy5tGGYorTdiAodh1OW874KvZb91RI5nu3ahJQ28VDjw0YwUqfeuZhDuWts1Ll5C5CxdL0NFcuVpEW+Vj1zKxVsGaAiwQlJAsS1HvmZ7fvk9ClniIcS9lBVqDsCAvFCKfTTDeUNMBkjIe0o6mHXSrtaNZiCo8HvoBqROFM/85G2JVy4jo642I1kvNefPzP64RqULUj5gWhoh7REe0NQg6VD+MxYJ8JShSfaIKJYPqXkIywwETpyTK6Ppovu0iapQI6L1RuytnaZTJEGhyAI5ADCFyAGrgGddAABDyCZ/AG3o0H48l4MV5/oikjebMP/sD4+AbkrpIZ</latexit>
1/2
(a)
0, 7 + 1
qp p
<latexit sha1_base64="wIUN2KI7+y4l69w9jx2ym6HySi4=">AAACCHicbZC7TsMwGIWdcivlFmBksagqlaEliWhhrGBhLBK9SG2oHNdprToXbAepivIC8DIwIWBj5gV4G5w2A7Scwfr8n2PJ53dCRoU0jG8tt7K6tr6R3yxsbe/s7un7B20RRByTFg5YwLsOEoRRn7QklYx0Q06Q5zDScSZXqd95IFzQwL+V05DYHhr51KUYSTUa6KW+uOcynp9WrZ5U5lg2T63ayV1csZIkKQz0olE1ZoLLYGZQBJmaA/2rPwxw5BFfYoaE6JlGKO0YcUkxI0mhHwkSIjxBI9JT6COPCDue1UlgyQ04lGMCZ/ff2Rh5Qkw9R2U8JMdi0UuH/3m9SLoXdkz9MJLExyqiPDdiUAYw3QocUk6wZFMFCHOqfgnxGHGEpdpdWt9cLLsMbatq1qu1m7Ni4zJbRB4cgWNQBiY4Bw1wDZqgBTB4Ai/gHXxoj9qz9qq9zaM5LXtzCP5I+/wBNWqYtw==</latexit>
MATLAB
Variables
Vectores
Matrices
Gráficos
Vectores
Se introducen entre corchetes
Variables indexadas “[ ]” (pulsando Algr+[ )
>> a=[1 2 3 4 5 6 7 8]
Los elementos también se
a= pueden separar por comas
1 2 3 4 5 6 7 8 “,”
a=[1,2,3,4,5,6,7,8]
Inicio
Incremento
Para modificar un elemento Para hacer operaciones entre
Para acceder al contenido de
del vector componentes
una posición del vector
Manejo de Vectores
añade ceros
Vector traspuesto
Otra forma de escribir un
(apóstrofo: acento de la
vector columna
misma tecla que el signo de
interrogación “?”)
Manejo de Vectores
>> u=[0;2;4;6;8]
>> v’ ans=
El vector v=[0 2 4 6 8]
ans= 0 para MATLAB es una
-3 2 matriz fila de cinco
columnas; 1x5
2 4
4 6
6 8 Se comprueba
preguntando el tamaño
8 de v con el comando
size ó length
MATLAB
Vectores
Variables
Matrices
Gráficos
Matrices
>> A=[1 2 3; 3 4 5; 6 7 8]
Los elementos se separan por
A=
espacios o por comas y los
saltos de la se de nen con 1 2 3
punto y coma: “;” 3 4 5
6 7 8
>> A=[1 2 3
3 4 5
También se pueden introducir 6 7 8]
directamente por las pulsando
A=
intro ó Mayúsculas+Intro en
Mac 1 2 3
3 4 5
6 7 8
fi
fi
fi
bhurba
A= B=
>> A(2,2)=4; 1 2 3
1 2 3
3 -9 5 2 4 5
6 7 8 3 7 8
10. Definir una matriz D diagonal cuyos elementos sean -2,1,0.2 y -0.7
v=
0 2 4 6 8
0 1
1 2 3
A=@ 3 4 5 A
6 7 8
Hay que respetar las condiciones de las matrices, por lo que despejar x para
introducirlo a matlab es decir
x = (B)^-1 * x
Otras Funciones
inv (A) Calcula la inversa
Escribiendo help elfun se obtiene una lista de las funciones elementales de MATLAB
fl
Ejercicios para poner la matriz transpuesta vale con poner B.' o B'
17. Definir una matriz B2=B· Bt siendo B=[[1 2 3]’ [2 4 7]' [3 5 8]’]
18. Asignar al vector x la solución del sistema lineal B2· x = v siendo v=[1 3 5]’
hay una incoherencia, H = 2x3
19. Definir una matriz H de 2x2 a partir de las dos primeras columnas de la matriz
B3=B· A siendo A=[1 2 3;3 4 5;6 7 8]
>> v=[1 2 3]' >> b=[2 4 6]' >> v.*b >> v./b
v= b= ans = ans =
1 2 2 0.5000
2 4 8 0.5000
3 6 18 0.5000
✓ ◆ <latexit sha1_base64="z5XKifhShp1w4VZLNelMIruqOvQ=">AAACGHicbVDLTsMwEHR4U14FjlwsKhBcqqS0wAUJwYUjSJQiNVXluJvWquNE9gapivoj8DNwQjxO3Pgb3JIDFOY0uzNreSZIpDDoup/O1PTM7Nz8wmJhaXllda24vnFj4lRzqPNYxvo2YAakUFBHgRJuEw0sCiQ0gv75SG/cgTYiVtc4SKAVsa4SoeAM7apdrJ2d+BJC3PMD6AqVMa3ZYJhprYe0slv1/YPdmg+qkwu+Ft0e7reLJbfsjkH/Ei8nJZLjsl189zsxTyNQyCUzpum5Cbbsoyi4hGHBTw0kjPdZF5qWKhaBaWXjeEO6E8aaYg/oeP7pzVhkzCAKrCdi2DOT2mj5n9ZMMTxuZUIlKYLi1mK1MJUUYzpqiXaEBo5yYAnjWthfUt5jmnG0XRZsfG8y7F9yUyl7h+XaVbV0epYXsUC2yDbZIx45IqfkglySOuHkgTyRV/Lm3DuPzrPz8m2dcvKbTfILzscXktWgDw==</latexit>
✓ ◆
1 2 2 4
A= B=
3 4 3 5
Aunque no se pueden hacer divisiones de matrices, el operador “división”, multiplica por la inversa para emular una división
Las funciones internas de
MATLAB también se aplican
elemento a elemento sobre
los vectores y las matrices
>> sin(v)
ans =
0.8415
0.9093
0.1411
>> log(v)
ans =
0
0.6931
1.0986
Ejercicios
22. Ejecutar: >>a=(1:3)’, b=(4:6)' y obtener a*b’, a.*b y a./b
23. Definir un vector w tal que sus componentes sean las de v=[1 2 3]'
al cubo.
Se pueden evaluar expresiones más
complejas
Evaluar la expresión
x2 − 2x − 3
para valores de x entre 1 y 10, con incremento de 1
>> x=1:10
x=
1 2 3 4 5 6 7 8 9 10
>> y=x.^2-2*x-3
y=
-4 -3 0 5 12 21 32 45 60 77
Evaluar la expresión
sen (x) / x
para valores de x entre -1 y 1 con incremento de 0.1 unidades
>> x=-1:.1:1;
>> y=sin(x)./x
y=
Columns 1 through 9
0.8415 0.8704 0.8967 0.9203 0.9411 0.9589 0.9735 0.9851 0.9933
Columns 10 through 18
0.9983 NaN 0.9983 0.9933 0.9851 0.9735 0.9589 0.9411 0.9203
Columns 19 through 21
0.8967 0.8704 0.8415
Vectores regulares
Operador “:”
>>a=2:8
Función linspace
genera un vector de elementos igualmente
espaciados Número de
elementos
>>a=linspace (5,8,4)
ans =
5 6 7 8 Para generar n números aleatorios en un intervalo (a,b):
25. Si x=[0,1,4,9,16,25], escribe el comando MATLAB que calcula la raíz cuadrada de cada
componente de x.
29. Si v1=1:3, v2=4:6 y v3=7:9, construye una matriz M con los vectores v1, v2 y v3,
cada uno formando una fila de la matriz M.
31. Ejecuta:
>> B=zeros(8)
>> B(1:3,1:3)=[1,2,3;4,5,6;7,8,9]
>> B(4:8,4:8)=magic(5)
Entornos de Programación
MATLAB
Vectores
Variables
Matrices
Gráficos
Gráficos
plot
sirve para representar funciones
plot(x,y)
dibuja una curva que une
los puntos de abscisas del
vector “x” y ordenadas “y”
>> x=1:0.5:5;
>> y=x.^2
>> plot(x,y);
Vectorización
de operación
plot(y) dibuja una línea que une los puntos del vector “y” considerado como abscisas su índice
Si “y” es complejo es equivalente a dibujar plot(real(y),imag(y))
plot(x,y,s) dibuja los puntos de abscisas las
componentes del vector “x” y ordenadas las del vector
“y” con el estilo indicado en “s”
Estilo
y yellow . point solid
m magenta o circle : dotted
c cyan x x mark . dashdot
r red + plus dashed discont.
g green * star
b blue s square
w white d diamond
k black v triangle (down)
^ triangle (up)
< triangle (left)
> triangle (right)
p pentagram
h hexagram
‐
‐
‐
‐
‐
‐
‐
Formato
Los comandos grid on / grid off
activan o desactivan la retícula
>> n=1:10
círculo azul
>> a=2.^n;
>> plot(a,'bo')
Si no se indican abscisas,
representa la curva que
une los puntos del vector
“a” considerando como
abscisas su índice.
Barra de título
Barra de
herramientas
y=
1 + cos x
37. Dibujar la curva (x,y)
fi
fi
38. De nir un vector x entre -3 y 3 y que tenga un incremento entre
componentes de 0.1 y el vector y a partir de cada componente del vector x
como: x2
<latexit sha1_base64="/ad98+kZoRloZRO2uN804zGAj3Q=">AAAB9HicbZDLTsJAFIaneEO8FV26mUhM3Eha4m1jQnTjEhO5JFDIdDiFCdNLZqZI0/AmujLqzifxBXwbB+xCwX/1zfn/Sc753YgzqSzry8itrK6tb+Q3C1vbO7t7ZnG/IcNYUKjTkIei5RIJnAVQV0xxaEUCiO9yaLqj25nfHIOQLAweVBKB45NBwDxGidKjnllMricd2g8Vhm56OulWpj2zZJWtufAy2BmUUKZaz/zs9EMa+xAoyomUbduKlJMSoRjlMC10YgkRoSMygLbGgPggnXS++hQfe6HAagh4/v6dTYkvZeK7OuMTNZSL3mz4n9eOlXflpCyIYgUB1RHteTHHKsSzBnCfCaCKJxoIFUxviemQCEKV7qmgz7cXj12GRqVsX5TP789K1ZusiDw6REfoBNnoElXRHaqhOqLoET2jN/RujI0n48V4/YnmjOzPAfoj4+Mbfr+ROA==</latexit>
y =x·e
39. Dibujar la curva (x,y) en magenta y asterisco-raya con el título Grá ca 1,
etiquetas de los ejes y retícula.
fi
fi
40. Dibujar la curva (x,y) en un intervalo de 100 puntos equi-espaciados entre -4 y
1 con cruces-raya verdes, con título, etiquetas de los ejes y retícula.
y = sin2 (x)
<latexit sha1_base64="bUCxASAc5KFfEXio1HPVusQYzhg=">AAAB7HicbZC7TsMwFIZPyq2UW4GRJaJCKkuVVNwWpAoWxiLRi5SGynGd1qpjR7aDiKK+BUwI2HgaXoC3wS0ZoOWfPp//t3T+E8SMKu04X1ZhaXllda24XtrY3NreKe/utZVIJCYtLJiQ3QApwignLU01I91YEhQFjHSC8fXU7zwQqajgdzqNiR+hIachxUibkZde9hTl9/Xq43G/XHFqzkz2Irg5VCBXs1/+7A0ETiLCNWZIKc91Yu1nSGqKGZmUeokiMcJjNCSeQY4iovxstvLEPgqFtPWI2LP372yGIqXSKDCZCOmRmvemw/88L9HhhZ9RHieacGwixgsTZmthT5vbAyoJ1iw1gLCkZksbj5BEWJv7lEx9d77sIrTrNfesdnp7Umlc5YcowgEcQhVcOIcG3EATWoBBwDO8wbvFrSfrxXr9iRas/M8+/JH18Q05RI48</latexit>
41. Hacer doble click sobre la curva tras seleccionar la herramienta echa en el
menú superior de la ventana de la grá ca. Cambiar la gura de color (a violeta)
y de grosor (a 2).
fi
fi
fl
Para crear otra ventana de dibujo
gure(n)
>> x=-pi:0.1:pi;
>> gure(1);
>> plot(x,sin(x),'b.');
>> gure(2);
>> plot(x,cos(x),'gd-');
fi
fi
fi
Para dibujar dos gráficas o más en
una misma ventana de dibujo
>> x=-pi:0.1:pi;
>> hold on
>> plot(x,sin(x),'b.');
>> plot(x,cos(x),'gd-');
Otra forma de dibujar dos gráficas o más en una misma ventana de dibujo
>> h=0.1;
>> xmin=-2;
>> xmax=2;
>> x=xmin:h:xmax;
>> yseno=sin(x);
>> ytaylor=x-x.^3/6;
>> plot(x,yseno,x,ytaylor)
Hold on-hold off Sintáxis especí ca
hold on
plot(x,sin(x),’c.’);
plot(x,cos(x),’md’; plot(x,sin(x),'rd-',x,cos(x),'bo',x,sin(x).*cos(x),'gs-');
plot(x,sin(x).*cos(x),’g-');
hold off
fi
Funciones en diferentes subgráficas
Una ventana del entorno grá co puede subdividirse en pequeñas regiones como si fuera
una matriz representando una grá ca en cada espacio de forma independiente
nº columnas
posición
nº las
subplot (m,n,i)
subdivide la ventana en
mxn espacios, indicando en
i la posición de cada
grá ca
fi
fi
fi
fi
x1=linspace(0,3,30);y1=exp(x1.^(1/3))-3;
Ejemplo y2=x1.^2-3;y3=2*cos(x1.^2)-3;
subplot(2,2,1) % Grá ca subventana 1
8 p
3 x
<latexit sha1_base64="CeNxhggB0BD6z8jOfmhtz+mVszs=">AAACTHicbVBda9swFJXTruu8r2x73ItoGCSwBDvZ1r0USvfSxxSapBC5QVauExFZdiS5JBj/w7E9939sT6MfcuqHLd0RiHPvObronjAVXBvPu3ZqO7tP9p7uP3Ofv3j56nX9zduhTjLFYMASkaiLkGoQXMLAcCPgIlVA41DAKFx8K/XRFSjNE3lu1ikEMZ1JHnFGjW1N6pyEMOMyZ3aGLjB2o+aqdQSXOdFLZca9IF8VRbuHCXFnpbK67NrqIyb2YI8IWOJVeW8c89LRJSzRTetrtXsuATmtZk/qDa/jbYAfE78iDVShP6l/J9OEZTFIwwTVeux7qQlyqgxnAgqXZBpSyhZ0BmNLJY1BB/kmkgJ/iBKFzRzwpv7bm9NY63UcWk9MzVxva2Xzf9o4M9HXIOcyzQxIZi1WizKBTYLLZPGUK2BGrC2hTHH7S8zmVFFmbP6uXd/fXvYxGXY7/pfO57NPjeOTKoh99B4doCby0SE6RqeojwaIoZ/oN7pFd84P55fzx7l5sNac6s079A9qe/cKcq8R</latexit>
plot(x1,y1,'bo')
>
< f (x) = e 3 title('Figura 1')
g(x) = x2 3, 0 x 3 xlabel('x');ylabel('y');legend('f(x)')
>
:
h(x) = 2 cos(x2 ) 3 subplot(2,2,2) % Grá ca subventana 2
plot(x1,y2,'gd')
title('Figura 2')
xlabel('x');ylabel('y');legend('g(x)')
subplot(2,2,3) % Grá ca subventana 3
plot(x1,y3,'rs')
title('Figura 3')
xlabel('x');ylabel('y');legend('h(x)')
subplot(2,2,4) % Grá ca subventana 4
plot(x1,y1,x1,y2,x1,y3)
title('Figura 4') en la última se
xlabel('x');ylabel('y') representan las tres
legend('f(x)','g(x)','h(x)')
fi
fi
fi
fi
Gráficas en el espacio
Se utiliza el comando 8
<latexit sha1_base64="Y6pM+sFlmbl4/1DIyrstx9i1Gn0=">AAACNXicbVDLbhMxFPX0QcPQwrQs2VhESEGqopkK2m4iRbBhGSrykOIo8jg3iRWPZ/D1VE1H+S74CH6ABawQsOMX6klnAQnHknXuPcdXvifOlEQbhl+9nd29/QcHtYf+o8Ojx0+C45MeprkR0BWpSs0g5ghKauhaaRUMMgM8iRX048XbUu9fg0GZ6g92mcEo4TMtp1Jw61rj4IrFMJO6EG4Grij1b1oMpW7gS8qYv2wxkWJZnFLmDg2Zgo8U13cUskyWrtsW+gz0pBoyDuphM1yDbpOoInVSoTMOvrBJKvIEtBWKIw6jMLOjghsrhYKVz3KEjIsFn8HQUc0TwFGx3n1FX0xTQ+0c6Lr+21vwBHGZxM6TcDvHTa1s/k8b5nZ6OSqkznILWjiL06a5ojalZYR0Ig0Iq5aOcGGk+yUVc264sC5o360fbS67TXpnzei8+fr9q3r7TRVEjTwjz0mDROSCtMk70iFdIshn8p38Ir+9T94374f3896641VvnpJ/4P25A4ZLqDU=</latexit>
>
<x = sin(s)
plot3 y = cos(s), 0 s 10⇡
>
:
z=s
s=0:pi/50:10*pi;
x=sin(s);y=cos(s);z=s;
plot3(x,y,z,’r*--'); grid on
xlabel('x');ylabel('y');zlabel('z')
8 2
< (x 1)2si x < 0
f (x) = 7x + 2 si 0 x < 1
: p 2
3 7x + 2 si x 1