expresiones algebraicas con matlab

13
Expresiones algebraicas (Math symbolic) En esta sección examinamos las capacidades de cálculo de MATLAB con expresiones algebraicas (Math Symbolic). Diferenciación e integración de funciones, raíces de una ecuación o de un sistema de ecuaciones, transformada de Laplace, etc. Es importante que los estudiantes de ingeniería se habitúen a manejar este tipo de herramientas que les pueden ser muy útiles en las asignaturas específicas del Grado, les puede ahorrar mucho tiempo para encontrar la solución de una ecuación diferencial, en la integración de funciones, en las operaciones con expresiones algebraicas complicadas, etc.. A nivel de primer curso, les pueden servir al menos, para comprobar las soluciones a los ejercicios propuestos por los profesores de de las asignaturas de Algebra o Cálculo. Una de las aplicaciones más importantes (de la transformada de Laplace) la podemos ver en el estudio de los sistemas oscilantes en este mismo curso. Dedicamos varias páginas al análisis de los fenómenos periódicos y no periódicos: las series de Fourier y la transformada de Fourier y su aplicación a la propagación de una onda en un medio dispersivo que es importante para comprender el concepto de velocidad de un grupo de ondas. Además MATLAB, dispone de dos herramientas: funtool y muPAD, que el lector interesado puede examinar. Contenidos

Upload: juan4201

Post on 27-Sep-2015

266 views

Category:

Documents


5 download

DESCRIPTION

algebra, matlab

TRANSCRIPT

Expresiones algebraicas (Math symbolic)

En esta seccin examinamos las capacidades de clculo de MATLAB con expresiones algebraicas (Math Symbolic). Diferenciacin e integracin de funciones, races de una ecuacin o de un sistema de ecuaciones, transformada de Laplace, etc.Es importante que los estudiantes de ingeniera se habiten a manejar este tipo de herramientas que les pueden ser muy tiles en las asignaturas especficas del Grado, les puede ahorrar mucho tiempo para encontrar la solucin de una ecuacin diferencial, en la integracin de funciones, en las operaciones con expresiones algebraicas complicadas, etc.. A nivel de primer curso, les pueden servir al menos, para comprobar las soluciones a los ejercicios propuestos por los profesores de de las asignaturas de Algebra o Clculo.Una de las aplicaciones ms importantes (de la transformada de Laplace) la podemos ver en el estudio de los sistemas oscilantes en este mismo curso. Dedicamos varias pginas al anlisis de los fenmenos peridicos y no peridicos: las series de Fourier y la transformada de Fourier y su aplicacin a la propagacin de una onda en un medio dispersivo que es importante para comprender el concepto de velocidad de un grupo de ondas.Adems MATLAB, dispone de dos herramientas: funtool y muPAD, que el lector interesado puede examinar.Contenidos Introduccin. Ecuaciones. Sistemas de ecuaciones lineales Valores y vectores propios Rectas y planos Lmites y derivadas Series. Integrales Anlisis de Fourier Ecuaciones diferenciales Sistemas de ecuaciones diferenciales lineales Polinomios y fracciones polinmicas. Transformada de LaplaceEcuaciones y sistemasEn las pginas previas, hemos hecho clculos numricos, con una precisin limitada. En estas pginas vamos a explicar cmo se utiliza la herramienta Symbolic Math Toolbox, que emplearemos para realizar clculos simblicos, es decir, transformaciones de expresiones matemticas.Las posibilidades son enormes: integracin definida e indefinida, diferenciacin, resolucin de ecuaciones diferenciales, series, lmites, clculo matricial, operaciones con polinomios, simplificacin de expresiones algebraicas. Finalmente, las expresiones algebraicas se pueden convertir en valores numricos con precisin variable.Declaracin de variables simblicasLa herramienta Symbolic Math Toolbox define un nuevo tipo de dato denominado objeto simblico, que representan a variables, expresiones y matrices.El comandosymse usa para crear objetos simblicos en MATLAB. El argumento desymes una cadena de caracteres (string) entre comillas simples. Por ejemplo,>> sym('x')>> sym('2')>> sym('1/3')Hemos creado tres objetos simblicos,xes una variable, 2 es un nmero y 1/3 es una fraccin. Vamos a apreciar la diferencia entre operar con nmeros a operar con objetos simblicos.>> sqrt(2)ans = 1.4142>> sqrt(sym('2'))ans =2^(1/2)>> 2/3+1/2ans = 1.1667>> sym('2/3')+sym('1/2')ans =7/6>> sin(pi)ans = 1.2246e-016>> sin(sym('pi'))ans =0En la ltima lnea, vemos claramente la diferencia entre los valores que devuelve el seno de .Supongamos que queremos evaluar una funcinf(x) para un determinado valor dexy=x22xx=12y=(12)22(12)>> x=sym('1-sqrt(2)');>> y=x^2-2*xy =(2^(1/2) - 1)^2 + 2*2^(1/2) - 2>> simplify(y)ans =1symnos permite crear y dar un valor inicial a una variable simblicax.Se ha creado una variable simblicaxy otra variable simblicay, tal como puede verse en la ventana Workspace. El comandosimplifyque estudiaremos ms adelante simplifica la expresin resultante.

El comandosymspermite declarar ms de una variable simblica y no precisa de comillas simples, por lo que se utilizar con mayor frecuencia.>> syms x y;>> s=x+2*y-xs =2*x>> r=sqrt(x^2+y^2);Se han creado dos variables simblicas nuevassyrtal como podemos apreciar en la ventana Workspace. Los comandoss=x+2*y+x,r=sqrt(x^2+y^2), son ejemplos de expresiones simblicas.Funciones que trabajan con expresiones simblicas.Vamos ahora a estudiar las funciones que trabajan con expresiones simblicasexpandRealiza operaciones con expresiones simblicas tal como vemos en el siguiente ejemploy=(x1)3+3x2+1>> syms x;>> y=(x-1)^3+3*x^2+1;>> expand(y)ans =x^3 + 3*xSe ha declarado una variable simblicaxconsymsy se crea una variable simblicayy otra variable simblica, por defecto,ansdonde se guarda el resultado deexpand.simplifyEn un ejemplo anterior hemos visto cmo trabaja la funcinsimplify. Ahora vamos a ver cmo simplifica una expresin algebraica.(x2x+1x1x2):(x1+1x)>> syms x;>> y=(x^2-x+1/x-1/x^2)/(x-1+1/x);>> simplify(y)ans =x - 1/x En la pgina,Sistema de ecuaciones diferenciales lineales, realizaremos largas operaciones con expresiones algebraicas, por ejemplox=80+25i1618i5e(28i)t80+25i161+8i5e(2+8i)t=x=18e2t(24cos(8t)+1338sin(8t))>> syms t;>> x=(-80+25*i)*(1-8*i)*exp((2-8*i)*t)/80-(80+25*i)*(1+8*i)*exp((2+8*i)*t)/80;>> simplify(x) ans =(exp(2*t)*(24*cos(8*t) + 133*sin(8*t)))/8Como ejercicio se sugiere, simplificar las siguientes expresiones(xy31y2)(xyy+2xxyx2xyy2)(3x+y)(x2y21)(x+yxyxyx+y)factorComo su nombre indica, factoriza una expresinPrimero vamos a probar con nmeros y a continuacin, con expresiones simblicas360=25325>> factor(360)ans = 2 2 2 3 3 5>> factor(sym('360'))ans =2^3*3^2*5 y=x82x69x4+2x2+8>> syms x;>> factor(x^8-2*x^6-9*x^4+2*x^2+8)ans =(x - 1)*(x - 2)*(x + 2)*(x + 1)*(x^2 + 2)*(x^2 + 1)subsEvala numricamente una expresin simblica, para un determinado valor de la variable simblicax.>> syms x;>> y=x^8-2*x^6-9*x^4+2*x^2+8;>> subs(y,x,2)ans = 0>> subs(y,x,-0.5)ans = 7.9102Valores que se asignan a los parmetrosa,bycpara resolver una determinada ecuacin de segundo grado. Una tabla de valores de la funciny=x2-x-6.>> syms a b c x;>> y=a*x^2+b*x+c;>> yy=subs(y,{a,b,c},{1 -1 -6})yy =x^2 - x - 6>> subs(yy,[-2:0.5:2])ans = 0 -2.2500 -4.0000 -5.2500 -6.0000 -6.2500 -6.0000 -5.2500 -4.0000Hay que tener cuidado con la funcinsubs, ya que nos puede pasar de un objeto simblico a una variable MATLAB. Los objetos simblicos aparecen claramente diferenciados de las variables en la ventana Wokspace, tal como vemos en la figura, ms abajo.>> syms a x;>> y=sqrt(a*(x-2)) y =(a*(x - 2))^(1/2)>> yy=subs(y,a,5)yy =(5*x - 10)^(1/2)>> z=subs(yy,x,3)z = 2.2361

Hemos declarado dos variables simblicasayxen la primera lnea. En la segunda,yes una nueva variable simblica que depende deayx. A la variableale damos el valor 3. En la tercera,yydepende de la variable simblicax.Sin embargo, en la cuarta lnea, asignamos axun valor 3 y la nueva variablezdeja de ser simblica, tal como vemos en la ventana Workspace y guarda el nmero decimal 2.2361 que es una aproximacin decimal de la raz cuadrada de 5.Si queremos quezsiga siendo simblica, tenemos que escribir>> z=subs(yy,x,sym('3'))z =5^(1/2)La respuesta exacta es raz cuadrada de cinco. Por tanto, tenemos que manejar con cuidado la funcinsubsy fijarnos en la ventana Wokspace de las variables.Una variable simblica puede ser sustituida por otra variable simblica. Por ejemplo, la variablexse sustituye poru+vy la variableyse sustituye poru-v.>> syms x y;>> z=x^2-y^2;>> syms u v;>> z=subs(z,{x,y},{u+v,u-v})z =(u + v)^2 - (u - v)^2>> simplify(z)ans =4*u*vsolveResuelve una ecuacin o un sistema de ecuaciones. Por ejemplo, calcular las races de la ecuacinx2+x613=0>> syms x;>> solve(x^2+x/6-1/3) ans = 1/2 -2/3Por defecto,solveiguala la expresin simblica a ceroUna forma equivalente de hacer lo mismo es la siguiente:>> eq='x^2+x/6-1/3=0';>> solve(eq)ans = 1/2 -2/3Vamos a resolver la conocida ecuacin de segundo gradoax2+bx+c=0x1,2=bb24ac2a>> syms a b c x;>> eq='a*x^2+b*x+c=0';>> solve(eq,x)ans = -(b + (b^2 - 4*a*c)^(1/2))/(2*a) -(b - (b^2 - 4*a*c)^(1/2))/(2*a) Hemos aadido un segundo argumento asolvepara indicarle que deber resolver la ecuacin de segundo grado respecto de la variable simblicax, que previamente hemos declarado consyms.Resolver el sistema de dos ecuaciones con dos incgnitas{3x+2y=1xy=2>> syms x y;>> eq1='3*x+2*y=-1';>> eq2='x-y=2';>> [x1 y1]=solve(eq1,eq2,x,y)x1 =3/5y1 =-7/5Resolvemos el sistema de dos ecuaciones con dos incgnitas{x2+y2=2x+y=1x1,2=132y1,2=132>> syms x y;>> eq1='x^2+y^2=2';>> eq2='x+y=1';>> [x1 y1]=solve(eq1,eq2)x1 = 3^(1/2)/2 + 1/2 1/2 - 3^(1/2)/2y1 = 1/2 - 3^(1/2)/2 3^(1/2)/2 + 1/2Resolucin de un sistema de ecuaciones linealesEn la pginaMatricesya hemos resuelto sistemas lineales de ecuaciones, mediante el operador divisin por la izquierda, y hemos establecido los criterios que determinan si un sistema es compatible (determinado, indeterminado) o incompatible. En esta seccin vamos a clasificar el sistemaax+y+z=ax+ay+z=a2x+y+az=a3segn los valores de un parmetroay calcular las soluciones para los valores deaque hacen el sistema compatible.Calculamos el determinante de la matriz de los coeficientesAA=a111a111ab=aa2a3Ab=a111a111aaa2a3>> syms a;>> A=[a 1 1; 1 a 1; 1 1 a];>> b=[a; a^2; a^3];>> Ab=[A b]>> deter=det(A)deter =a^3 - 3*a + 2>> solve(deter)ans = 1 1 -2 >> factor(deter)ans =(a + 2)*(a - 1)^2El determinante de la matriz se hace cero paraa=-2 ya=1, resolviendo la ecuacina3-3a+2=0, mediantesolveo bien, transformando el polinomio en producto de factores mediante la funcinfactor.Estudiemos el sistema para los distintos casos:1. Paraa=-2Obtenemos una matrizA_pque guarda el valor de los elementos de la matrizAparaa=-2, calculamos el rango deA_pmedianterank.Obtenemos una matrizAb_pque guarda el valor de los elementos de la matriz ampliadaAbparaa=-2, calculamos el rango deAb_pmedianterank.>> A_p=subs(A,a,-2)A_p = -2 1 1 1 -2 1 1 1 -2>> rank(A_p)ans = 2>> Ab_p=subs(Ab,a,-2)Ab_p = -2 1 1 -2 1 -2 1 4 1 1 -2 -8>> rank(Abp)ans = 3El sistema es incompatible2. Paraa=1Obtenemos una matrizA_pque guarda el valor de los elementos de la matrizAparaa=1, calculamos el rango deA_pmedianterank.Obtenemos una matrizAb_pque guarda el valor de los elementos de la matriz ampliadaAbparaa=1, calculamos el rango deAb_pmedianterank.>> A_p=subs(A,a,1)A_p = 1 1 1 1 1 1 1 1 1>> rank(A_p)ans = 1>> Ab_p=subs(Ab,a,1)Ab_p = 1 1 1 1 1 1 1 1 1 1 1 1>> rank(Ab_p)ans = 1El sistema es compatible pero indeterminado, ya que el rango, 1 es menor que el nmero de incgnitas, 3. El sistema es equivalente a una nica ecuacinx+y+z=1.3. Para a-2, a1>> x=A\bx = -(a^2 + a)/(a + 2) a/(a + 2) (a^3 + 2*a^2 + a)/(a + 2)>> factor(x(1))ans =-(a*(a + 1))/(a + 2)>> factor(x(3))ans =(a*(a + 1)^2)/(a + 2) Las solucin para este caso esx=a(a+1)a+2y=aa+2z=a(a+1)2a+2Paraa=0 el sistema es homogneo y tiene la solucin trivial [0;0;0]Sistema de ecuaciones lineales homogneoEstudiar segn los valores dewel siguiente sistema6x+18y2wz=07x2y4z=04x+10y6z=0Hacemos el determinante de los coeficientes igual a cero y despejamosw.674182102w46=0w=5Paraw5 la nica solucin es la trivialx=0,y=0,z=0.Paraw=5 tomamos las dos primeras ecuaciones y calculamosyyzen trminos dex.{18y2wz=6x2y4z=7xEn forma matricial(1822w4)(yz)=(6x7x)La solucin de este sistema esy=x/2,z=3x/2>> syms w x;>> A=[6 18 -2*w; 7 -2 -4;4 10 -6];>> w1=solve(det(A),w)w1 =5>> B=A(1:end-1,2:end)B =[ 18, -2*w][ -2, -4]>> b=-A(1:end-1,1)*xb = -6*x -7*x>> B1=subs(B,w,w1);>> X=B1\bX = x/2 (3*x)/2 Como podemos apreciar la matrizBes una submatriz deA, que va de la fila 1 a la 2 ambas inclusive y de la columna 2 a la 3. El vectorbes primer vector columna deA, cambiado de signo, multiplicado porxy sin el ltimo elemento.Vectores linealmente dependientesSean los vectoresx1,x2,x3...xn. Si podemos encontar constantesc1,c2,c3...cnque al menos dos sean no nulas se denominan linealmente dependientes.c1x1+c2x2+...+cnxn=0Si los vectoresx1,x2,x3...xnson linealmente independientes, el determinate de la matrizXde dimensinnformada por los vectores columnax1,x2,x3...xnes distinta de cero.>> x1=[1;-3;5];>> x2=[-2;1;4];>> x3=[6;-2;1];>> X=[x1 x2 x3];>> det(X)ans = -79Los vectoresx1,x2yx3son linealmente independientes.>> syms c1;>> x1=sym('[1;-1;3]');>> x2=sym('[-4;1;-6]');>> x3=sym('[2;-1;4]');>> X=[x1 x2 x3];>> det(X)ans =0Los vectoresx1,x2yx3son linealmente dependientes. Ahora vamos a calcular la relacin entre estos vectores, los valores de las constantesc1,c2,c3. Tenemos que resolver el sistema homogneoc1x1+c2x2+c3x3=0c14c2+2c3=0c1+c2c3=03c16c2+4c3=0Tomamos las dos primeras ecuaciones, calculamosc2,c3en funcin dec1.{4c2+2c3=c1c2c3=c1>> B=X(1:end-1,2:end);>> b=-X(1:end-1,1)*c1;>> C=B\bC = -c1/2 -(3*c1)/2 1x1c1x23/2c1x3=02x1x23x3=0