MatLab
Instrucción  if <ul><ul><ul><li>if   expresión lógica </li></ul></ul></ul><ul><ul><ul><ul><li>instrucciones </li></ul></ul...
Instrucción  if <ul><li>Es importante sangrar las instrucciones dentro de la estructura if para que sea más fácil de enten...
Operadores Relacionales y Lógicos No igual ~= Igual == Mayor o igual que >= Mayor > Menor o igual que <= Menor que < Inter...
Operadores Relacionales y Lógicos <ul><li>Estos operadores comparan dos matrices de igual tamaño </li></ul><ul><li>Se usan...
Operadores Relacionales y Lógicos
Operadores Relacionales y Lógicos <ul><li>Una expresión que contiene un operador relacional es una expresión lógica porque...
Operadores Relacionales y Lógicos <ul><li>También podemos combinar dos expresiones lógicas usando operadores lógicos no ( ...
Operadores Relacionales y Lógicos
Ejercicio 18 <ul><li>Determine si las siguientes expresiones son verdaderas o falsas </li></ul><ul><li>Suponga que las var...
Ejercicio 19 <ul><li>a < 10.0 </li></ul><ul><li>a + b >= 6.5 </li></ul><ul><li>k ~= 0 </li></ul><ul><li>b – k > a </li></u...
Instrucciones  if  anidadas <ul><li>if g < 50 </li></ul><ul><ul><li>contar = contar + 1; </li></ul></ul><ul><ul><li>disp(g...
Cláusula  else <ul><li>Permite ejecutar un conjunto de sentencias si la condición es verdadera y otro conjunto de sentenci...
Cláusula  elseif <ul><li>if temperatura > 100 </li></ul><ul><li>disp(‘Demasiado caliente – Falla de equipo’) </li></ul><ul...
Ejercicio 20 <ul><li>Suponga que las variables son escalares </li></ul><ul><li>Si la diferencia entre  volt_1  y  volt_2  ...
Ejercicio 20 <ul><li>Si  dist  es menor que 50.0 y  tiempo  es mayor que 10.0, incrementar  tiempo  en 2; caso contrario i...
Solución de Ecuaciones Lineales <ul><li>Considere el siguiente sistema de tres ecuaciones con tres incógnitas: </li></ul>
Solución de Ecuaciones Lineales <ul><li>Podemos reescribir este sistema de ecuaciones utilizando las siguientes matrices: ...
Solución de Ecuaciones Lineales <ul><li>Si usamos multiplicación de matrices, el sistema de ecuaciones puede escribirse de...
Solución de Ecuaciones Lineales <ul><li>Este conjunto de ecuaciones se representa entonces con la ecuación A X = B, donde ...
Solución de Ecuaciones Lineales <ul><li>Se usa generalmente la ecuación de matrices A X = B para expresar un sistema de ec...
Solución de Ecuaciones Lineales <ul><li>Por ejemplo, considere el conjunto de ecuaciones que empleamos en el ejemplo anter...
División de Matrices <ul><li>Podemos definir y resolver el sistema de ecuaciones del ejemplo anterior usando la ecuación d...
División de Matrices
División de Matrices <ul><li>También podemos definir y resolver el mismo sistema de ecuaciones usando la ecuación de matri...
División de Matrices
División de Matrices <ul><li>Para poder aplicar estas técnicas, el sistema debe ser cuadrado. </li></ul><ul><li>Si un conj...
Inversión de Matrices <ul><li>También podemos resolver un sistema de ecuaciones usando la inversa de la matriz A, siempre ...
Inversión de Matrices <ul><li>Entonces, A X = B </li></ul><ul><li>Suponga que multiplicamos ambos lados de la ecuación por...
Inversión de Matrices <ul><li>En MatLab podemos calcular esta solución utilizando el comando: </li></ul><ul><li>X = inv(A)...
Inversión de Matrices <ul><li>Si multiplicamos ambos lados de la ecuación por A -1 , tenemos: </li></ul><ul><li>X A A -1  ...
Inversión de Matrices <ul><li>X I = B A -1 </li></ul><ul><li>O sea: X = B A -1 </li></ul><ul><li>En MatLab, podemos calcul...
Ejercicio 21 <ul><li>Resuelva los siguientes sistemas de ecuaciones usando división de matrices y matrices inversas. </li>...
Ejercicio 21
Ejercicio 21
Scripts <ul><li>Un  script  es una secuencia de instrucciones de Matlab guardada en un archivo con extensión  .m </li></ul...
Funciones (llamada) <ul><li>Las funciones puede recibir varios valores y devolver varios resultados </li></ul><ul><ul><li>...
Funciones (definición) <ul><li>Las funciones se escriben en archivos .m que deben encontrarse en el directorio actual (o e...
Funciones <ul><li>La variable  nargin  (local de la función) es el número de argumentos recibidos. </li></ul><ul><li>La va...
Expresiones lógicas <ul><li>Operadores relacionales: ~= == > < >= <= </li></ul><ul><li>Operadores lógicos: </li></ul><ul><...
Control de Flujo: if <ul><li>bloque if </li></ul><ul><li>A diferencia de C, en Matlab no es necesario utilizar paréntesis ...
Control de Flujo: for <ul><li>bucle for </li></ul>
Control de Flujo: while <ul><li>bucle while </li></ul>
Control de Flujo: switch <ul><li>switch-case </li></ul><ul><li>A diferencia de C, en Matlab no hace falta utilizar break. ...
Control de Flujo: try <ul><li>try-catch </li></ul><ul><li>Las instrucciones comprendidas entre  catch  y  end  sólo se eje...
Upcoming SlideShare
Loading in …5
×

Mat lab05

355 views
312 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
355
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Mat lab05

  1. 1. MatLab
  2. 2. Instrucción if <ul><ul><ul><li>if expresión lógica </li></ul></ul></ul><ul><ul><ul><ul><li>instrucciones </li></ul></ul></ul></ul><ul><ul><ul><li>end </li></ul></ul></ul><ul><li>Sí la expresión lógica es verdadera, ejecutamos las instrucciones que están entre la instrucción if y la instrucción end </li></ul><ul><li>Si la expresión lógica es falsa, saltamos de inmediato a la instrucción que sigue a end </li></ul>
  3. 3. Instrucción if <ul><li>Es importante sangrar las instrucciones dentro de la estructura if para que sea más fácil de entender </li></ul><ul><ul><ul><li>if g < 50 </li></ul></ul></ul><ul><ul><ul><ul><li>contar = contar + 1; </li></ul></ul></ul></ul><ul><ul><ul><ul><li>disp(g); </li></ul></ul></ul></ul><ul><ul><ul><li>end </li></ul></ul></ul>
  4. 4. Operadores Relacionales y Lógicos No igual ~= Igual == Mayor o igual que >= Mayor > Menor o igual que <= Menor que < Interpretación Operador relacional
  5. 5. Operadores Relacionales y Lógicos <ul><li>Estos operadores comparan dos matrices de igual tamaño </li></ul><ul><li>Se usan matrices o expresiones de matrices en ambos lados de un operador relacional para dar otra matriz del mismo tamaño </li></ul><ul><li>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 </li></ul>
  6. 6. Operadores Relacionales y Lógicos
  7. 7. Operadores Relacionales y Lógicos <ul><li>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 </li></ul><ul><li>La matriz resultante también se denomina matriz 0-1 </li></ul>
  8. 8. Operadores Relacionales y Lógicos <ul><li>También podemos combinar dos expresiones lógicas usando operadores lógicos no ( not ), y ( and ) y o ( or ) </li></ul>| o & y ~ no Símbolo Operador Lógico
  9. 9. Operadores Relacionales y Lógicos
  10. 10. Ejercicio 18 <ul><li>Determine si las siguientes expresiones son verdaderas o falsas </li></ul><ul><li>Suponga que las variables tienen los valores indicados: </li></ul><ul><ul><ul><li>a = 5.5 </li></ul></ul></ul><ul><ul><ul><li>b = 1.5 </li></ul></ul></ul><ul><ul><ul><li>k = -3 </li></ul></ul></ul>
  11. 11. Ejercicio 19 <ul><li>a < 10.0 </li></ul><ul><li>a + b >= 6.5 </li></ul><ul><li>k ~= 0 </li></ul><ul><li>b – k > a </li></ul><ul><li>~(a == 3 * b) </li></ul><ul><li>~k <= k + 6 </li></ul><ul><li>a < 10 & a > 5 </li></ul><ul><li>abs(k) > 3 | k < b - a </li></ul>
  12. 12. Instrucciones if anidadas <ul><li>if g < 50 </li></ul><ul><ul><li>contar = contar + 1; </li></ul></ul><ul><ul><li>disp(g); </li></ul></ul><ul><ul><li>if b > g </li></ul></ul><ul><ul><li> b = 0; </li></ul></ul><ul><ul><li>end </li></ul></ul><ul><li>end </li></ul>
  13. 13. Cláusula else <ul><li>Permite ejecutar un conjunto de sentencias si la condición es verdadera y otro conjunto de sentencias si la condición es falsa </li></ul><ul><ul><ul><li>if intervalo < 1 </li></ul></ul></ul><ul><ul><ul><li>x_inc = intervalo / 10; </li></ul></ul></ul><ul><ul><ul><li>else </li></ul></ul></ul><ul><ul><ul><li>x_inc = 0.1; </li></ul></ul></ul><ul><ul><ul><li>end </li></ul></ul></ul>
  14. 14. Cláusula elseif <ul><li>if temperatura > 100 </li></ul><ul><li>disp(‘Demasiado caliente – Falla de equipo’) </li></ul><ul><li>elseif temperatura > 90 </li></ul><ul><li>disp(‘Intervalo operativo normal’) </li></ul><ul><li>elseif temperatura > 50 </li></ul><ul><li>disp(‘Temperatura por debajo del intervalo deseado’) </li></ul><ul><li>else </li></ul><ul><li>disp(‘Demasiado frío – Apagar equipo’) </li></ul><ul><li>end </li></ul>
  15. 15. Ejercicio 20 <ul><li>Suponga que las variables son escalares </li></ul><ul><li>Si la diferencia entre volt_1 y volt_2 es mayor que 10.0, exhibir los valores de volt_1 y volt_2 </li></ul><ul><li>Si el logaritmo natural de x es mayor que 3, asignar 0 a tiempo e incrementar contar en 1 </li></ul>
  16. 16. Ejercicio 20 <ul><li>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 </li></ul><ul><li>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 </li></ul>
  17. 17. Solución de Ecuaciones Lineales <ul><li>Considere el siguiente sistema de tres ecuaciones con tres incógnitas: </li></ul>
  18. 18. Solución de Ecuaciones Lineales <ul><li>Podemos reescribir este sistema de ecuaciones utilizando las siguientes matrices: </li></ul>
  19. 19. Solución de Ecuaciones Lineales <ul><li>Si usamos multiplicación de matrices, el sistema de ecuaciones puede escribirse de esta forma: </li></ul><ul><li>A X = B </li></ul><ul><li>Si modificamos nuestra notación de modo que las variables se designen como x 1 , x 2 , x 3 , etc., y reescribimos el conjunto inicial de ecuaciones, tenemos: </li></ul>
  20. 20. Solución de Ecuaciones Lineales <ul><li>Este conjunto de ecuaciones se representa entonces con la ecuación A X = B, donde X es el vector columna [x 1 x 2 x 3 ] T </li></ul>
  21. 21. Solución de Ecuaciones Lineales <ul><li>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. </li></ul>
  22. 22. Solución de Ecuaciones Lineales <ul><li>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: </li></ul>(Observe que la matriz A es la transpuesta del ejemplo anterior)
  23. 23. División de Matrices <ul><li>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: </li></ul>
  24. 24. División de Matrices
  25. 25. División de Matrices <ul><li>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: </li></ul>
  26. 26. División de Matrices
  27. 27. División de Matrices <ul><li>Para poder aplicar estas técnicas, el sistema debe ser cuadrado. </li></ul><ul><li>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 </li></ul><ul><li>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 </li></ul>
  28. 28. Inversión de Matrices <ul><li>También podemos resolver un sistema de ecuaciones usando la inversa de la matriz A, siempre y cuando exista dicha inversa. </li></ul><ul><li>Por ejemplo, supongamos que A, X y B son las matrices que definimos antes: </li></ul>
  29. 29. Inversión de Matrices <ul><li>Entonces, A X = B </li></ul><ul><li>Suponga que multiplicamos ambos lados de la ecuación por A -1 , tenemos entonces: </li></ul><ul><li>A -1 A X = A -1 B </li></ul><ul><li>Dado que A -1 A es igual a la matriz identidad (I), tenemos: </li></ul><ul><li>I X = A -1 B </li></ul><ul><li>O sea: X = A -1 B </li></ul>
  30. 30. Inversión de Matrices <ul><li>En MatLab podemos calcular esta solución utilizando el comando: </li></ul><ul><li>X = inv(A) * B </li></ul><ul><li>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 </li></ul><ul><li>Donde: </li></ul>
  31. 31. Inversión de Matrices <ul><li>Si multiplicamos ambos lados de la ecuación por A -1 , tenemos: </li></ul><ul><li>X A A -1 = B A -1 </li></ul><ul><li>Puesto que A A -1 es la matriz identidad (I), tenemos: </li></ul>
  32. 32. Inversión de Matrices <ul><li>X I = B A -1 </li></ul><ul><li>O sea: X = B A -1 </li></ul><ul><li>En MatLab, podemos calcular esta solución con el comando: </li></ul><ul><li>X = B * inv(A) </li></ul>
  33. 33. Ejercicio 21 <ul><li>Resuelva los siguientes sistemas de ecuaciones usando división de matrices y matrices inversas. </li></ul><ul><li>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 </li></ul>
  34. 34. Ejercicio 21
  35. 35. Ejercicio 21
  36. 36. Scripts <ul><li>Un script es una secuencia de instrucciones de Matlab guardada en un archivo con extensión .m </li></ul><ul><li>Se ejecuta escribiendo su nombre: </li></ul>
  37. 37. Funciones (llamada) <ul><li>Las funciones puede recibir varios valores y devolver varios resultados </li></ul><ul><ul><li>[m,d]=med_des(x); </li></ul></ul><ul><li>Puede haber argumentos opcionales </li></ul><ul><ul><li>mit=imread('cameraman.tif','TIFF'); </li></ul></ul><ul><ul><li>mit=imread('cameraman.tif'); </li></ul></ul><ul><li>No es necesario asignar todos los valores retornados </li></ul><ul><ul><li>[mit,map]=imread('imageman.gif'); </li></ul></ul><ul><ul><li>mit=imread('imageman.gif'); </li></ul></ul>
  38. 38. Funciones (definición) <ul><li>Las funciones se escriben en archivos .m que deben encontrarse en el directorio actual (o en un directorio definido en el path) </li></ul>
  39. 39. Funciones <ul><li>La variable nargin (local de la función) es el número de argumentos recibidos. </li></ul><ul><li>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. </li></ul><ul><li>Todos los argumentos llegan por valor, no es posible hacer paso por referencia. </li></ul>Los scripts comparten las variables del workspace, mientras que las funciones utilizan variables en local
  40. 40. Expresiones lógicas <ul><li>Operadores relacionales: ~= == > < >= <= </li></ul><ul><li>Operadores lógicos: </li></ul><ul><ul><li>&& Short-circuit AND </li></ul></ul><ul><ul><li>|| Short-circuit OR </li></ul></ul><ul><ul><li>& AND </li></ul></ul><ul><ul><li>| OR </li></ul></ul><ul><li>Hay una función xor, pero no es un operador </li></ul>
  41. 41. Control de Flujo: if <ul><li>bloque if </li></ul><ul><li>A diferencia de C, en Matlab no es necesario utilizar paréntesis en la expresión lógica </li></ul>
  42. 42. Control de Flujo: for <ul><li>bucle for </li></ul>
  43. 43. Control de Flujo: while <ul><li>bucle while </li></ul>
  44. 44. Control de Flujo: switch <ul><li>switch-case </li></ul><ul><li>A diferencia de C, en Matlab no hace falta utilizar break. </li></ul>
  45. 45. Control de Flujo: try <ul><li>try-catch </li></ul><ul><li>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. </li></ul>

×