Una introducción a MATLAB



Documentos relacionados
Práctica 1ª: Introducción a Matlab. 1er curso de Ingeniería Industrial: Ingeniería de Control

Introducción a Matlab.

Tema 7: Programación con Matlab

Tema 4: Empezando a trabajar con ficheros.m

Comenzando con MATLAB

Álgebra Lineal Tutorial básico de MATLAB

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

Práctica 3: Funciones

Algorítmica y Lenguajes de Programación. MATLAB (i)

>> % suma de dos números reales, el resultado se asigna a ans

Tema 3. Espacios vectoriales

1. Visualización de datos con Octave

Subespacios vectoriales en R n

Tema 3: Vectores y matrices. Conceptos básicos

Introducción a la Programación en MATLAB

Espacios vectoriales y aplicaciones lineales.

2º ITT SISTEMAS ELECTRÓNICOS 2º ITT SISTEMAS DE TELECOMUNICACIÓN 3º INGENIERÍA DE TELECOMUNICACIÓN AUTÓMATAS Y SISTEMAS DE CONTROL

Estudio de ceros de ecuaciones funcionales

PROBLEMA [1.5 puntos] Obtener la ecuación de la recta tangente en el punto ( 2, 1) a la curva dada implícitamente por y 3 +3y 2 = x 4 3x 2.

Tema 2. Espacios Vectoriales Introducción

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES

MATLAB en 30 minutos

Práctica 1: Introducción al entorno de trabajo de MATLAB *

Ejemplo: Resolvemos Sin solución. O siempre es positiva o siempre es negativa. Damos un valor cualquiera Siempre + D(f) =

Introducción a MATLAB

1. Ecuaciones no lineales

Definición Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.

Características básicas de Matlab

facilidades para cálculo matemático y Dispone de toolboxes especializados: Control Systems, Neural Netword, Optimization, etc.

Proyecto de Innovación Docente: Guía multimedia para la elaboración de un modelo econométrico.

4. Sucesiones y funciones

Definición de vectores

Anexo 1: Demostraciones

Matrices Invertibles y Elementos de Álgebra Matricial

CAPÍTULO III. FUNCIONES

Cálculo Simbólico también es posible con GeoGebra

Introducción a MATLAB/ OCTAVE. Fundamentos Físicos de la Informática, 2006

Matemáticas I: Hoja 3 Espacios vectoriales y subespacios vectoriales

DIRECTRICES Y ORIENTACIONES GENERALES PARA LAS PRUEBAS DE ACCESO A LA UNIVERSIDAD

De aquí sale el proyecto MACsyma (MAC s SYmbolic MAnipulator)

Algunos comandos para tener en cuenta en las operaciones son: who enumera todas las variables usadas hasta el momento.

1. Iteraciones de aplicaciones discretas

RELACIONES DE RECURRENCIA

Muchas veces hemos visto un juego de billar y no nos percatamos de los movimientos de las bolas (ver gráfico 8). Gráfico 8

Qué son los monomios?

Para la oblicua hacemos lo mismo, calculamos el límite en el menos infinito : = lim. 1 ( ) = = lim

Aplicaciones Lineales

Transformaciones canónicas

8. ESPACIOS VECTORIALES Y APLICACIONES LINEALES.

Herramientas computacionales para la matemática MATLAB: Arreglos

Cómo?: Resolviendo el sistema lineal homógeneo que satisfacen las componentes de cualquier vector de S. x4 = x 1 x 3 = x 2 x 1

Trabajando en la ventana de comandos en el programa gretl.

INTRODUCCION A LA PROGRAMACION DE PLC

Se introduce en la Ventana de Álgebra la expresión cuya primitiva queremos calcular. Con la expresión seleccionada

LÍMITES Y CONTINUIDAD DE FUNCIONES

LibreOffice - curso avanzado

MATEMÁTICAS para estudiantes de primer curso de facultades y escuelas técnicas

Introducción a Matlab

CURSO BÁSICO DE MATEMÁTICAS PARA ESTUDIANTES DE ECONÓMICAS Y EMPRESARIALES

IES Fco Ayala de Granada Junio de 2012 (Específico Modelo 1) Solución Germán-Jesús Rubio Luna

Aproximación local. Plano tangente. Derivadas parciales.

1. INVERSA DE UNA MATRIZ REGULAR

Matlab para Análisis Dinámico de Sistemas

Matemáticas I: Hoja 2 Cálculo matricial y sistemas de ecuaciones lineales

a < b y se lee "a es menor que b" (desigualdad estricta) a > b y se lee "a es mayor que b" (desigualdad estricta)

Introducción al Cálculo Simbólico a través de Maple

Complemento Microsoft Mathematics

b) Para encontrar los intervalos de crecimiento y decrecimiento, hay que derivar la función. Como que se trata de un cociente, aplicamos la fórmula:

1. SOLUCIONES A LOS EJERCICIOS PROPUESTOS

Ecuaciones de primer grado con dos incógnitas

TEOREMA DE DETERMINACIÓN DE APLICACIONES LINEALES

Matrices invertibles. La inversa de una matriz

OPERACIONES ELEMENTALES CON VECTORES

Matrices equivalentes. El método de Gauss

Presentaciones. Con el estudio de esta Unidad pretendemos alcanzar los siguientes objetivos:

Tutorial Básico de vbscript

Práctica 1 - Pista de Carreras Programación II

1.4.- D E S I G U A L D A D E S

IES Fco Ayala de Granada Sobrantes de 2011 ( Modelo 3) Solución Germán-Jesús Rubio Luna

4 APLICACIONES LINEALES. DIAGONALIZACIÓN

Matemáticas I: Hoja 4 Aplicaciones lineales y diagonalización

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS

Estructuras de Control - Diagrama de Flujo

Cálculo científico y técnico con HP49g/49g+/48gII/50g Módulo 3: Aplicaciones Tema 3.6 Extremos relativos de funciones de 2 variables

Funciones, x, y, gráficos

Manual de Introducción a SIMULINK

Tema 3: Aplicaciones de la diagonalización

M a t e m á t i c a s I I 1

Capitán de fragata ingeniero AGUSTÍN E. GONZÁLEZ MORALES. ÁLGEBRA PARA INGENIEROS (Solucionario)

MATEMÁTICAS para estudiantes de primer curso de facultades y escuelas técnicas

Repaso de matrices, determinantes y sistemas de ecuaciones lineales

x y 8000 x + y a) La región factible asociada a las restricciones anteriores es la siguiente: Pedro Castro Ortega lasmatematicas.

Tema 2 Límites de Funciones

QUÉ ES UN NÚMERO DECIMAL?

GEOMETRÍA ANALÍTICA 2º Curso de Bachillerato 22 de mayo de 2008

Actividades con GeoGebra

E 1 E 2 E 2 E 3 E 4 E 5 2E 4

Curso PHP Módulo 1 R-Luis

Transcripción:

Universidad de Castilla-La Mancha ETSI Industriales Una introducción a MATLAB Curso 04/05 1. Introducción. MATLAB es un programa de cálculo científico de gran versatilidad y facilidad de uso con un gran número de herramientas orientadas a una amplia diversidad de aplicaciones. Una vez iniciado MATLAB, podremos acceder a un completo tutorial de ayuda mediante el comando helpdesk. MATLAB proporciona también un conjunto de demostraciones de algunas de sus posibilidades accesible mediante el comando demo. Por su parte, en cualquier momento podremos acceder a la ayuda inmediata respecto de cualquier función mediante la orden help función. El elemento básico en MATLAB son las matrices, que son definidas mediante corchetes. Así >> A=[1 2 3 4 5 6] A = 1 2 3 4 5 6 define la matriz fila, mientras que la orden >> a=[1 2 3; 4 5 6] A = ( 1 2 3 4 5 6 ) a = 1 2 3 4 5 6 define la matriz con dos filas a = 1 2 3 4 5 6 Obsérvese que el operador ; separa una fila de la siguiente. Es importante destacar que MATLAB distingue entre mayúsculas y minúsculas, siendo por tanto diferentes a de A.

El operador ; al final de una sentencia hace que MATLAB omita la salida. Por otra parte, si no asignamos un nombre a la matriz definida, ésta se asigna de forma automática a la variable ans, por ejemplo, >> [1 2 3; 2 4 5] 1 2 3 2 4 5 Una de las características de MATLAB es la facilidad con la que opera con matrices, así el operador define la matriz traspuesta de la dada, >> b=a b = 1 4 2 5 3 6 La suma entre una matriz y un escalar produce lo siguiente, >> a+2 3 4 5 6 7 8 pero la orden >> a+b??? Error using ==> + Matrix dimensions must agree. da lugar a error pues las dimensiones de las matrices no son acordes. También es posible definir submatrices a través del operador : del siguiente modo

>> c=a(1:2,2:3) c = 2 3 5 6 La multiplicación de matrices se lleva a cabo con el operador *, siempre que las dimensiones sean compatibles. Así, >> a=[1 2 3; 4 5 6]; >> b=[2 3 1] ; >> a*b 11 29 >> b*a??? Error using ==> * Inner matrix dimensions must agree. También se pueden multiplicar dos matrices elemento a elemento usando el operador.*. En el siguiente ejemplo, el comando eye(n) define la matriz identidad de orden n: >> c=a *a c = 17 22 27 22 29 36 27 36 45 >> d=eye(3) d = 1 0 0

0 1 0 0 0 1 Nótese a continuación la diferencia entre el operador multiplicación, con y sin. >> c*d 17 22 27 22 29 36 27 36 45 >> c.*d 17 0 0 0 29 0 0 0 45 Del mismo modo actúan los operadores./ y.^, que dividen o elevan cada uno de los elementos de la matriz. Véanse los ejemplos, >> c^2 1502 1984 2466 1984 2621 3258 2466 3258 4050 >> c.^2 289 484 729 484 841 1296 729 1296 2025

el primero de los cuales calcula la multiplicación de c consigo misma, mientras que el segundo calcula el cuadrado de cada elemento de c. 1.1. Álgebra elemental. MATLAB dispone de diversos comandos para realizar distintos cálculos con matrices. El comando inv calcula la inversa de una matriz, siempre que ésta exista, mientras que det calcula su determinate: >> a=[1 0-1; 2 0-1; -1 1 2]; >> inv(a) -1 1 0 3-1 1-2 1 0 >> det(a) -1 Por su parte, el comando eig proporciona los autovalores de una matriz, y poly da como resultado los coeficientes del polinomio característico. Por ejemplo, >> a=[1 0-1; 2 1-1; -1 1 2]; >> eig(a) -0.0000 2.0000 + 1.0000i 2.0000-1.0000i donde, como puede observarse, aparecen dos autovalores complejos, 2 + i, 2 i, y el autovalor 0. Si hacemos, >> poly(a)

1.0000-4.0000 5.0000 0.0000 sabremos que el polinomio característico de a viene dado por λ 3 4λ 2 + 5λ. 1.2. Gráficas sencillas. El comando plot permite dibujar una poligonal que une un conjunto de puntos definidos mediante un par de vectores. Obsérvese el siguiente ejemplo: >> x=-1:0.3:1 x = -1.0000-0.7000-0.4000-0.1000 0.2000 0.5000 0.8000 >> y=x.^2 y = 1.0000 0.4900 0.1600 0.0100 0.0400 0.2500 0.6400 en él hemos definido un vector x tomando los puntos que están entre 1 y 1 con distancia 0,3. y el vector y, calculando los cuadrados de los elementos de x. El comando plot(x,y) dibuja una poligonal uniendo los puntos del plano con primera coordenada los elementos de x y segunda coordenada los elementos de y. Entre punto y punto, MATLAB introduce una recta. La sentencia siguiente >> plot(x,y, *- ) general el dibujo mostrado en la Figura 1.1. 2. Funciones. MATLAB permite trabajar con expresiones simbólicas de funciones de forma sencilla, y realizar cálculos sobre las mismas. Para definer una función usamos el comando inline como mostramos a continuación: >> f=inline( exp(x)-x^2-3*x ) f = Inline function: f(x) = exp(x)-x^2-3*x

Figura 1.1. Ejemplo del comando plot Para calcular el valor de esta función en un punto a basta escribir f(a), mientras que es posible esbozar su gráfica en un intervalo [a, b] con la sentencia fplot(f,[a b]). Por otro lado, el comando fzero(f,a) resuelve la ecuación f(x) = 0, en el punto más cercano al punto a. Si en lugar de dar el punto a damos un intervalo donde se encuentra una raíz, calcula ésta: >> fzero(f,[0,1]) 0.4568 3. El paquete simbólico. Una de los paquetes más útiles para el cálculo con MAT- LAB lo constituye el paquete simbólico o Symbolic Math Toolbox, que permite realizar cálculo simbólico avanzado, es decir, se puede prescindir de asignar un número a una variable y tratarla como una constante genérica. Por ejemplo, si tratamos de calcular el seno de una variable no numérica: >> y=sin(x)??? Undefined function or variable x. obtenemos un error, pues MATLAB no conoce el valor de x. Para declarar una variable como simbólica usamos la expresión >> syms x Ahora podemos evaluar expresiones que contengan a esta variable a través del comando simplify.

>> y=sin(x); z=cos(x); >> simplify(y^2+z^2) 1 También es posible definir matrices simbólicas del siguiente modo >> M=sym( [a b; c d] ) M = [ a, b] [ c, d] y ahora calcular, por ejemplo su determinante, y polinomio característico: >> det(m), poly(m) a*d-b*c x^2-x*d-a*x+a*d-b*c Con el paquete simbólico podemos calcular límites, derivadas, integrales impropias, etc. A continuación exponemos diversos ejemplos de estos cálculos. Para calcular el límite >> limit(sin(x)/x,0) lím x 0 sen(x), x 1

o un límite en infinito: >> syms n lím n >> limit((n^3+3*n^2-2*n)/(3*n^3-1),inf) n 3 + 3n 2 2n, 3n 3 1 1/3 También es posible definir expresiones simbólicas sin necesidad de declarar la variable previamente, >> f= exp(z^3)+sin(z)^2 f = exp(z^3)+sin(z)^2 y después es posible, por ejemplo, derivar: >> diff(f) 3*z^2*exp(z^3)+2*sin(z)*cos(z) En algunos casos la lectura de la salida que proporciona MATLAB no es muy legible. El comando pretty genera en ocasiones una visualización más usual. Si nuestra expresión depende de constantes o más variables, es posible especificar la variable de derivación del siguiente modo: >> f= a*exp(a+x)/sin(a*x) f = a*exp(a+x)/sin(a*x) >> diff(f, a )

exp(a+x)/sin(a*x)+a*exp(a+x)/sin(a*x)-a*exp(a+x)/sin(a*x)^2*cos(a*x)*x >> pretty(ans) exp(a + x) a exp(a + x) a exp(a + x) cos(a x) x ---------- + ------------ - ----------------------- sin(a x) sin(a x) 2 sin(a x) La integración se lleva a cabo con el comando int. Es posible hacer integrales definidas o indefinidas: >> f= a*exp(a*x) ; >> int(f, x ) exp(a*x) >> int(f, x,0,1) exp(a)-1 Es importante observar que el cálculo de una integral definida mediante la última sentencia es un cálculo simbólico, de manera que integrales como la siguiente >> int( exp(x^2), x,0,1) -1/2*i*erf(i)*pi^(1/2) no tienen mucho sentido, pues el resultado viene expresado mediante una función extraña, ya que no se conoce una primitiva de la función e x2. Sin embargo, si acudimos al análisis numérico, MATLAB proporciona varios comandos que permiten obtener aproximaciones numéricas de cualquier integral definida. Por ejemplo, para usar la regla de Simpson tenemos el comando quad que puede actuar sobre funciones o expresiones simbólicas

>> f=inline( exp(x.^2) ); >> quad(f,0,1) 1.4627 >> quad( x.*exp(x),0,1) 1.0000 Nótese en ambos casos la necesidad de usar los operadores de multiplicación o exponenciación de la forma.* ó.^. 4. Programación en MATLAB. Para finalizar con esta breve introducción a MAT- LAB es necesario hablar de los scripts o m-files que nos permiten elaborar programas para ejecutar en el entorno de MATLAB. Como ejemplo presentamos a continuación una pequeña implementación del método de Newton: function y = newton(f,x0) % f es una cadena de caracteres % x0 es el punto inicial df=diff(f); xk=1; x=0; while (abs(xk-x)>1.e-6) x=x0; xk = x0 - eval(f)/eval(df); x0=xk; end y=xk; El diseño del programa permite introducir tanto la función cuya raíz queremos encontrar como el punto para iniciar el algoritmo. Dado que introducimos parámetros en la ejecución hemos de formular el m-file como una function, tal y como aparece en la primera línea. El dato de salida es la variable y, el nombre del programa (que debe coincidir con el nombre del fichero m-file) es newton que depende de los parámetros de entrada f, que debe ser una cadena de caracteres y x0 un punto inicial. Las líneas siguientes, comenzando con % son comentarios.

El resto de las líneas son asignaciones y un bucle en el que se itera mediante el método de Newton hasta que la diferencia entre dos iteraciones consecutivas es menor que 10 6. Para poder ejecutar este programa debemos editarlo (MATLAB trae consigo un editor incorporado) y guardarlo como un fichero con extensión.m. Después, bastará que el fichero se encuentre en algún lugar en el que MATLAB lo pueda encontrar (en el path), para que pueda se ejecutado del siguiente modo: >> newton( exp(x)-x*sin(x),0) -0.7271