Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Matlab
2
GNU Octave
3
Command Window (Ventana de Comandos)
4
Command Window (Ventana de Comandos)
5
Command History Window (Ventana del histórico de
Comandos)
Si se desea volver a introducir un dato escrito con anterioridad basta con darle
doble clic al comando es esta ventana o basta con presiona la tecla de la flecha
hacia arriba.
6
Workspace Window
7
Operaciones básicas con escalares
8
Visualización de números
9
Definición de variables
Una variable es un nombre compuesto por una letra o combinación de las mismas
al cuál se le asigna un valor numérico. Una vez asignado un valor a la variable, ésta
puede ser utilizada en expresiones matemáticas, funciones y cualquier otro tipo de
comando MATLAB.
10
Definición de variables
x = 20 * sqrt (3)
x = x + 6
11
Reglas para definir variables
12
Comandos al usar variables
13
Operadores relacionales
14
Operadores relacionales
15
Operadores lógicos
16
Matrices
Inicializando matrices
Para crear un vector o una matriz fila o columna utilizamos los siguientes comandos:
• Fila: b=[a1 a2 ... an ];
• Columna: b=[a1; a2; ...; an ];
Ası́ para crear una matriz utilizamos el comando:
A=[f1 ; f2 ; f3 ;...; fn ];
o bien
A=[f1
f2
f3
...
fn ];
Donde los f k son filas.
17
Matrices
Ejemplo
18
Matrices
Solución
O bien
A=[2 1 5 1 5
1 1 -3 -4 -1
3 6 -2 1 8
2 2 2 -2 2 ];
19
Matrices
20
Matrices
21
Matrices
• Transpuesta A’
• Inversa inv(A)
• Eleva una matriz a la n A∧n
• Eleva cada término de la matriz a la n A.∧n
• Multiplica dos matrices A*B
22
Matrices
• Multiplica las entradas i,j de una matriz con las i,j de otra matrices A.*B
• Divide las entradas i,j de una matriz con las i,j de otra matrices A./B
• Divide las entradas i,j de una matriz por n A./c
• Divide n por las entradas i,j de una matriz A.\c
• Determinante de A det(A)
23
Scripts y funciones
Tanto los scripts como las funciones permiten realizar secuencias de comandos
almacenándolos en archivos de programa. Los scripts son el tipo de programación
más simple, ya que almacenan comandos exactamente como se escribirı́an en la
lı́nea de comandos. Sin embargo, las funciones son más flexibles.
La mayor diferencia entre los scripts y las funciones es que las funciones tienen
parámetros de entrada y salida. Esto hace a las funciones más flexibles y adecuados
para tareas de propósito general que se aplicarán a diferentes datos. Los scripts
son útiles para tareas que no cambian. También son una forma de documentar una
secuencia especı́fica de acciones, por ejemplo, una llamada a función con valores de
parámetros especiales, que pueden ser difı́ciles de recordar.
24
Scripts y funciones
Creación de Scripts
Para ejecutar un script desde Matlab solamente se escribe su nombre, o bien dentro
del script con el botón Save-Run.
25
Scripts y funciones
Comandos especiales
26
Scripts y funciones
Ejercicio
27
Scripts y funciones
Solución
monto=costo*1.13;
28
Scripts y funciones
Creación de funciones
Una función es un archivo .m que contiene una serie de comandos que se ejecutarán
al llamar dicha función en MatLab.
Nota: Debe guardar el archivo .m con el mismo nombre con la que llama a la
función.
29
Scripts y funciones
Creación de funciones
Donde:
• output args corresponde a los nombres de las variables a retornar.
• untitled corresponde al nombre de la función.
• input args corresponde a los nombres de las variables que recibe.
30
Scripts y funciones
Ejercicio
Cree una función que recibe como parámetro de entrada un valor que equivale al
precio de un producto y devuelve un valor que corresponde al precio final con el
i.v.a incluido.
31
Scripts y funciones
Solución
monto=precio*1.13;
end
32
Construcción de Objetos Simbólicos
syms x
f = x ∧ 2 + 3 ∗ x − 2;
33
Construcción de Objetos Simbólicos
Sustitución simbólica
Si en una expresión simbólica queremos sustituir una variable por otra o por una
constante para calcular su valor en un punto, utilizamos la orden:
subs(f,x,n)
En esta estructura tenemos:
Variable Significado
f La variable que almacena la función
x La variable que deseo sustituir
n El valor a evaluar (numérico o nueva variable)
34
Construcción de Objetos Simbólicos
Evaluar
double(expresión) eval(expresión)
35
Construcción de Objetos Simbólicos
Ejercicio
36
Construcción de Objetos Simbólicos
Solución
syms x
f=cos(x+2)-sin(x)
subs(f,x,-3)
subs(f,x,[1,4])
double(subs(f,x,-3))
eval(subs(f,x,[1,4]))
37
Construcción de Objetos Simbólicos
Calculando derivadas
Para derivar una expresión simbólica f, disponemos de las instrucciones diff, que
actúan como se indica en el siguiente cuadro:
Función Significado
diff(f) Deriva con respecto a la variable dominante (symvar)
diff(f,i) Deriva a F con respecto a i
diff(f,n) Realiza la enésima derivada de f
diff(f,i,n) Realiza la enésima derivada de f con respecto a i
38
Construcción de Objetos Simbólicos
Calculando integrales
Para integrar una expresión simbólica f, disponemos de las instrucciones int, que
actúan como se indica en el siguiente cuadro:
Función Significado
int(f) Integra con respecto a la variable dominante (symvar)
int(f,i) Integra a g con respecto a i
int(f,a,b) Calcula la integral definida de f con limites a y b
int(f,i,a,b) Calcula la integral definida de f con limites a y b con respecto a i
39
Construcción de Objetos Simbólicos
Ejercicio
Y que devuelve:
• dfab: la a-ésima derivada de f evaluada en b.
• ifab: la integral de f desde a hasta b.
Las evaluaciones deben visualizarse de forma aproximada.
40
Construcción de Objetos Simbólicos
Solución
dfa=double(subs(diff(f,x,a),x,b));
ifab=double(int(f,a,b));
end
41
Graficación
Para realizar gráficos por conjunto de puntos, se puede usar la instrucción plot(x,y),
donde x y y son los conjuntos a graficar.
42
Graficación
Ejercicio
Escriba los comandos que permiten graficar la función f (x) = cos(x) en el intervalo
de [−1, 1], usando 1000 puntos.
43
Graficación
Solución
syms x;
f=cos(x);
a=linspace(-1,1,1000);
b=subs(f,x,a);
plot(a,b)
44
Graficación
Si se desea graficar una función simbólica, puede resultar más sencillo usar algunas
de las siguientes opciones:
45
Graficación
Ejercicio
Escriba los comandos que permiten graficar la función f (x) = cos(x) en el intervalo
de [−1, 1], usando 1000 puntos.
46
Graficación
Solución
syms x;
f=cos(x);
47
Graficación
Graficando...
Puede graficar varias funciones al mismo tiempo con solo agregar la instrucción:
hold on
Puede dar color y forma a cada gráfica agregando el código entre comilla simple.
plot(x,y,’b-o’)
48
Graficación
Graficando...
Otra opción para graficar varias funciones al mismo tiempo es usando las
instrucciones:
figure(1), plot(x, y)
figure(2), plot(x, y)
O bien:
subplot(m,n,i),plot(x,y)
Donde se dibuja una matriz de m × n gráficos y ubica el deseado en la posición i.
49
Graficación
Otras opciones...
50
If
Condicional If
El condicional if ejecuta ciertas instrucciones si y sólo si se cumple una cierta
condición. Si la condición es falsa, no se hace nada.
Falso
Condición
Verdadero
Instrucciones
51
If
If en Matlab
if (P)
Instrucciones a realizar si P es verdadero
end
52
If-Else
Condicional If - else
Verdadero Falso
Condición
Instrucciones Instrucciones
53
If-Else
If - else Matlab
if (P)
Instrucciones a realizar si P es verdadero
else
Instrucciones a realizar si P es falso
end
54
Else if
Condicional Else if
Consiste en un if - else anidado, osea permite el uso de condicionales dentro de ellos
mismos.
Verdadero Falso
Condición
...
...
Instrucciones Instrucciones
55
Else if
Elseif en Matlab
if (P)
Instrucciones a realizar si P es verdadero
elseif (Q)
Instrucciones a realizar si Q es verdadero
...
...
...
else (opcional)
Instrucciones a realizar si no se cumple ninguna condición
end
56
Else if
Ejercicio
57
Else if
Solución
syms x;
x=input(’Ingrese un número: ’)
if (x > 0 && mod(x,2)==0)
disp(’Es un número positivo par’)
elseif (x > 0 && mod(x,2) =0)
disp(’Es un número positivo impar’)
elseif (x < 0 && mod(x,2)==0)
disp(’Es un número negativo par’)
elseif (x < 0 && mod(x,2) =0)
disp(’Es un número negativo impar’)
else
disp(’Es un cero’)
end
58
Else if
Ejercicio
Cree una función que recibe tres números y devuelve un vector con los números
ordenados de menor a mayor.
59
Switch...case
Consiste en una manera abreviada de escribir varios if’s uno después del otro. Ası́
se ejecutan ciertas instrucciones dependiendo del valor de una expresión.
Verdadero
Condición 1 Instrucciones
Falso
Verdadero
Condición 2 Instrucciones
Falso
...
...
Verdadero
Condición n Instrucciones
Falso
Instrucción
por defecto
60
Switch...case
switch (x)
case c1 ,
Instrucciones a realizar si x == c1 ;
case c2 ,
Instrucciones a realizar si x == c2 ;
...
case cn ,
Instrucciones a realizar si x == cn ;
otherwise,
Instrucciones a realizar si no se cumple ninguna condición
end
61
Switch...case
Ejercicio
62
For
Inicialización
ciclo
Falso
Condición
Verdadero
Incremento
Instrucciones
63
For
For en Matlab
for k=f:s:t
Instrucciones a realizar
end
64
For
Ejercicio
65
For
Solución
66
For
Ejercicio
Cree una función que recibe dos vectores de números y calcula el error relativo entre
cada par de ellos.
67
For
Solución
68
While
En este tipo de ciclo o bucle se repiten las instrucciones deseadas mientras que una
condición booleana sea verdadera, en caso contrario, se detiene el ciclo.
Falso
Condición
Verdadero
Instrucciones
69
While
While en Matlab
...
while (P)
Instrucciones a realizar
end
...
70
While
Ejercicio
Realice un script que recibe un número y divida un número a la mitad, hasta que
la diferencia del valor anterior y el actual sea menor a 0,0004
71
While
Solución
72
While
Serie de Taylor
73
While
Solución
syms x;
aproxTaylor=0
for i=0:n
df=diff(f,i)
termino=double(subs(df,x,c))*(val-c)^i/factorial(i);
aproxTaylor=aproxTaylor+termino;
end
end
74
While
Ejercicio
Retorne: Una matriz con cuatro columnas: la primera indica el número del grado
del polinomio, la segunda el valor del término asociado, la tercera la aproximación
y la cuarta el error relativo.
75
While
Solución
function [mPol] = TaylorPol2(f,c,val,tol,n)
syms x;
error=1;
i=0;
Pol=0;
while error>tol
if (i>n)
break
end
mPol(i+1,1)=i;
df=diff(f,i);
term=double(subs(df,x,c))/factorial(i)*(val-c)^i;
mPol(i+1,2)=term;
Pol=Pol+term;
mPol(i+1,3)=Pol;
if i>1
error=abs(mPol(i+1,3)-mPol(i,3))/abs(mPol(i+1,3));
end
mPol(i+1,4)=error;
i=i+1;
end
end
76