mat lab05
TRANSCRIPT
![Page 1: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/1.jpg)
MatLab
![Page 2: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/2.jpg)
Instrucción ifif expresión lógica
instrucciones
end
Sí la expresión lógica es verdadera, ejecutamos las instrucciones que están entre la instrucción if y la instrucción end
Si la expresión lógica es falsa, saltamos de inmediato a la instrucción que sigue a end
![Page 3: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/3.jpg)
Instrucción if
Es importante sangrar las instrucciones dentro de la estructura if para que sea más fácil de entender
if g < 50contar = contar + 1;
disp(g);
end
![Page 4: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/4.jpg)
Operadores Relacionales y Lógicos
No igual~=
Igual==
Mayor o igual que>=
Mayor>
Menor o igual que<=
Menor que<
InterpretaciónOperador relacional
![Page 5: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/5.jpg)
Operadores Relacionales y Lógicos Estos operadores comparan dos matrices
de igual tamaño Se usan matrices o expresiones de matrices
en ambos lados de un operador relacional para dar otra matriz del mismo tamaño
Cada entrada de la matriz resultante contiene un 1 si la comparación es verdadera cuando se aplica a los valores de las posiciones correspondientes de las matrices; caso contrario, la matriz resultante contiene un 0
![Page 6: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/6.jpg)
Operadores Relacionales y Lógicos
![Page 7: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/7.jpg)
Operadores Relacionales y Lógicos
Una expresión que contiene un operador relacional es una expresión lógica porque el resultado es una matriz que contiene ceros y unos que pueden interpretarse como valores falsos y verdaderos, respectivamente
La matriz resultante también se denomina matriz 0-1
![Page 8: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/8.jpg)
Operadores Relacionales y Lógicos
También podemos combinar dos expresiones lógicas usando operadores lógicos no (not), y (and) y o (or)
|o
&y
~noSímboloOperador Lógico
![Page 9: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/9.jpg)
Operadores Relacionales y Lógicos
![Page 10: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/10.jpg)
Ejercicio 18
Determine si las siguientes expresiones son verdaderas o falsas
Suponga que las variables tienen los valores indicados:
a = 5.5
b = 1.5
k = -3
![Page 11: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/11.jpg)
Ejercicio 19
1. a < 10.02. a + b >= 6.53. k ~= 04. b – k > a5. ~(a == 3 * b)6. ~k <= k + 67. a < 10 & a > 58. abs(k) > 3 | k < b - a
![Page 12: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/12.jpg)
Instrucciones if anidadas
if g < 50
contar = contar + 1;
disp(g);
if b > g
b = 0;
endend
![Page 13: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/13.jpg)
Cláusula else Permite ejecutar un conjunto de
sentencias si la condición es verdadera y otro conjunto de sentencias si la condición es falsa
if intervalo < 1 x_inc = intervalo / 10; else x_inc = 0.1; end
![Page 14: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/14.jpg)
Cláusula elseif if temperatura > 100 disp(‘Demasiado caliente – Falla de equipo’) elseif temperatura > 90 disp(‘Intervalo operativo normal’) elseif temperatura > 50 disp(‘Temperatura por debajo del intervalo deseado’) else disp(‘Demasiado frío – Apagar equipo’) end
![Page 15: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/15.jpg)
Ejercicio 20
Suponga que las variables son escalares
• Si la diferencia entre volt_1 y volt_2 es mayor que 10.0, exhibir los valores de volt_1 y volt_2
• Si el logaritmo natural de x es mayor que 3, asignar 0 a tiempo e incrementar contar en 1
![Page 16: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/16.jpg)
Ejercicio 20• Si dist es menor que 50.0 y tiempo
es mayor que 10.0, incrementar tiempo en 2; caso contrario incrementar tiempo en 2.5
• Si dist es mayor o igual que 100.0, incrementar tiempo en 2.0. Si dist está entre 50 y 100, incrementar tiempo en 1. En los demás casos, incrementar tiempo en 0.5
![Page 17: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/17.jpg)
Solución de Ecuaciones Lineales
Considere el siguiente sistema de tres ecuaciones con tres incógnitas:
![Page 18: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/18.jpg)
Solución de Ecuaciones Lineales
Podemos reescribir este sistema de ecuaciones utilizando las siguientes matrices:
![Page 19: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/19.jpg)
Solución de Ecuaciones Lineales
Si usamos multiplicación de matrices, el sistema de ecuaciones puede escribirse de esta forma:
A X = B Si modificamos nuestra notación de
modo que las variables se designen como x1, x2, x3, etc., y reescribimos el conjunto inicial de ecuaciones, tenemos:
![Page 20: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/20.jpg)
Solución de Ecuaciones Lineales
Este conjunto de ecuaciones se representa entonces con la ecuación A X = B, donde X es el vector columna [x1 x2 x3]T
![Page 21: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/21.jpg)
Solución de Ecuaciones Lineales
Se usa generalmente la ecuación de matrices A X = B para expresar un sistema de ecuaciones; sin embargo, también podemos expresarlo usando vectores fila para B y X.
![Page 22: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/22.jpg)
Solución de Ecuaciones Lineales
Por ejemplo, considere el conjunto de ecuaciones que empleamos en el ejemplo anterior, podemos escribir el conjunto de ecuaciones como XA = B, si X, A y B se definen como:
(Observe que la matriz A es la transpuesta del ejemplo anterior)
![Page 23: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/23.jpg)
División de Matrices
Podemos definir y resolver el sistema de ecuaciones del ejemplo anterior usando la ecuación de matrices A X = B como se muestra en la siguiente diapositiva:
![Page 24: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/24.jpg)
División de Matrices
![Page 25: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/25.jpg)
División de Matrices
También podemos definir y resolver el mismo sistema de ecuaciones usando la ecuación de matrices X A = B, como se muestra a continuación:
![Page 26: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/26.jpg)
División de Matrices
![Page 27: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/27.jpg)
División de Matrices Para poder aplicar estas técnicas, el
sistema debe ser cuadrado. Si un conjunto de ecuaciones es singular,
se exhibe un mensaje de error; el vector de soluciones puede contener valores de NaN, +∞ o -∞, dependiendo de los valores de las matrices A y B
Estos sistemas se denominan Sistemas mal condicionados, MatLab calcula una solución, pero exhibe un mensaje de advertencia para indicar que los resultados podrían ser inexactos
![Page 28: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/28.jpg)
Inversión de Matrices También podemos resolver un sistema de
ecuaciones usando la inversa de la matriz A, siempre y cuando exista dicha inversa.
Por ejemplo, supongamos que A, X y B son las matrices que definimos antes:
![Page 29: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/29.jpg)
Inversión de Matrices
Entonces, A X = B Suponga que multiplicamos ambos
lados de la ecuación por A-1, tenemos entonces:
A-1 A X = A-1 B Dado que A-1 A es igual a la matriz
identidad (I), tenemos:I X = A-1 B
O sea: X = A-1 B
![Page 30: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/30.jpg)
Inversión de Matrices
En MatLab podemos calcular esta solución utilizando el comando:
X = inv(A) * B Este mismo sistema de ecuaciones
puede resolverse también usando la inversa de una matriz si el sistema se expresa en la forma: X A = B
Donde:
![Page 31: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/31.jpg)
Inversión de Matrices
Si multiplicamos ambos lados de la ecuación por A-1, tenemos:
X A A-1 = B A-1
Puesto que A A-1 es la matriz identidad (I), tenemos:
![Page 32: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/32.jpg)
Inversión de Matrices
X I = B A-1
O sea: X = B A-1
En MatLab, podemos calcular esta solución con el comando:
X = B * inv(A)
![Page 33: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/33.jpg)
Ejercicio 21
Resuelva los siguientes sistemas de ecuaciones usando división de matrices y matrices inversas.
Para cada sistema que contenga ecuaciones de dos variables, grafique las ecuaciones para mostrar la intersección o bien para mostrar que el sistema es singular y no tiene solución única
![Page 34: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/34.jpg)
Ejercicio 21
![Page 35: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/35.jpg)
Ejercicio 21
![Page 36: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/36.jpg)
Scripts Un script es una secuencia de instrucciones
de Matlab guardada en un archivo con extensión .m
Se ejecuta escribiendo su nombre:
![Page 37: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/37.jpg)
Funciones (llamada) Las funciones puede recibir varios valores y
devolver varios resultados[m,d]=med_des(x);
Puede haber argumentos opcionalesmit=imread('cameraman.tif','TIFF');mit=imread('cameraman.tif');
No es necesario asignar todos los valores retornados[mit,map]=imread('imageman.gif');mit=imread('imageman.gif');
![Page 38: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/38.jpg)
Funciones (definición) Las funciones se escriben en archivos .m
que deben encontrarse en el directorio actual (o en un directorio definido en el path)
![Page 39: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/39.jpg)
Funciones La variable nargin (local de la función) es el
número de argumentos recibidos. La variable nargout (local de la función) es
el número de argumentos que se recogerán en la llamada. Puede ahorrarnos unos cálculos.
Todos los argumentos llegan por valor, no es posible hacer paso por referencia.
Los scripts comparten las variables del workspace, mientras que las funciones utilizan variables en local
![Page 40: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/40.jpg)
Expresiones lógicas Operadores relacionales: ~= == > <
>= <= Operadores lógicos:
&& Short-circuit AND|| Short-circuit OR& AND| OR
Hay una función xor, pero no es un operador
![Page 41: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/41.jpg)
Control de Flujo: if bloque if
A diferencia de C, en Matlab no es necesario utilizar paréntesis en la expresión lógica
![Page 42: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/42.jpg)
Control de Flujo: for
bucle for
![Page 43: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/43.jpg)
Control de Flujo: while
bucle while
![Page 44: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/44.jpg)
Control de Flujo: switch
switch-case
A diferencia de C, en Matlab no hace falta utilizar break.
![Page 45: Mat lab05](https://reader034.vdocuments.mx/reader034/viewer/2022052413/559f02511a28ab17378b46cb/html5/thumbnails/45.jpg)
Control de Flujo: try
try-catch
Las instrucciones comprendidas entre catch y end sólo se ejecutan si se produce un error en las primeras. Utilizar lasterr para ver el último error.