calculo y algebra con matlab

Upload: jorge-luis-chahuasoncco-papel

Post on 13-Jul-2015

326 views

Category:

Documents


1 download

TRANSCRIPT

Matlab: Bloque 2 Ejemplos de Clculo y lgebra

2007-2008

MASTER EN INGENIERA FINANCIERA MASTER EN INGENIERIA FINANCIERA

ndice1. 2. 3. 4. 5. Vectores y Matrices Determinantes y Sistemas de Ecuaciones Lineales Diagonalizacin y Descomposicin Matricial Funciones de una Variable Lmites y Clculo Diferencial. Aplicacin a funciones de una o varias Variables

MASTER EN INGENIERIA FINANCIERA

1. Vectores y Matrices

MASTER DE INGENIERIA FINANCIERA

IntroduccinLos contenidos relativos al tratamiento de vectores y matrices se estudiaron en el bloque primero por lo que en este apartado se propondrn algunos puntos ms especfico del manejo que pueden ser interesantes. Se recomienda al alumno repasar los siguientes conceptos sobre vectores y matrices: Definicin de vectores y matrices con matlab. Manejo de los rangos. Matrices predefinidas Operadores para matrices.

MASTER EN INGENIERIA FINANCIERA

Operaciones sobre Vectores y MatricesPara conocer las dimensiones de una matriz se utiliza el comando size. Devuelve una matriz con el nmero de filas por columnas: A=[1,2,3;4,5,6] B=ones(2) size(A) size(B) A*B Se comprueba que para algunas operaciones con matrices las dimensiones tienen que ser compatibles. A(:,1:2)*B Seleccionando las primeras dos columnas de A se puede operar con la matriz cuadrada B.

MASTER EN INGENIERIA FINANCIERA

Borrado de Elementos de una MatrizEn Matlab se pueden crear matrices vacas o de dimensin 0 mediante [], es decir A=[] es una matriz vaca de dimensin 0, pero existente. Las matrices vacas se pueden utilizar para borrar filas o columnas de otras matrices mediante la sustitucin de sus valores de las filas o columnas por una matriz vaca que ocupe su lugar. En el siguiente ejemplo se va a generar una matriz de 5x5 y se va a eliminar la cuarta y quinta columna:A=rand(5) A(:,4:5)=[ ]

MASTER EN INGENIERIA FINANCIERA

Matrices y Vectores CompuestosSi se necesita crear un vector con una sucesin de nmeros y aplicarles una funcin, se ha de crear el vector con los nmeros de base y luego aplicar la operacin elemento a elemento. A=1:10 B=A.^3-A.^2+1 Resultado: A=1 2 B=1 5

3 19

4 5 6 7 8 9 10 49 101 181 295 449 649 901

Utilizando las matrices predefinidas, as como las propiedades de una matriz, se pueden generar cualquier tipo de matriz interesante que requiera de algn tipo de propiedad.

MASTER EN INGENIERIA FINANCIERA

Producto Escalar y Producto VectorialEl clculo del producto escalar y vectorial es fundamental a la hora de trabajar con matrices. En Matlab tiene sus funciones especficas: Producto escalar dot a = [1 2 3]; b = [4 5 6]; c = dot(a,b) ans = 32 a = [1 2 3]; b = [4 5 6]; c = cross(a,b) ans = -3 6 -3

Producto vectorial cross

MASTER EN INGENIERIA FINANCIERA

2. Determinantes y Sistemas de Ecuaciones Lineales

MASTER DE INGENIERIA FINANCIERA

DeterminantesEl clculo del determinante de una matriz en Matlab se realiza con el comando det, pasando como parmetro la variable en la que est almacenada la matriz. A continuacin se muestra un ejemplo A=rand(4) det(A)A= 0.4218 0.9157 0.7922 0.9595 0.6557 0.0357 0.8491 0.9340 0.6787 0.7577 0.7431 0.3922 0.6555 0.1712 0.7060 0.0318

ans = -0.0961

det(A(:,1:3))

Error en la dimensin de la matriz (1x3)

Para el clculo del determinante se requiere una matriz cuadrada, tal y como indica el fallo en la ltima instruccin.

MASTER EN INGENIERIA FINANCIERA

Matriz Inversa y TranspuestaComo ya se estudi en el primer tema, el clculo de una matriz inversa se realiza mediante el comando inv: A=rand(4) B=inv(A) C=A*B det(C) Una matriz por su inversa genera la matriz identidad, cuyo determinante es 1, tal y como queda reflejado en la matriz C. Para el clculo de la Transpuesta se emplea la funcin transpose(matriz). Ambas operaciones son fundamentales en el manejo de las matrices.

MASTER EN INGENIERIA FINANCIERA

Matriz Inversa

MASTER EN INGENIERIA FINANCIERA

Sistemas de Ecuaciones LinealesMediante la funcin rank se puede calcular el rango de una matriz, que es de mxima utilidad en la discusin de la resolucin de los sistemas de ecuaciones lineales: a=1:4 A=[a;a.*2;9:12] rank(A) ans=2 El rango de la matriz es 2 puesto que la segunda fila es linealmente dependiente de la primera. En el siguiente ejemplo se ver como el rango de la matriz coincide con la dimensin: A=rand(3) rank(A) ans=3 Al ser nmeros aleatorios no existe dependencia lineal alguna y el rango es el mximo.

MASTER EN INGENIERIA FINANCIERA

Resolucin de Sistemas LinealesMatlab permite la resolucin de ecuaciones lineales mediante la funcin linsolver que tiene como parmetros (A,B), donde Ax=B. De un modo ms general tambin se puede emplear la divisin A/B: A=[3,2,1;2,2,4;-1,1/2,-1] B=[1;-2;0] linsolve(A,B) A\B Linsolve es ms eficiente que la divisin porque admite parmetros para indicar las caractersticas especiales de las matrices (diagonal)

MASTER EN INGENIERIA FINANCIERA

Resolucin de Sistemas Lineales HomogneosLos sistemas homogneos tienen como soluciones vectores que satisfacen las ecuaciones, adems de la solucin trivial que es 0. La resolucin de estos sistemas se lleva a cabo con la funcin null, que a partir de la matriz de coeficientes calcula una base ortonormal de vectores que satisfacen las ecuaciones. Ejecutar: A=[1,3,1;1,0,2;0,3,-1] B=[0;0;0] x=null(A) norm(x) ans=1 Se puede ver que el resultado (-0.8847,0.1474,0.4423) es un vector de mdulo 1. El mdulo de un vector se calcula con norm(x)

MASTER EN INGENIERIA FINANCIERA

3. Diagonalizacin y Descomposicin Matricial

MASTER DE INGENIERIA FINANCIERA

DiagonalizacinMatlab permite obtener los autovectores y autovalores de una matriz por medio del comando eig(A), donde A es una Matriz. Como resultado devuelve dos matrices, la primera para los autovectores y la segunda con los autovalores. En el siguiente ejemplo se comprobar la propiedad AP=P, que ya fue estudiada en teora: Ejecutar: A=hilb(5) [autovectores,autovalores]=eig(A) P=autovectores diagonal=inv(P)*A*P A*P P*diagonal Se puede comprobar que ambos resultados son similares, cumplindose que AP=P. Adems es la matriz de autovalores de la matriz A.

MASTER EN INGENIERIA FINANCIERA

Diagonalizacin

MASTER EN INGENIERIA FINANCIERA

Descomposicin Espectral de JordanEn Matlab tambin existe la descomposicin espectral de Jordan para las matrices cuadradas. Se accede a esta operacin mediante el comando jordan(matriz). Se obtendr una matriz con los autovectores y otra con los autovalores. En el siguiente ejemplo se va a comprobar la propiedad A=PJP-1, siendo J los autovalores de Jordan y P los autovectores correspondientes: Ejecutar: A=hilb(5) [autovectores,autovalores]=jordan(A) B=autovectores*autovalores*inv(autovectores) A B Se puede ver cmo A=B, porque B=PJP-1

MASTER EN INGENIERIA FINANCIERA

Descomposicin Espectral de Jordan

MASTER EN INGENIERIA FINANCIERA

4. Funciones de una Variable

MASTER DE INGENIERIA FINANCIERA

Variables y FuncionesAl igual que otros entornos de programacin o programas matemticos, en Matlab se puede asignar un valor a una variable. Las variables son los lugares en la memoria del entorno del programa donde se almacena la informacin. Ejecutar: clear %%Limpia las variables del sistema x=2 X^5 Error, variable X no definida! x^5 resultado: 32 Hay que recordar que Matlab es case sensitive, es decir, la variable x no es lo mismo que la variable X. Mediante el comando clear, se limpiarn todas las variables de memoria que existan (se puede ver reflejado en el workspace)

MASTER EN INGENIERIA FINANCIERA

Variables y FuncionesSe pueden eliminar variables especficas mediante el comando clear variable, donde variable se sustituye por le nombre de la variable a eliminar. Ejecutar:x=3 y=2 clear y

En el workspace quedar solamente la variable x, habindose eliminado la y. Es til cuando se trabaja con grandes matrices u otros objetos que ocupan una gran cantidad de memoria y se desean eliminar. MASTER EN INGENIERIA FINANCIERA

Clculo Simblico en MatlabMatlab est ms orientado a la programacin que Mathematica. El concepto de funcin es similar al de lenguajes de programacin de alto nivel como C o Java, y est alejado del concepto de funcin de clculo. La definicin de funciones en Matlab se tratar en temas venideros, aunque en este tema se dar un adelanto. En Matlab se crean funciones que procesan datos, como por ejemplo una funcin que calcule la potencia de un nmero o que procese la informacin de una matriz. El clculo simblico como tal (clculo de lmites, derivadas, integracin), no se puede llevar a cabo de forma directa con la funcionalidad disponible en la instalacin estndar de Matlab. La potencia de Matlab radica en las toolbox. Existen toolbox especficas para el clculo simblico como por ejemplo el Symbolic Math Toolbox, que dispone de funciones para realizar cualquier tipo de operacin simblica.

MASTER EN INGENIERIA FINANCIERA

Representacin de FuncionesEn adelante se tratarn las funciones de clculo como funciones de Matlab, aunque como se ver en el apartado de clculo de lmites y derivadas no es lo ms correcto. Es posible representar funciones si se han asignado valores a las variables con anterioridad, aunque como se ha indicado, no se podrn aplicar operaciones simblicas. Como resultado se obtendr el valor de la funcin para los valores introducidos anteriormente. Por ejemplo: x=6 x.^2-1 35 El valor de la variable x es sustituido en la segunda ecuacin para dar el valor de la funcin en ese punto (6).

MASTER EN INGENIERIA FINANCIERA

Representacin de FuncionesSi se desea dibujar la funcin, tal y como se estudi en el primer tema, es posible asignar a la variable x un vector de valores, de manera que se asigne un resultado a cada uno de estos valores. Posteriormente se puede representar mediante la orden plot. Ejemplo: x=-5:1:5; abs(x) ans = 5 4 3 2 1 0 1 2 3 4 5

Se obtiene un vector con los resultados de aplicar al primer vector (x) la funcin. Posteriormente se puede representar: plot(x,abs(x))

MASTER EN INGENIERIA FINANCIERA

Representacin de FuncionesSe pueden definir funciones propias que se aadirn a las disponibles de Matlab. Se trata de definir funciones sencillas Se tiene que crear un archivo .m por cada una de las nuevas funciones, y se tiene que guardar en el directorio en el que estemos ejecutando. Ejemplo: %Funcin que eleva x a la potencia de y function resultado = potencia (x,y) resultado=x.^y; Como resultado podremos utilizar la funcin de este modo: potencia(2,3) tambin x=2 y=3 Potencia(x,y)

MASTER EN INGENIERIA FINANCIERA

Definicin de FuncionesSe intentar imitar en este punto las funciones matemtica con funciones de Matlab. Recordar que se trata de funciones de Matlab y NO SON FUNCIONES MATEMTICAS, por lo que no se puede operar con ellas (sumar, componer, integrar,) La sintxis para la definicin de funciones es la siguiente: function resultado = nombre_funcin (par1,par2,) Function: palabra reservada resultado: es la variable ltima a la que se asigna el resultado de la funcin. nombre_funcin : nombre por el que se invocar a la funcin. par1,par2,: parmetros de la funcin. Cada funcin debe almacenarse en un archivo, y un archivo slo puede contener una funcin. El nombre del archivo coincide con el nombre de la funcin. En el ejemplo anterior en el que se defina la funcin potencia, el nombre de fichero ha de ser potencia.m. MASTER EN INGENIERIA FINANCIERA

Definicin de FuncionesA todos los efectos, estas funciones son como las definidas en el sistema, como por ejemplo: sin(x), cos(x),abs(x), de modo que pueden representarse tal y como hemos visto anteriormente. Para la funcin de ejemplo potencia (x,y), se puede definir un vector de valores para la variable x un valor fijo para la variable y. Se representar mediante la instruccin plot: x=-5:0.1:5; y=2 plot(x,potencia(x,y))

MASTER EN INGENIERIA FINANCIERA

Representacin de algunos tipos de funcionesFuncin lineal: x=-5:0.1:5; plot(x,2*x+4)

Funcin cuadrtica: x=-5:0.1:5; plot(x,x.^2-x-5)

MASTER EN INGENIERIA FINANCIERA

Representacin de algunos tipos de funcionesFuncin potencial: x=0:0.01:5; plot(x,x.^0.3)

Funcin exponencial: x=-5:0.01:5; plot(x,exp(x)+3)

MASTER EN INGENIERIA FINANCIERA

Representacin de algunos tipos de funcionesFuncin trigonomtrica: x=-5:0.01:5; plot(x,sin(2.*x))

MASTER EN INGENIERIA FINANCIERA

5. Lmites y Clculo Diferencial Aplicacin a Funciones de una o varias Variables

MASTER DE INGENIERIA FINANCIERA

IntroduccinComo se ha indicado en las transparencias anteriores, entre las funcionalidades bsicas de Matlab no se encuentra el clculo simblico de funciones, por lo que operaciones como el clculo de lmites, derivacin o integracin no es posible realizarlas. Para poder utilizar este tipo de clculo simblico es necesario utilizar el toolbox Symbolic Math Toolbox, que permitir operar de forma simblica y no con valores concretos de las funciones. En las siguientes transparencias se lleva a cabo una breve introduccin al clculo de lmites y derivadas utilizando este toolbox.

MASTER EN INGENIERIA FINANCIERA

Clculo SimblicoEn primer lugar se deben construir los objetos simblicos, que sern las variables que Matlab, a travs del toolbox, considerar objetos simblicos. Para ello se emplea la instruccin syms que permite definir varios objetos en una sola instruccin: syms x y real Esta instruccin declara las variables x y como objetos simblicos de tipo real.

MASTER EN INGENIERIA FINANCIERA

Clculo SimblicoEl siguiente paso consiste en declarar las funciones que se van a utilizar, teniendo en cuenta que las variables empleadas han sido declaradas con anterioridad como objetos simblicos, utilizando sym o syms en el caso de definir varias a la vez. Ejemplo:syms x y real f=x.^2-4

A partir de este instante f es una funcin simblica diferente a las funciones definidas con anterioridad en Matlab, es decir, es una funcin que se puede integrar, derivar, etc. No es una funcin del lenguaje. Adems de operar con variables se puede emplear el clculo simblico para operar, por ejemplo, con fracciones:3 ./ 4 ans=0.7500

sym(3)/sym(4) ans=

MASTER EN INGENIERIA FINANCIERA

Clculo SimblicoSi se desea calcular el valor de la funcin, es necesario dar un valor a los objetos simblicos o variables. En la funcin anterior, f=x.^2-4, se necesita dar al smbolo x un valor, por ejemplo 3. Esto se realiza con el comando subs: syms x real f=x.^2-4 subs(f,4) Ans=12

Si la funcin depende de varias variables, como por ejemplo en f=x.^2-y+3, se puede indicar que se substituya cada smbolo por un valor en concreto. Por ejemplo: syms x y real f=x.^2-y+3 subs(f,x,4) ans: 19-y subs(f,y,3) ans: x^2 subs(subs(f,y,3),x,4) ans: 16

MASTER EN INGENIERIA FINANCIERA

Clculo SimblicoEl clculo simblico tambin se puede aplicar a las matrices:syms a b c A = [a c b; b c a; c a b] B=magic(3) A-B

El resultado de la resta de matrices queda expresado en forma simblica.

MASTER EN INGENIERIA FINANCIERA

LmitesUna vez que se tienen las variables y funciones simblicas definidas, se pueden emplear las funciones de clculo de lmites, integracin y derivacin para operar de forma simblica. El clculo de lmites se realiza mediante la instruccin limit, que recibe por parmetro la funcin, la variable y el valor del lmite. Tambin se puede indicar si el lmite es por la izquierda o por la derecha. limit(F,x,a) limit(F,a) limit(F) limit(F,x,a,'right') limit(F,x,a,'left')

MASTER EN INGENIERIA FINANCIERA

LmitesPor ejemplo, el clculo del lmite de la funcion 1/x cuando x tiende a 0 se realiza de la siguiente forma, si se quiere analizar las proximidades del punto crtico: x=sim(x) f=1/x limit(f) ans:NaN limit(f,x,0,'right') ans: Inf limit(f,x,0,'left') ans: -inf Se puede dibujar la grfica mediante la instruccin ezplot(f), que se emplea para representar funciones simblicas.

MASTER EN INGENIERIA FINANCIERA

DerivacinEl clculo de derivadas de funciones simblicas se realiza mediante la funcin diff que admite como parmetros, adems de la funcin a derivar, la variable de derivacin y el nmero de veces que se puede derivar. Un sencillo ejemplo: f=x^5-3 diff(f) ans: 5*x^4 diff(f,3) ans:60*x^2 diff(f,5) ans: 120 Para derivadas respecto de otras variables se puede emplear otro parmetro que indica respecto a qu variable se realiza la derivacin: f=x^5-x^2*y^3+2 diff(f,y) ans: -3*x^2*y^2 diff(f,x) ans: 5*x^4-2*x*y^3

MASTER EN INGENIERIA FINANCIERA

IntegracinFinalmente la integracin se lleva a cabo mediante la funcin int que admite como parmetros, adems de la funcin a integrar, la variable y el intervalo de integracin: f=x^5+2 int(f) ans: 1/6*x^6+2*x inf(f,1,2) ans: 25/2 Como la derivacin, admite integrar respecto a alguna variable en concreto si la funcin as lo indica: f=x^5+y^2 int(f) ans: 1/6*x^6+x*y^2 int(f,x,1,2) ans: 21/2+y^2 int(f,y,1,2) ans: x^5+7/3

MASTER EN INGENIERIA FINANCIERA