SOFTWARE DE INGENIERIA Introducción a la programación en MATLAB Universidad de Cuenca Enero de 2012 Ing. Gerardo Arbito C....
Temas <ul><li>Introducción </li></ul><ul><li>Escalares, Vectores y Matrices </li></ul><ul><li>Cálculos Fundamentales y Mat...
1. Introducción <ul><li>Origen:  primera versión a finales de la década del 70 en la Universidad de Stanford (Investigador...
<ul><li>Contiene un lenguaje de programación interactivo para cálculo técnico y científico. </li></ul><ul><li>Ambiente fác...
<ul><li>Siendo las matemáticas un lenguaje común de uso en la ciencia y la ingeniería: “AL, EDO, EDP, DF, EF, gráficos”, m...
MATLAB –  EL ENTORNO <ul><li>Cálculo técnico convertido en estándar en la industria y estudio. </li></ul><ul><li>Integra l...
Características de MATLAB <ul><li>Cálculos intensivos desde el punto de vista numérico y simbólico. </li></ul><ul><li>Gene...
ENTORNO DE TRABAJO Command window
2. Escalares, Vectores y Matrices <ul><li>Cálculos elementales </li></ul><ul><li>>> libro = 4 </li></ul><ul><li>>> revista...
<ul><li>Comando who   </li></ul><ul><li>>>  who  </li></ul><ul><li>Comando whos </li></ul><ul><li>>>  whos </li></ul><ul><...
<ul><li>>> A = [3.5]; </li></ul><ul><li>>> B = [-1 0 0; 1 1 0; 1 –1 0; 0 0 2]; </li></ul><ul><li>>> B = [-1  0  0 </li></u...
<ul><li>Si  S  esta definida como  [3.0 1.5 3.1];  entonces </li></ul><ul><li>Cambiar y agregar datos en Matrices </li></u...
<ul><li>Selección de submatriz </li></ul><ul><li>>> C = [-1 0 0;1 1 9;1 –1  0;0 0 2] </li></ul><ul><li>>> subC = C( : ,2:3...
<ul><li>Matriz Nula </li></ul><ul><li>>> A = [ ] </li></ul><ul><li>>> B = 4:-1:5  </li></ul><ul><li>Transformación de una ...
3. Cálculos Fundamentales y Matrices Especiales <ul><li>Operaciones con escalares, vectores y matrices </li></ul><ul><li>>...
<ul><li>Elemento por elemento </li></ul><ul><li>>> A = [2 5 6]; </li></ul><ul><li>>> B = [2 3 5]; </li></ul><ul><li>>>1)  ...
<ul><li>Matrices especiales </li></ul><ul><li>De ceros </li></ul><ul><li>>> zeros(2) </li></ul><ul><li>>> zeros(3,4) </li>...
RESUMEN DE OPERACIONES CON ARREGLOS, MATRICES Y ESCALARES <ul><li>DATOS </li></ul><ul><li>>> a = [a 1  a 2  a 3  … a n ]; ...
Funciones de uso general abs(x) valor absoluto de x sqrt(x)  raíz cuadrada de x round(x) Redondeo de x al entero más próxi...
<ul><li>Funciones trigonométricas </li></ul><ul><li>sin(x) seno de x </li></ul><ul><li>cos(x) coseno de x </li></ul><ul><l...
Numerical linear algebra. Matrix analysis. norm  - Matrix or vector norm. rank  - Matrix rank. det  - Determinant. trace  ...
<ul><li>Números complejos </li></ul><ul><li>x=a+b*i o  x=a+b*j </li></ul><ul><li>>> x=1+2*i </li></ul><ul><li>>> y=-3*j </...
<ul><li>Funciones Financieras </li></ul><ul><li>Charts. </li></ul><ul><li>bolling  - Bollinger Band chart. </li></ul><ul><...
16 <ul><li>Comando help </li></ul><ul><li>>> help </li></ul><ul><li>>> help sqrt </li></ul><ul><li>>> help cilindro </li><...
5. Operaciones con Matrices <ul><li>Matriz transpuesta </li></ul><ul><li>>> A=[1 2 3; 4 7 9]; </li></ul><ul><li>>> A’ </li...
<ul><li>Obtención de la diagonal de la matriz en un vector </li></ul><ul><li>>> A=[2 4 6 ; 8 9 10 ; 0 3 6]; </li></ul><ul>...
6. Controles de Programación <ul><li>Archivos .m </li></ul><ul><li>function  [variables de salida]= nombre [variables de e...
<ul><li>Algunas reglas para la escritura de archivos .m </li></ul><ul><li>La función debe comenzar con una línea que conte...
EDITOR DE TEXTO DE MATLAB
<ul><li>Operadores relacionales </li></ul><ul><li>OPERADOR DESCRIPCIÓN </li></ul><ul><ul><li>< Menor que </li></ul></ul><u...
<ul><li>Ejemplos </li></ul><ul><li>>> a = [2 4 6]; </li></ul><ul><li>>> b = [3 5 1]; </li></ul><ul><li>>> a < b  %Retorna ...
<ul><li>Operadores Lógicos </li></ul><ul><li>OPERADOR DESCRIPCIÓN </li></ul><ul><li>& Y </li></ul><ul><li>| O </li></ul><u...
<ul><li>Estructuras de control </li></ul><ul><li>if – else – end </li></ul><ul><li>if expresión </li></ul><ul><li>comandos...
E j emplo  if else  ani dado p rimero   = input ('Por favor,  ingrese un  número grande: '); segundo= input ('Por favor,  ...
E j emplo  else if  ani dado if  expresión1 comandos ejecutados si la expresión1 es  V elseif  expresión2 comandos ejecuta...
<ul><li>Pasos para cear un programa </li></ul><ul><li>Escribir fuente </li></ul><ul><li>Compilar </li></ul><ul><li>Ligar a...
switch-case ejemplo  “convertir a centímetros de pulgadas o pies” X = input(‘Ingrese un valor:’) Unidades = input(‘Ingrese...
While while condición  % expresión lógica comandos end Eps = 1 Num = 1 while (1+eps) > 1 eps = eps/2; num = num+1; End eps...
For - end for   valor inicial:incremento:valor final comandos .... end Ejemplo n=input(‘Ingrese el número de filas:’); for...
7. Medidas Estadísticas <ul><li>NOTA_ T   = [  8.0  9.0  8.6  8.5  9.0  9.0 </li></ul><ul><li>  8.0  9.0  7.0  8.0  9.0  6...
Ordenación ascendente de un vector >> Mate = NOTA_T(:,3); >> [Ord_Mate,indice]= sort (Mate) >>  std (Mate) % desviación st...
<ul><li>Generador de números aleatorios </li></ul><ul><li>Rand(n) Retorna una matriz de orden  n  cuyos elementos son  núm...
8. Gráficos  2D <ul><li>Comando plot </li></ul><ul><li>>> x=0:0.02*pi:2*pi </li></ul><ul><li>>> y=sin(x); </li></ul><ul><l...
>> x= linspace (0,2*pi,30)  %Genera 30 puntos entre 0 y 2*pi >> y = sin(x) >> plot(x,y,’r*’) >> z=cos(x) >> plot(x,y,’b:p’...
<ul><li>Estilos  </li></ul><ul><li>Tipo de línea Indicador  Color  Indicador </li></ul><ul><li>continua   -   Rojo  r </li...
<ul><li>Comando subplot </li></ul><ul><li>>> x=linspace (0,2*pi,30) </li></ul><ul><li>>> y=sin(x); </li></ul><ul><li>>> z=...
<ul><li>Otros recursos de graficos </li></ul><ul><li>loglog  Escala logarítmica en ambos ejes </li></ul><ul><li>Semilogx  ...
<ul><li>Gráfico de áreas </li></ul><ul><li>>> x=0:0.05*pi:2*pi </li></ul><ul><li>>> y=sin(x) </li></ul><ul><li>>> area(x,y...
<ul><li>Gráficos tridimencionales </li></ul><ul><li>plot3  función para graficar en tres dimensiones  </li></ul><ul><li>>>...
<ul><li>Gráfico de superficie </li></ul><ul><li>>> x=-7.5:0.5:7.5 </li></ul><ul><li>>> y=-7.5:0.5:7.5 </li></ul><ul><li>>>...
9. Solución de Sistemas de Ecuaciones Lineales <ul><li>Dado el sistema: </li></ul><ul><li>3x +2y  -z = 10 </li></ul><ul><l...
10. Ajuste de Curvas e Interpolación <ul><li>Interpolación </li></ul><ul><li>>> dato=[0 0.3;1 12.3;3 15.6;4 45.3]; </li></...
<ul><li>Interpolación cúbica </li></ul><ul><li>>> x=[0,1,2,3,4,5]; </li></ul><ul><li>>> y=[0,20,60,68,77,112]; </li></ul><...
11. Lectura y Escritura de archivos de datos <ul><li>Comando Load: Lee un archivo que posee únicamente datos numéricos </l...
Ejemplo uso de archivos clear  %  Borra las variables del ambiente Fid   =   fopen ('vetor.dat','r'); % abre  un archivo e...
ar ch ivo_n ue vo =  input (‘ Ingrese el nombre del archivo  -> ','s'); orde n  = 8; Mat   =   randn (orde n ); % cr e a m...
12. Integración y diferenciación numérica <ul><li>Por definición la integración numérica </li></ul><ul><li>Comando  quad <...
Hallar la integral de la siguiente función  >> a=0 >> b=1; >>  quad  (‘x.^2’,a,b) >>  quadl (‘x.^2’,a,b)  %Integración por...
Por definición la diferencial es: Comando  diff >> x=linspace(-1,1,30); >> f= x.^5 - 3*x.^4 - 11*x.^3 + 27*x.^2 + 10*x - 2...
13. Descomposición y factorización de matrices <ul><li>Autovalores  y  autovectores </li></ul><ul><li>Comando [Q,d]= eig (...
<ul><li>Descomposición LU </li></ul><ul><li>Comando [L,U,P]= lu (A)  Descompone una matiz A  mxm  en el    producto de mat...
14.  Matemática Símbolica <ul><li>Desde la versión 5.3 Matlab permite la manipulación de símbolos matemáticos en casi todo...
Observaciónes:  M=[a,b,c,d]  % M es una matriz numérica M=‘[a,b,c,d]’  % M es una matriz de strings o texto M=sym(’[a,b,c,...
<ul><li>Extraer numerador y denominador de una expresión: </li></ul><ul><li>[n,d]=numden(f) </li></ul><ul><li>Operaciones ...
<ul><li>Sumatorio </li></ul><ul><li>>> symsum(f,’x’,a,b)  % Si no coloco la variable ni los límites    genero un sumatorio...
15. Aplicaciones <ul><li>Optimización: </li></ul><ul><li>Programación Lineal </li></ul>56 3 4 8 4 7 **Archivo Call Simplex...
Métodos de Puntos Interiores: 4 8 4 7 X1 X2 59 Archivos: -Pto. Interior *
Upcoming SlideShare
Loading in...5
×

Matlab presentacion enero2012

4,694

Published on

Introduccion a la programacion utilizando MAtlab

Published in: Education
1 Comment
16 Likes
Statistics
Notes
No Downloads
Views
Total Views
4,694
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
1
Likes
16
Embeds 0
No embeds

No notes for slide
  • =
  • Transcript of "Matlab presentacion enero2012"

    1. 1. SOFTWARE DE INGENIERIA Introducción a la programación en MATLAB Universidad de Cuenca Enero de 2012 Ing. Gerardo Arbito C. Cálculo numérico de elevadas prestaciones y software de visualización
    2. 2. Temas <ul><li>Introducción </li></ul><ul><li>Escalares, Vectores y Matrices </li></ul><ul><li>Cálculos Fundamentales y Matrices Especiales </li></ul><ul><li>La biblioteca de Matlab </li></ul><ul><li>Operaciones con Matrices </li></ul><ul><li>Controles de Programación </li></ul><ul><li>Medidas Estadísticas </li></ul><ul><li>Gráficos </li></ul><ul><li>Solución de Sistemas de Ecuaciones Lineales </li></ul><ul><li>Ajuste de Curvas e Interpolación </li></ul><ul><li>Lectura y Escritura de archivos de datos </li></ul><ul><li>Integración y diferenciación numérica </li></ul><ul><li>Descomposición y factorización de matrices </li></ul><ul><li>Matemática Simbólica </li></ul><ul><li>Aplicaciones </li></ul>1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1
    3. 3. 1. Introducción <ul><li>Origen: primera versión a finales de la década del 70 en la Universidad de Stanford (Investigador Cleve Moler) </li></ul><ul><li>Búsqueda de un paquete para llevar adelante cursos de Teoría matricial, Algebra lineal y Análisis numérico con visualización gráfica. </li></ul><ul><li>Algoritmos en base a la biblioteca del lenguaje de programación FORTRAN. </li></ul><ul><li>Manejo de matrices sin necesidad de definir y dimensionar las variables. </li></ul><ul><li>Los algoritmos se resuelven igual como se hace en un cuaderno de apuntes. </li></ul>2
    4. 4. <ul><li>Contiene un lenguaje de programación interactivo para cálculo técnico y científico. </li></ul><ul><li>Ambiente fácil de usar. </li></ul><ul><li>Lenguaje familiar de la matemática. </li></ul><ul><li>Comandos muy poderosos de gráficos en 2D y 3D. </li></ul><ul><li>El elemento básico “una matriz” no requiere dimensionar. </li></ul><ul><li>Permite la solución de muchos problemas numéricos en una pequeña fracción de tiempo, de lo que llevaria escribir programas en otros lenguajes como C, Basic, Fortran, etc. </li></ul>3
    5. 5. <ul><li>Siendo las matemáticas un lenguaje común de uso en la ciencia y la ingeniería: “AL, EDO, EDP, DF, EF, gráficos”, manejar arreglos “matrices” es fundamental ya que son los bloques de construcción básicos para las matemáticas aplicadas. </li></ul><ul><li>MatLab tiene incorporado estas herramientas que lo hace accesible y potente. </li></ul><ul><li>El campo de utilización es muy extenso : </li></ul><ul><li>Álgebra lineal, Análisis numérico, Cálculo diferencial e Integral, el Análisis de series temporales, Elementos Finitos, Bases de datos, Geometría y Gráficos en 2D y 3D, se encuentran en el módulo básico de MATLAB. </li></ul><ul><li>Esto constituye las herramientas esenciales para el desarrollo de aplicaciones. </li></ul><ul><li>E stadística, F inanzas, E structuras, C omunicaciones, I ngeniería de control, G eotécnia, H idráulica, I ngeniería vial, A eroespacio, etc,etc. </li></ul>
    6. 6. MATLAB – EL ENTORNO <ul><li>Cálculo técnico convertido en estándar en la industria y estudio. </li></ul><ul><li>Integra los requisitos claves de un sistema de computación técnico: Cálculo numérico y simbólico, características gráficas y de visualización, herramientas para el trabajo científico y de ingeniería. </li></ul><ul><li>Mantiene una enorme diversidad de usuarios en el mundo académico e industrial. </li></ul><ul><li>www.mathlab.works </li></ul><ul><li>Más de mil universidades, y compañías a lo largo de todo el mundo, utilizan MatLab para sus investigaciones: diseñan, modelan, simulan y analizan. </li></ul>
    7. 7. Características de MATLAB <ul><li>Cálculos intensivos desde el punto de vista numérico y simbólico. </li></ul><ul><li>Generación de gráficos y visualización avanzada. </li></ul><ul><li>Arquitectura abierta y ampliamente extensible, permite relacionar con Excel, C, Fortran, el código escrito en MATLAB puede ser traducido a lenguaje “ C ” de forma inmediata. </li></ul><ul><li>Lenguaje de alto nivel basado en el manejo de vectores , arreglos y matrices . </li></ul><ul><li>Colección útil de funciones para aplicación en varias áreas: de las ciencias y de las ingenierías (módulo básico incorpora 600 funciones). </li></ul>MatLab incrementa el alcance y la productividad de la Ciencia y la Ingeniería, acelera la velocidad de los descubrimientos y amplía la creatividad en las investigaciones .
    8. 8. ENTORNO DE TRABAJO Command window
    9. 9. 2. Escalares, Vectores y Matrices <ul><li>Cálculos elementales </li></ul><ul><li>>> libro = 4 </li></ul><ul><li>>> revista = 5 </li></ul><ul><li>>> Total = libros + revistas </li></ul><ul><li>>> precio_libro = 5.00 </li></ul><ul><li>>> precio_revista = 2.5 </li></ul><ul><li>>> precio_medio=(libro*precio_libro + revista * precio_revista) / Total </li></ul>4 Operadores evaluar la siguiente expresión + - suma y resta z= ((a + b) * g – c / e) ^ 0.5 * / multiplicación y división ^ exponencial si: a=5, b=3, g=2, c=10, e=5
    10. 10. <ul><li>Comando who </li></ul><ul><li>>> who </li></ul><ul><li>Comando whos </li></ul><ul><li>>> whos </li></ul><ul><li>Comando clc </li></ul><ul><li>>> clc </li></ul><ul><li>Comando clear </li></ul>5 Ejemplos >> clear revista >> revista >> who >> clear all >> who <ul><li>Vector: Elemento de datos ordenados por fila o por columna </li></ul><ul><li>v= [ 1 4 5 7 9 11] vector fila de 6 elementos </li></ul><ul><li>c=v’ vector columna de 6 elementos </li></ul><ul><li>Matriz: Elemento de datos ordenados en filas y columnas </li></ul><ul><li>A = [a 11 a 12 a 13 .... a 1n ; </li></ul><ul><li> a 21 a 22 a 23 .... a 2n ; </li></ul><ul><li>........ </li></ul><ul><li> a m1 a m2 a m3 .... a mn ]; </li></ul>
    11. 11. <ul><li>>> A = [3.5]; </li></ul><ul><li>>> B = [-1 0 0; 1 1 0; 1 –1 0; 0 0 2]; </li></ul><ul><li>>> B = [-1 0 0 </li></ul><ul><li>1 1 0 </li></ul><ul><li>1 –1 0 </li></ul><ul><li>0 0 2]; </li></ul><ul><li>>> C = [1.5, 3.1]; </li></ul><ul><li>Definición de un vector fila de 5 valores </li></ul><ul><li>>> F = [1 52 64 197 42]; </li></ul><ul><li>Definición de una matriz usando otra ya definida </li></ul><ul><li>>> B = [1.5 , 3.1]; </li></ul><ul><li>>> S = [3.0 B]; </li></ul><ul><li>Es equivalente a </li></ul><ul><li>>> S = [3.0 1.5 3.1]; </li></ul>6 Ejemplos:
    12. 12. <ul><li>Si S esta definida como [3.0 1.5 3.1]; entonces </li></ul><ul><li>Cambiar y agregar datos en Matrices </li></ul><ul><li>>> S(2)=1.0; </li></ul><ul><li>>> S(4)=5; ahora la matriz S tiene 4 elementos </li></ul><ul><li>>> S(8)=9, ahora S tendrá 8 elementos, con S(5), S(6), S(7) = 0 </li></ul><ul><li>Operador ( : ) </li></ul><ul><li>J:K es lo mismo que [J, J+1, ..., K]. </li></ul><ul><li>J:K es un conjunto vacio si J > K. </li></ul><ul><li>J:D:K es lo mismo que [J, J+D, J+2*D..., K] </li></ul><ul><li>J:D:K es un conjunto vacio si D > 0 y J > K o si D < 0 y J < K. </li></ul><ul><li>Vector = valor inicial: Valor final </li></ul><ul><li>Vector = valor inicial: incremento: valor final </li></ul><ul><li>EJEMPLOS </li></ul><ul><li>>> H = 1:8; es lo mismo que H = [1 2 3 4 5 6 7 8] </li></ul><ul><li>>>Tiempo = 0.0:0.5:pi/2; </li></ul><ul><li>>>valores = 10:-1:0; </li></ul><ul><li>>>dados = [ 0 0 ; 0.1 0.2 ; 0.3 0.6]; </li></ul><ul><li>>> x = dados(:,1); </li></ul><ul><li>>> y = dados(:,2); </li></ul>7
    13. 13. <ul><li>Selección de submatriz </li></ul><ul><li>>> C = [-1 0 0;1 1 9;1 –1 0;0 0 2] </li></ul><ul><li>>> subC = C( : ,2:3) </li></ul><ul><li>>> A = C(3:4, 1:2); </li></ul><ul><li>Ingreso de elementos vía teclado </li></ul><ul><li>>> z = input(‘Valor de z: ‘) % ingresar por teclado [5 6 –18] </li></ul>8
    14. 14. <ul><li>Matriz Nula </li></ul><ul><li>>> A = [ ] </li></ul><ul><li>>> B = 4:-1:5 </li></ul><ul><li>Transformación de una matriz en un vector columna </li></ul><ul><li>>> C = [1 2;3 4] </li></ul><ul><li>>> D = C(:) </li></ul><ul><li>D= 1 </li></ul><ul><li>2 </li></ul><ul><li>3 </li></ul><ul><li>4 </li></ul>9 <ul><li>Dimensión de Matrices </li></ul><ul><li>>> size(A) </li></ul><ul><li>>> size(C) </li></ul><ul><li>>> a = 1 </li></ul><ul><li>>> size(a) </li></ul>
    15. 15. 3. Cálculos Fundamentales y Matrices Especiales <ul><li>Operaciones con escalares, vectores y matrices </li></ul><ul><li>>> A = [2 5 9]; </li></ul><ul><li>>> B = 3*A </li></ul><ul><li>>> C = A/5 </li></ul><ul><li>>> D = 5+A </li></ul><ul><li>>> E = A^2 </li></ul><ul><li>>> F = 2^A </li></ul>10 B= [6 15 27] C= [0.40 1.00 1.80] D= [7 10 14] E= error operación no definida F= error operación no definida
    16. 16. <ul><li>Elemento por elemento </li></ul><ul><li>>> A = [2 5 6]; </li></ul><ul><li>>> B = [2 3 5]; </li></ul><ul><li>>>1) C = A .* B </li></ul><ul><li>>>2) C = A ./ B </li></ul><ul><li>>>3) C = A .^ 2 </li></ul><ul><li>>>4) C = 2 .^ A </li></ul><ul><li>Constantes predefinidas </li></ul><ul><li>pi  </li></ul><ul><li>i, j  (-1) </li></ul><ul><li>inf  </li></ul><ul><li>NaN Not a number </li></ul><ul><li>date fecha actual </li></ul><ul><li>clock hora actual </li></ul><ul><li>ans variable por defecto para almacenar valor última operación </li></ul>11 respuestas 1) C = [4 15 30] 2) C = [1.00 1.667 1.200] 3) C = [4 25 36] 4) C = [4 32 64]
    17. 17. <ul><li>Matrices especiales </li></ul><ul><li>De ceros </li></ul><ul><li>>> zeros(2) </li></ul><ul><li>>> zeros(3,4) </li></ul><ul><li>De unos </li></ul><ul><li>>> ones(4) </li></ul><ul><li>>> ones(3,2) </li></ul><ul><li>Identidad (I) </li></ul><ul><li>>> eye(3) </li></ul><ul><li>>> eye(2,6) </li></ul><ul><li>Ejercicio !!! Obtener una matriz de dos????? </li></ul><ul><li>>> 2 + zeros(3,4) </li></ul><ul><li>>> 2 * ones(3,4) </li></ul>12
    18. 18. RESUMEN DE OPERACIONES CON ARREGLOS, MATRICES Y ESCALARES <ul><li>DATOS </li></ul><ul><li>>> a = [a 1 a 2 a 3 … a n ]; </li></ul><ul><li>>> b = [b 1 b 2 b 3 … b n ]; </li></ul><ul><li>>> c = {c es un escalar} </li></ul><ul><li>OPERACIONES </li></ul><ul><li>Suma escalar a+c = [a 1 +c a 2 +c a 3 +c … a n +c] </li></ul><ul><li>Multiplicación escalar a*c = [a 1 *c a 2 *c a 3 *c … a n *c] </li></ul><ul><li>Suma de Arreglos a+b = [a 1 +b 1 a 2 +b 2 a 3 +b 3 … a n +b n ] </li></ul><ul><li>Multiplicación de Arreglos a.*b = [a 1 *b 1 a 2 *b 2 a 3 *b 3 … a n *b n ] </li></ul><ul><li>División dcha. de Arreglos a./b = [a 1 /b 1 a 2 /b 2 a 3 /b 3 … a n /b n ] </li></ul><ul><li>División izqda. de Arreglos a.b = [a 1 b 1 a 2 b 2 a 3 b 3 … a n b n ] </li></ul><ul><li>Potencia de Arreglos a.^c = [a 1 ^c a 2 ^c a 3 ^c … a n ^c] </li></ul><ul><li>c.^a = [c^a 1 c^a 2 c^a 3 … c^a n ] </li></ul><ul><li>a.^b = [a 1 ^b 1 a 2 ^b 2 a 3 ^b 3 … a n ^b n ] </li></ul>
    19. 19. Funciones de uso general abs(x) valor absoluto de x sqrt(x) raíz cuadrada de x round(x) Redondeo de x al entero más próximo fix(x) redondeo de x al entero más próximo de cero floor(x) redondeo de x al entero más próximo de -  ceil(x) redondeo de x al entero más próximo de +  sign(x) signo de x rem(x,y) resto de la división x/y exp(x) valor de e x log(x) logaritmo natural de x OBS: x puede ser escalar, vector o matriz 13 4.- LA BIBLIOTECA DE MATLAB
    20. 20. <ul><li>Funciones trigonométricas </li></ul><ul><li>sin(x) seno de x </li></ul><ul><li>cos(x) coseno de x </li></ul><ul><li>tan(x) tangente de x </li></ul><ul><li>asin(x) arcoseno de x  [-1 1] dando valores entre [-  /2  /2 ] </li></ul><ul><li>acos(x) arcocoseno de x  [-1 1] dando valores entre [-  /2  /2 ] </li></ul><ul><li>atan(x) arcotan de x  [-1 1] dando valores entre [-  /2  /2 ] </li></ul><ul><li>atan2(x,y) arcotan de y/x dando valores entre [-   ] </li></ul><ul><li>sec(x)=1/cos(x) </li></ul><ul><li>csc(x)=1/sin(x) </li></ul><ul><li>cot(x)=1/tan(x) </li></ul><ul><li>OBS: el argumento de la función “ x” debe estar en radianes </li></ul>14
    21. 21. Numerical linear algebra. Matrix analysis. norm - Matrix or vector norm. rank - Matrix rank. det - Determinant. trace - Sum of diagonal elements. orth - Orthogonalization. subspace - Angle between two subspaces. Linear equations . linsolve - Linear equation solution with extra control. inv - Matrix inverse. chol - Cholesky factorization. lu - LU factorization. qr - Orthogonal-triangular decomposition. lscov - Least squares with known covariance. Eigenvalues and singular values. eig - Eigenvalues and eigenvectors. eigs - A few eigenvalues. poly - Characteristic polynomial. polyeig - Polynomial eigenvalue problem. Funciones de operaciones con matrices
    22. 22. <ul><li>Números complejos </li></ul><ul><li>x=a+b*i o x=a+b*j </li></ul><ul><li>>> x=1+2*i </li></ul><ul><li>>> y=-3*j </li></ul><ul><li>>> x+y </li></ul><ul><li>>> x*y </li></ul><ul><li>Funciones de números complejos </li></ul><ul><li>real(x) Parte real de x </li></ul><ul><li>imag(x) Parte imaginaria de x </li></ul><ul><li>conj(x) conjugado de x </li></ul><ul><li>abs(x) módulo del número complejo </li></ul><ul><li>angle(x) Cálculo del ángulo usando atan2(imag(x), real(x)) por tanto -  y  </li></ul>15 >> a =1 >> b=2 >> x=a+b*i >> r=abs(x) >> teta=angle(x) >> y=r*exp(i*teta) >> y=r*(cos(teta)+i*sin(teta))
    23. 23. <ul><li>Funciones Financieras </li></ul><ul><li>Charts. </li></ul><ul><li>bolling - Bollinger Band chart. </li></ul><ul><li>candle - Candlestick chart. </li></ul><ul><li>dateaxis - Date axis labels. </li></ul><ul><li>pointfig - Point and figure chart. </li></ul><ul><li>highlow - High, low, open, close chart. </li></ul><ul><li>movavg - Leading and lagging moving averages chart. </li></ul><ul><li>Present and Future Value. </li></ul><ul><li>pvfix - Present value with fixed periodic payments. </li></ul><ul><li>pvvar - Present value of varying cash flow. </li></ul><ul><li>fvfix - Future value with fixed periodic payments. </li></ul><ul><li>fvvar - Future value of varying cash flow. </li></ul><ul><li>fvdisc - Future value of discounted security. </li></ul><ul><li>Annuities. </li></ul><ul><li>annurate - Periodic interest rate of annuity. </li></ul><ul><li>annuterm - Number of periods to obtain value. </li></ul>
    24. 24. 16 <ul><li>Comando help </li></ul><ul><li>>> help </li></ul><ul><li>>> help sqrt </li></ul><ul><li>>> help cilindro </li></ul><ul><li>>>help plot </li></ul><ul><li>>>help matfun </li></ul>matlabgeneral - General purpose commands. matlabops - Operators and special characters. matlablang - Programming language constructs. matlabelmat - Elementary matrices and matrix manipulation. matlabelfun - Elementary math functions. matlabspecfun - Specialized math functions. matlabmatfun - Matrix functions - numerical linear algebra. matlabpolyfun - Interpolation and polynomials. matlabgraph2d - Two dimensional graphs. matlabgraph3d - Three dimensional graphs. matlabspecgraph - Specialized graphs. matlabgraphics - Handle Graphics. financefinance - Financial Toolbox. financecalendar - Financial Toolbox calendar functions. financefindemos - Financial Toolbox demonstration functions.
    25. 25. 5. Operaciones con Matrices <ul><li>Matriz transpuesta </li></ul><ul><li>>> A=[1 2 3; 4 7 9]; </li></ul><ul><li>>> A’ </li></ul><ul><li>Multiplicación de matrices </li></ul><ul><li>>> B=[1 2; 2 4;3 2]; </li></ul><ul><li>>> A*B </li></ul><ul><li>>> B*A’ </li></ul><ul><li>Matriz potencia </li></ul><ul><li>>> A=[1 4;2 3]; </li></ul><ul><li>>> A^2 %Equivale a A*A </li></ul><ul><li>>> A^4 %Equivale a A*A*A*A </li></ul><ul><li>Determinante </li></ul><ul><li>>> det(A) </li></ul><ul><li>Inversa </li></ul><ul><li>>> B=inv(A) o (A^-1) </li></ul>28
    26. 26. <ul><li>Obtención de la diagonal de la matriz en un vector </li></ul><ul><li>>> A=[2 4 6 ; 8 9 10 ; 0 3 6]; </li></ul><ul><li>>>B=diag(A) </li></ul><ul><li>>> C=[ 1 2 0 1 1]; </li></ul><ul><li>>> diag(C) !!!Que se obtiene </li></ul><ul><li>Rotación 90° de la matriz </li></ul><ul><li>>> D=rot90(A) </li></ul><ul><li>- Reordenamiento de la matriz con diferentes líneas y columnas </li></ul><ul><li>>> E=reshape(A,9,1) </li></ul><ul><li>- Obtención de la matriz triangular triu(Matriz superior), tril(matriz inferior) </li></ul><ul><li>>> F=triu(A) </li></ul><ul><li>>>G=tril(A) </li></ul>29 Funciones para manipulación de matrices
    27. 27. 6. Controles de Programación <ul><li>Archivos .m </li></ul><ul><li>function [variables de salida]= nombre [variables de entrada] </li></ul><ul><li>function C= circulo (R) </li></ul><ul><li>%CIRCULO perímetro de una circunferencia de radio r </li></ul><ul><li>C=pi*2*R; </li></ul><ul><li>Ejecución </li></ul><ul><li>>> r=[0 1.4*pi]; </li></ul><ul><li>>> a=circulo(r) </li></ul><ul><li>function [Ar, Vl]= cilindro (h,r) </li></ul><ul><li>%CILINDRO Area y volumen de un cilindro </li></ul><ul><li>Ar = 2*pi*r*h+pi*r^2; </li></ul><ul><li>Vl = pi*r^2*h; </li></ul><ul><li>Ejecución </li></ul><ul><li>>> [a,v]=cilindro(0.5,1) </li></ul>17
    28. 28. <ul><li>Algunas reglas para la escritura de archivos .m </li></ul><ul><li>La función debe comenzar con una línea que contenga: </li></ul><ul><li> function [variables de salida]= nombre [variables de entrada] </li></ul><ul><li>Las primeras líneas deben contener los comentarios de que realiza esa function, ya que el comentario aparece al utilizar help nombre </li></ul><ul><li>Los resultados se almacenan en variables de salida que por lo general son matrices. </li></ul><ul><li>Y todos los cálculos se realizan internamente dentro de la function. </li></ul>18 Ejecutar >> [a,v]=cilindro(0.5,1) Para ingresar al editor: Menú – File – New – M-file
    29. 29. EDITOR DE TEXTO DE MATLAB
    30. 30. <ul><li>Operadores relacionales </li></ul><ul><li>OPERADOR DESCRIPCIÓN </li></ul><ul><ul><li>< Menor que </li></ul></ul><ul><ul><li><= Menor o igual a </li></ul></ul><ul><ul><li>> Mayor que </li></ul></ul><ul><ul><li>>= Mayor o igual a </li></ul></ul><ul><ul><li>== Igual a </li></ul></ul><ul><ul><li>~= No es igual a </li></ul></ul><ul><ul><li>OBS: Al comparar devuelve 1 si la relación es V </li></ul></ul><ul><ul><li>y devuelde 0 si es F , sea escalar o vector </li></ul></ul>19
    31. 31. <ul><li>Ejemplos </li></ul><ul><li>>> a = [2 4 6]; </li></ul><ul><li>>> b = [3 5 1]; </li></ul><ul><li>>> a < b %Retorna el vector [1 1 0] </li></ul><ul><li>>> a~=b %Retorna el vector [1 1 1] </li></ul><ul><li>Comando strcmp (texto1, texto2) compara las variables de cadena de </li></ul><ul><li> caracteres (textos) texto1 y texto 2, </li></ul><ul><li> retornando 1 si es V o 0 si es F. </li></ul><ul><li>>> texto1=‘DPL’ </li></ul><ul><li>>>strcmp(texo1,’TERIOS’) </li></ul><ul><li>Comando disp Permite visualizar una variable en el prompt </li></ul><ul><li>>> disp(‘La calidad no esta en dictar cursos sobre calidad’) </li></ul>20
    32. 32. <ul><li>Operadores Lógicos </li></ul><ul><li>OPERADOR DESCRIPCIÓN </li></ul><ul><li>& Y </li></ul><ul><li>| O </li></ul><ul><li>~ Not </li></ul><ul><li>>> a = 2; </li></ul><ul><li>>> b = 1; </li></ul><ul><li>>> c = 0; </li></ul><ul><li>>> a<b & b<c % Retornará 1 si solamente se cumple a < b < c </li></ul><ul><li>>> ~(b==c | c<a) </li></ul>21
    33. 33. <ul><li>Estructuras de control </li></ul><ul><li>if – else – end </li></ul><ul><li>if expresión </li></ul><ul><li>comandos </li></ul><ul><li>else </li></ul><ul><li>comandos </li></ul><ul><li>end </li></ul><ul><li>sum = 0; </li></ul><ul><li>If a < 50 </li></ul><ul><li>count = count+1; </li></ul><ul><li>sum = sum+a; </li></ul><ul><li>end </li></ul>primero = input (‘Por favor ingrese un número grande:’) segundo= input (‘Por favor ingrese un número pequeño:’) If (primero > segundo) disp(‘El primer dato es mayor al segundo !!!’); else disp(‘Opa, el segundo es mayor!!!’); end 22
    34. 34. E j emplo if else ani dado p rimero = input ('Por favor, ingrese un número grande: '); segundo= input ('Por favor, ingrese un número peque ñ o: '); If (primero >= segundo) if (rem(primero,segundo) == 0) % División exacta if (primero == segundo) disp(‘ Son iguales !'); else disp(‘ Son divisibles !'); end else disp(' No son divisibles exactamente !'); end else disp('Opa, el peque ño es ma y or que el grande !!!' ); end 23
    35. 35. E j emplo else if ani dado if expresión1 comandos ejecutados si la expresión1 es V elseif expresión2 comandos ejecutados si la expresión2 es V elseif expresión3 comandos ejecutados si la expresión3 es V elseif ...... else comandos ejecutados si ninguna expresión es verdadera end 24
    36. 36.
    37. 37. <ul><li>Pasos para cear un programa </li></ul><ul><li>Escribir fuente </li></ul><ul><li>Compilar </li></ul><ul><li>Ligar a biblioteca </li></ul><ul><li>Generar ejecutable </li></ul>
    38. 38. switch-case ejemplo “convertir a centímetros de pulgadas o pies” X = input(‘Ingrese un valor:’) Unidades = input(‘Ingrese la unidad:’,’s’) switch Unidades % convierte x a centímetros case {‘pulgadas’,’pul’} y = x*2.54; case {‘pies’,’p’} y = x*2.54*12 Otherwise disp([‘Unidad desconocida:’,Unidades]); end 25
    39. 39. While while condición % expresión lógica comandos end Eps = 1 Num = 1 while (1+eps) > 1 eps = eps/2; num = num+1; End eps=2*eps disp(‘epsilon: ’,eps); disp(‘número: ’,num); 26 BUCLES (repetición de comandos)
    40. 40. For - end for valor inicial:incremento:valor final comandos .... end Ejemplo n=input(‘Ingrese el número de filas:’); for k=1:n ones(k,2) end 27
    41. 41. 7. Medidas Estadísticas <ul><li>NOTA_ T = [ 8.0 9.0 8.6 8.5 9.0 9.0 </li></ul><ul><li> 8.0 9.0 7.0 8.0 9.0 6.0 </li></ul><ul><li> 8.0 9.0 8.0 8.5 8.0 9.0 </li></ul><ul><li> 6.0 9.0 8.6 8.5 8.0 6.0 </li></ul><ul><li> 8.0 9.0 8.0 9.0 9.0 6.5 </li></ul><ul><li> 10.0 9.0 8.0 8.5 8.0 6.0 </li></ul><ul><li> 8.0 9.0 9.0 8.0 9.0 10.0 </li></ul><ul><li> 10.0 9.0 8.0 7.5 8.0 9.0 </li></ul><ul><li> 8.0 9.0 10.0 8.0 10.0 10.0 </li></ul><ul><li> 8.0 9.0 7.0 8.5 7.0 6.5 </li></ul><ul><li> 8.0 9.0 9.0 7.5 7.0 9.0 </li></ul><ul><li> 8.0 9.0 7.0 7.0 8.0 10.0 </li></ul><ul><li> 8.0 9.0 8.0 7.5 9.0 6.0]; </li></ul><ul><li>>> media_turma = mean (NOTA_T) </li></ul><ul><li>>> media_Mate = mean (NOTA_T(:,3)) </li></ul><ul><li>[min_columna, ubica] = min (NOTA_T) </li></ul><ul><li>[max_columna, ubica] = max (NOTA_T) </li></ul>30
    42. 42. Ordenación ascendente de un vector >> Mate = NOTA_T(:,3); >> [Ord_Mate,indice]= sort (Mate) >> std (Mate) % desviación standar >> hist (min_columna); % Histograma de 10 barras (default) >> [n,m]= hist (min_columna) % n=altura, m=centro de cada barra >> hist (min_columna, 3) % Histograma de 3 barras >> [n,m]= hist (min_columna, 4) 31
    43. 43. <ul><li>Generador de números aleatorios </li></ul><ul><li>Rand(n) Retorna una matriz de orden n cuyos elementos son números aleatorios distribuidos uniformemente entre 0 y 1 </li></ul><ul><li>Rand(m,n) Retorna una matriz de orden m*n cuyos elementos son números aleatorios entre 0 y 1 </li></ul><ul><li>Rand(size(A)) Retorna una matriz de orden de la matriz A cuyos elementos son números aleatorios entre 0 y 1 </li></ul><ul><li>Randn(n) Especifica números aleatorios normalmente distribuidos </li></ul>32
    44. 44. 8. Gráficos 2D <ul><li>Comando plot </li></ul><ul><li>>> x=0:0.02*pi:2*pi </li></ul><ul><li>>> y=sin(x); </li></ul><ul><li>>> plot(x,y) </li></ul><ul><li>>> z=cos(x) </li></ul><ul><li>>> plot(x,z) </li></ul><ul><li>>> hold on </li></ul><ul><li>>> plot(x,y) </li></ul><ul><li>>> hold off </li></ul><ul><li>>> plot(x,y,x,z) </li></ul>33
    45. 45. >> x= linspace (0,2*pi,30) %Genera 30 puntos entre 0 y 2*pi >> y = sin(x) >> plot(x,y,’r*’) >> z=cos(x) >> plot(x,y,’b:p’,x,z,’c-’); >> plot(x,y,'rp','LineWidth',1.8); >> xlabel (‘Variable x’) %titulo de eje x >> ylabel (‘Variable y e z’) %titulo del eje y >> ylabel(‘Variable x','FontSize',14,'FontWeight','Bold','FontAngle','italic') >> xlabel(‘Variable y','FontSize',14,'FontWeight','Bold','FontAngle','normal') >> title (‘Gráfico Sinusoidales’) >> legend (‘sin(x)’, ‘cos(x)’) 34
    46. 46. <ul><li>Estilos </li></ul><ul><li>Tipo de línea Indicador Color Indicador </li></ul><ul><li>continua - Rojo r </li></ul><ul><li>discontinua -- verde g </li></ul><ul><li>puntillada : azul b </li></ul><ul><li>linea y punto -. blanco w </li></ul><ul><li> amarillo y </li></ul><ul><li> marrón m </li></ul><ul><li>negro k </li></ul><ul><li>Tipo de punto Indicador Tipo de punto Indicador </li></ul><ul><li>punto . Triángulo a la izquierda < </li></ul><ul><li>suma + Triángulo a la derecha > </li></ul><ul><li>asterisco * pentágono p </li></ul>35
    47. 47. <ul><li>Comando subplot </li></ul><ul><li>>> x=linspace (0,2*pi,30) </li></ul><ul><li>>> y=sin(x); </li></ul><ul><li>>> z=cos(x); </li></ul><ul><li>>> a=2*sin(x).*cos(x) </li></ul><ul><li>>> b=sin(x)./ (cos(x)+eps); </li></ul><ul><li>>> subplot (2,2,1) % selecciona una porción de la sección de gráficos </li></ul><ul><li>>> plot (x,y) </li></ul><ul><li>>> title (‘Función seno de x’) </li></ul><ul><li>>> subplot (2,2,2); % selecciona otro sector de la visión </li></ul><ul><li>>> plot(x,z) </li></ul><ul><li>>> title (‘Función coseno de x’) </li></ul><ul><li>>> subplot (2,2,3); % selecciona otro sector de la visión </li></ul><ul><li>>> plot(x,a) </li></ul><ul><li>>> title (‘Función 2sin(x)*cos(x’) </li></ul>36
    48. 48. <ul><li>Otros recursos de graficos </li></ul><ul><li>loglog Escala logarítmica en ambos ejes </li></ul><ul><li>Semilogx Escala logarítmica en el eje x </li></ul><ul><li>Semilogy Escala logarítmica en el eje y </li></ul><ul><li>area(x,y) Gráfico de área </li></ul><ul><li>pie(a,b) Gráfico tipo tarta </li></ul><ul><li>>> a=[0.5 1 1.5 2 1 0.3] </li></ul><ul><li>>> pie(a,a==max(a)) </li></ul><ul><li>>> title(‘--- producción en Toneladas ---’) </li></ul><ul><li>>> legend(‘arroz’,’frejol’,’soya’,’trigo’,’maiz’,’arvejas’) </li></ul>37
    49. 49. <ul><li>Gráfico de áreas </li></ul><ul><li>>> x=0:0.05*pi:2*pi </li></ul><ul><li>>> y=sin(x) </li></ul><ul><li>>> area(x,y) </li></ul><ul><li>Gráfico de barras </li></ul><ul><li>>> b=[1960 1970 1980 1990 2000 2010] </li></ul><ul><li>>> bar(b,a) </li></ul><ul><li>Gráfico escalera </li></ul><ul><li>>> stairs(b,a) </li></ul>38
    50. 50. <ul><li>Gráficos tridimencionales </li></ul><ul><li>plot3 función para graficar en tres dimensiones </li></ul><ul><li>>> t=linspace(0,10*pi,100) </li></ul><ul><li>>> plot3 (sin(t),cos(t),t) </li></ul><ul><li>>> title(‘Gráfico tridimensional’) </li></ul><ul><li>>> xlabel(‘sen’) </li></ul><ul><li>>> ylabel(‘cos’) </li></ul><ul><li>>> zlabel(‘t’) </li></ul>39 Gráficos 3D
    51. 51. <ul><li>Gráfico de superficie </li></ul><ul><li>>> x=-7.5:0.5:7.5 </li></ul><ul><li>>> y=-7.5:0.5:7.5 </li></ul><ul><li>>>[X,Y]=meshgrid(x,y) %Genera la matriz de la base </li></ul><ul><li>>> R=sqrt(X.^2+Y.^2)+eps; %para evitar un valor cero </li></ul><ul><li>>> Z=sin(R)./ R+1; </li></ul><ul><li>>> mesh(X,Y,Z); %Gráfico de la red </li></ul><ul><li>>> surf(X,Y,Z); %Gráfico de superficie </li></ul><ul><li>>> contour(X,Y,Z,20) %Número indica cuantas curvas de nivel desea observar </li></ul>40
    52. 52. 9. Solución de Sistemas de Ecuaciones Lineales <ul><li>Dado el sistema: </li></ul><ul><li>3x +2y -z = 10 </li></ul><ul><li>-x +3y +2z = 5 </li></ul><ul><li>x -y -z = -1 </li></ul><ul><li>Matricialmente tenemos: </li></ul><ul><li>>> A=[3 2 –1;-1 3 2;1 –1 –1]; </li></ul><ul><li>>> B=[10; 5 ;–1]; </li></ul><ul><li>>> x = A B %Resolución por la eliminación de Gauss </li></ul><ul><li>>> x = inv (A)*B </li></ul>41
    53. 53. 10. Ajuste de Curvas e Interpolación <ul><li>Interpolación </li></ul><ul><li>>> dato=[0 0.3;1 12.3;3 15.6;4 45.3]; </li></ul><ul><li>>> Y1= interp1 (dato(:,1),dato(:,2),1.7) </li></ul><ul><li>>> x =0:0.1:1 </li></ul><ul><li>>>y =[-0.447 1.978 3.28 6.26 7.12 745 7.78 9.45 9.32 9.14 11.2]; </li></ul><ul><li>>>xi =0:0.1:1; </li></ul><ul><li>>>int_lin =interp(x,y,xi); %interpolación lineal </li></ul><ul><li>>>int_cub =interp1(x,y,xi,’cubic’); </li></ul><ul><li>>>int_spline=interp(x,y,xi,’spline’); </li></ul><ul><li>Ejercicios : graficar las interpolaciones!!!! </li></ul>42
    54. 54. <ul><li>Interpolación cúbica </li></ul><ul><li>>> x=[0,1,2,3,4,5]; </li></ul><ul><li>>> y=[0,20,60,68,77,112]; </li></ul><ul><li>>> interpolado = spline (x,y,2.6) </li></ul><ul><li>Comando polyfit: Encuentra los coeficiente del polinomio. Es necesario especificar el grado del polinomio que deseamos </li></ul><ul><li>>> x=[0,1,2,3,4,5]; </li></ul><ul><li>>> y=[0,20,60,68,77,112]; </li></ul><ul><li>>>coeficiente=polyfit(x,y,1) % el tercer parámetro indica el grado del polinomio </li></ul><ul><li>>>ybest = polyval(coeficiente,x) %Evalua el polinomio en x </li></ul>43
    55. 55. 11. Lectura y Escritura de archivos de datos <ul><li>Comando Load: Lee un archivo que posee únicamente datos numéricos </li></ul><ul><li>>> load matriz.dat %Lee los datos almacenados en el archivo matriz.dat y los almacena en la variable matriz. </li></ul><ul><li>Comando Save : Guarda datos en archivos </li></ul><ul><li>>> clear </li></ul><ul><li>>> x=[0 1 2 3 4 5]; </li></ul><ul><li>>> y=sqrt(2)*eye(3) </li></ul><ul><li>>> z=rand(2) </li></ul><ul><li>>> save datos x y z % Guarda x,y,z en el archivo datos.dat </li></ul><ul><li>>> save datos1.txt x y z –ascii % Guarda los datos en formato txt. (8 digitos) </li></ul>44
    56. 56. Ejemplo uso de archivos clear % Borra las variables del ambiente Fid = fopen ('vetor.dat','r'); % abre un archivo existente %le e valores e nteros d el archivo ve c tor.dat nval = fscanf (fid,'%2d',1); %n ú mero de valores a leer es 1 vet = zeros(nval,1); %c re a el ve c tor vet de ceros for k=1:nval, vet(k) = fscanf (fid,'%5d',1); %le e valores em formato end % e ntero con 5 dígitos fclose (fid); %Cierra el archivo disp (' FI N '); vet % m ue stra en el prompt el vector leido 45
    57. 57. ar ch ivo_n ue vo = input (‘ Ingrese el nombre del archivo -> ','s'); orde n = 8; Mat = randn (orde n ); % cr e a matriz 8x8 mat % m uestra la matriz Fid = fopen (ar ch ivo_n ue vo,'w'); %cr e a archiv o n ue vo, si ya existe % se elimina el contenido % Escribe la matriz en el archivo indicado for k=1:orde n , for l=1:orde n , fprintf (fid,'%3.2ft',mat(k,l)); % escr ib e los valores em formato p u nto fi jo end % co n 3 d í gitos d e lo s cuales 2 so n decima le s fprintf (fid,'n'); % Escribe y cambia de línea end fclose (fid); % Cierra el archivo disp ('FI N '); 46
    58. 58. 12. Integración y diferenciación numérica <ul><li>Por definición la integración numérica </li></ul><ul><li>Comando quad </li></ul><ul><li>>> quad (‘func’,a,b) </li></ul><ul><li>OBS definir en un archivo .m la función o entre apostrofes </li></ul><ul><li>Por ejemplo: </li></ul><ul><li>function y = myfun(x) </li></ul><ul><li>y = 1./(x.^3-2*x-5); </li></ul><ul><li>a=0 </li></ul><ul><li>b=1 </li></ul><ul><li>quad(‘myfun’,a,b) </li></ul>47
    59. 59. Hallar la integral de la siguiente función >> a=0 >> b=1; >> quad (‘x.^2’,a,b) >> quadl (‘x.^2’,a,b) %Integración por cuadratura de alto orden 48
    60. 60. Por definición la diferencial es: Comando diff >> x=linspace(-1,1,30); >> f= x.^5 - 3*x.^4 - 11*x.^3 + 27*x.^2 + 10*x - 24 >> df= diff (f) ./ diff (x); %diff numérico >>df1=5*x.^4 - 12*x.^3 - 33*x.^2 + 54*x + 10 %diff teórico OBS: Obtener los gráficos. Qué diferencias encuentra? 49
    61. 61. 13. Descomposición y factorización de matrices <ul><li>Autovalores y autovectores </li></ul><ul><li>Comando [Q,d]= eig (A) % Dada la matriz A , en la matriz Q retorna los autovectores y en la matriz diagonal d los autovalores. </li></ul><ul><li>>> A=[1 2 –1 ; 2 –5 –3 ; -1 –3 0]; </li></ul><ul><li>>> [Q,d] = eig (A); </li></ul><ul><li>OBS: Podemos comprobar las propiedades de los autovectores </li></ul><ul><li>Q*Q’ = I y A*Q = Q*d </li></ul>50
    62. 62. <ul><li>Descomposición LU </li></ul><ul><li>Comando [L,U,P]= lu (A) Descompone una matiz A mxm en el producto de matrices a saber: </li></ul><ul><li>P*A = L*U y P*L*U = A </li></ul><ul><li>>> [L,U,P] = lu (A) </li></ul><ul><li>OBS: comprobar lo indicado </li></ul><ul><li>Descomposición en valores singulares </li></ul><ul><li>Comando [U,S,V]=svd(A) donde S es una matriz diagonal que posee los valores singulares que cumple: </li></ul><ul><li>A=U*S*V’ </li></ul><ul><li>>> [U,S,V]= svd (A) </li></ul>51
    63. 63. 14. Matemática Símbolica <ul><li>Desde la versión 5.3 Matlab permite la manipulación de símbolos matemáticos en casi todos los tópicos analizados en está presentación. Toolbox de MATEMATICA SIMBOLICA </li></ul><ul><li>Expresión simbólica </li></ul><ul><li>Son strings o conjunto de ellos que representan: números, funciones, operadores y variables. </li></ul><ul><li>La resolución es en base a las reglas conocidas....por UD!!! </li></ul>Expresiones Símbólicas En Matlab ‘ 1/(2*x^n) ’ ‘ cos(x^2)+sin(2*x) ’ sym( ‘ [a,b;c,d] ’ ) 52
    64. 64. Observaciónes: M=[a,b,c,d] % M es una matriz numérica M=‘[a,b,c,d]’ % M es una matriz de strings o texto M=sym(’[a,b,c,d]’) % M e una matriz simbólica Puede definirse también >> syms x a b c % Defino variables simbólicas >> f=x^2+sqrt(sin(x)) 53
    65. 65. <ul><li>Extraer numerador y denominador de una expresión: </li></ul><ul><li>[n,d]=numden(f) </li></ul><ul><li>Operaciones algebraicas </li></ul><ul><li>f =‘2*x^2+3*x+5’ </li></ul><ul><li>g =‘x^2-x+7’ </li></ul><ul><li>Suma: symadd(f,g) Resta: symsub(f,g) multiplica: symmul(f,g) </li></ul><ul><li>Divide: symdiv(f,g) Potencia: sumpow(f,’3x’) </li></ul><ul><li>Composición e inversa de funciones </li></ul><ul><li>>> compose(f,g) </li></ul><ul><li>>> finverse(f) </li></ul>54
    66. 66. <ul><li>Sumatorio </li></ul><ul><li>>> symsum(f,’x’,a,b) % Si no coloco la variable ni los límites genero un sumatorio hasta x-1. </li></ul><ul><li>Transformación numérica </li></ul><ul><li>Phi=‘1+sqrt(5/2)’ </li></ul><ul><li>>> numeric(phi) </li></ul><ul><li>Observación: sin convertir la función solo puedo evaluarla </li></ul><ul><li>>> eval(phi) </li></ul><ul><li>Diferenciación </li></ul><ul><li>>> diff(f,’x’,n) % Indico o no respecto a qe variable derivo </li></ul><ul><li>% n orden de la derivada por default (1) </li></ul><ul><li>Integración </li></ul><ul><li>>> int(f,’x’,’m’,’n’) % Indico o no respecto a qe variable integro </li></ul><ul><li> % m, n limites de a integral definida. </li></ul>55
    67. 67. 15. Aplicaciones <ul><li>Optimización: </li></ul><ul><li>Programación Lineal </li></ul>56 3 4 8 4 7 **Archivo Call Simplex** X1 X2
    68. 68. Métodos de Puntos Interiores: 4 8 4 7 X1 X2 59 Archivos: -Pto. Interior *

    ×