• No se han encontrado resultados

CO 2111 Tema 16 Cálculo Simbólico Usando MATLAB pdf

N/A
N/A
Protected

Academic year: 2020

Share "CO 2111 Tema 16 Cálculo Simbólico Usando MATLAB pdf"

Copied!
17
0
0

Texto completo

(1)Tema 16: Cálculo simbólico usando MATLAB. Declaración y conversión a objeto simbólico (syms, sym), expansión de expresiones algebraicas (expand), resolución de expresiones algebraicas (solve), simplificación de expresiones algebraicas (simplify), factorización de expresiones algebraicas (collect), escritura en forma matemática de una expresión simbólica (pretty), determinante de una matriz simbólica (det), factorización de expresión algebraica (factor), conversión de polinomios simbólicos a vector de coeficientes y viceversa (poly2sym, sym2poly).. Prof. Saúl. Buitrago y Oswaldo Jiménez.

(2) 16. Cálculo simbólico usando MATLAB. MATLAB tiene un conjunto de funciones para cálculo simbólico. Lo primero que hay que hacer es declarar las variables que van a intervenir como objetos simbólicos. Para esto se cuenta con la funciones “syms” y “sym”. syms a b c: declara a, b y c como variables simbólicas. La variable “a” puede ser una constante, una variable o una expresión en la que intervengan constantes, variables, operadores aritméticos y funciones predefinidas. M=sym(m): convierte un objeto numérico “m” en un objeto simbólico “M”. Ejemplos: >> syms x. (declaración de x como variable simbólica). >> expand((x+1)^3). (desarrolla la expresión en suma de monomios). ans =. x^3+3*x^2+3*x+1. >> pretty(expand((x+1)^3)) (expresa el resultado con la notación habitual) x 3 + 3x 2 + 3x + 1 >> solve(‘-x^2-2*x+3=0’, ’x’) (resuelve la ecuación en la variable “x”) ans = [ -3]. [ 1] Prof. Saúl. Buitrago y Oswaldo Jiménez.

(3) 16. Cálculo simbólico usando MATLAB. Función “expand” expand(s): escribe cada elemento de la expresión simbólica s como producto de sus factores. Normalmente se usa para funciones polinómicas, trigonométricas, exponenciales y logarítmicas. Ejemplos: >> syms x y v >> v = [exp(x + y), log(x^2/y)] >> expand((x+1)^3). retorna x^3+3*x^2+3*x+1. >> expand(sin(x+y)). retorna sin(x)*cos(y)+cos(x)*sin(y). >> expand(v). retorna [exp(x)*exp(y), 2*log(x)-log(y)]. Prof. Saúl. Buitrago y Oswaldo Jiménez.

(4) 16. Cálculo simbólico usando MATLAB. Función “simplify” simplify(s): simplifica cada elemento de la expresión simbólica s. Ejemplos:. sin 2 (x) + cos 2 (x) = 1 >> syms x >> simplify(sin(x)^2 + cos(x)^2). e. c log α + β. →. retorna 1. (α + β ). 1 c 2. >> syms c alpha beta >> simplify(exp(c*log(sqrt(alpha+beta)))). retorna (alpha+beta)^(1/2*c). x 2 + 5x + 6 → x+2 x +3 >> syms x >> simplify((x ˆ 2+5*x+6)/(x+3)). retorna x+2. Prof. Saúl. Buitrago y Oswaldo Jiménez.

(5) 16. Cálculo simbólico usando MATLAB. Función “collect” collect(s,v): reagrupa cada uno de los elementos en s como un polinomio en v y reescribe s en términos de potencias de v. Ejemplos:. x 2y + yx − x 2 − 2x. → (y − 1)x 2 + (y − 2)x. >> syms x y >> collect(x^2*y + y*x - x^2 - 2*x). −. 1 −2 x 3 −2 x xe e + 16 4. retorna (y-1)*x^2+(y-2)*x. 3  −2 x  1 → − x + e 16   4. >> syms x f >> f = -1/4*x*exp(-2*x)+3/16*exp(-2*x) >> collect(f,exp(-2*x)). retorna (-1/4*x+3/16)*exp(-2*x). Prof. Saúl. Buitrago y Oswaldo Jiménez.

(6) 16. Cálculo simbólico usando MATLAB. Función “solve” Solución simbólica de expresiones algebraicas. Ejemplos: >> solve('p*sin(x) = r') escoge 'x' como incógnita y retorna. ans = asin(r/p). >> [x,y] = solve('x^2 + x*y + y = 3', 'x^2 - 4*x + 3 = 0') resuelve el sistema y retorna x = [ 1] [ 3]. y= [. 1] [ -3/2]. >> [u,v] = solve('a*u^2 + v^2 = 0', 'u - v = 1') escoge 'a’ como parámetro y resuelve las 2 ecuaciones usando como incógnitas u y v. u=. v=. [ 1/2/(a+1)*(-2*a+2*(-a)^(1/2))+1]. [ 1/2/(a+1)*(-2*a+2*(-a)^(1/2))]. [ 1/2/(a+1)*(-2*a-2*(-a)^(1/2))+1]. [ 1/2/(a+1)*(-2*a-2*(-a)^(1/2))]. Prof. Saúl. Buitrago y Oswaldo Jiménez.

(7) 16. Cálculo simbólico usando MATLAB. Función “solve” >> [a,u,v] = solve('a*u^2 + v^2 = 0', 'u - v = 1', 'a^2 - 5*a + 6 = 0') resuelve las 3 ecuaciones usando como incógnitas a, u y v. a=. u=. v=. [ 2]. [ 1/3+1/3*i*2^(1/2)]. [ -2/3+1/3*i*2^(1/2)]. [ 2]. [ 1/3-1/3*i*2^(1/2)]. [ -2/3-1/3*i*2^(1/2)]. [ 3]. [ 1/4+1/4*i*3^(1/2)]. [ -3/4+1/4*i*3^(1/2)]. [ 3]. [ 1/4-1/4*i*3^(1/2)]. [ -3/4-1/4*i*3^(1/2)]. >> aa = eval(a); uu = eval(u); vv = eval(v); aa =. uu =. vv =. 2. 0.3333 + 0.4714i. -0.6667 + 0.4714i. 2. 0.3333 - 0.4714i. -0.6667 - 0.4714i. 3. 0.2500 + 0.4330i. -0.7500 + 0.4330i. 3. 0.2500 - 0.4330i. -0.7500 - 0.4330i. Prof. Saúl. Buitrago y Oswaldo Jiménez.

(8) 16. Cálculo simbólico usando MATLAB. Función “solve” >> [x, y] = solve('x^2*y^2 - 2*x - 1 = 0', 'x^2 - y^2 - 1 = 0') x=. y=. [ -1/2+1/2*i*3^(1/2)]. [ 1/2*(-6-2*i*3^(1/2))^(1/2)]. [ -1/2+1/2*i*3^(1/2)]. [ -1/2*(-6-2*i*3^(1/2))^(1/2)]. [ -1/2-1/2*i*3^(1/2)]. [ 1/2*(-6+2*i*3^(1/2))^(1/2)]. [ -1/2-1/2*i*3^(1/2)]. [ -1/2*(-6+2*i*3^(1/2))^(1/2)]. [. 1/2*5^(1/2)+1/2]. [. 1/2*(2+2*5^(1/2))^(1/2)]. [. 1/2*5^(1/2)+1/2]. [. -1/2*(2+2*5^(1/2))^(1/2)]. [. 1/2-1/2*5^(1/2)]. [. 1/2*(2-2*5^(1/2))^(1/2)]. [. 1/2-1/2*5^(1/2)]. [. -1/2*(2-2*5^(1/2))^(1/2)]. x=. y=. -0.5000 + 0.8660i. 0.3406 - 1.2712i. -0.5000 + 0.8660i. -0.3406 + 1.2712i. -0.5000 - 0.8660i. 0.3406 + 1.2712i. -0.5000 - 0.8660i. -0.3406 - 1.2712i. 1.6180. 1.2720. 1.6180. -1.2720. -0.6180. 0.0000 + 0.7862i. -0.6180. -0.0000 - 0.7862i Prof. Saúl. Buitrago y Oswaldo Jiménez.

(9) 16. Cálculo simbólico usando MATLAB. Función “dsolve” Solución simbólica de ecuaciones diferenciales ordinarias. La variable independiente es “t”. La letra “D” denota diferenciación respecto a la variable independiente (D es d/dt, D2 es d2/dt2). Las condiciones iniciales se especifican como “y(a)=b” o “Dy(a)=b”. Ejemplos: >> dsolve('Dx = -a*x'). retorna. ans = C1 * exp(-a*t). >> x = dsolve('Dx = -a*x', 'x(0) = 1‘, ‘s’) retorna >> y = dsolve('(Dy)^2 + y^2 = 1','y(0) = 0') >> aa = dsolve('Dy = y^2*(1-y)'). x = exp(-a*s). retorna. y = [ sin(t)] [ -sin(t)]. retorna. Warning: Explicit solution could not be found; implicit solution returned. aa = t+1/y-log(y)+log(-1+y)+C1=0 >> [x, y] = dsolve('Dx = y', 'Dy = -x', 'x(0) = 0', 'y(0) = 1') retorna x = sin(t). y = cos(t). Prof. Saúl. Buitrago y Oswaldo Jiménez.

(10) 16. Cálculo simbólico usando MATLAB. Función “subs” subs(s, antiguo, nuevo): sustituye “antiguo” con “nuevo” en la expresión simbólica s. Ejemplos: >> a = 980; C1 = 3; >> y = dsolve('Dy = -a*y'). produce. y = C1 * exp(-a*t). >> subs(y). produce ans = 3 * exp(-980*t). >> syms a b alpha >> subs(cos(a)+sin(b), {a, b}, {alpha, 2}). retorna. cos(alpha)+sin(2). Prof. Saúl. Buitrago y Oswaldo Jiménez.

(11) 16. Cálculo simbólico usando MATLAB. Función “findsym” findssym(expr): determina cuales son las variables simbólicas en la expresión simbólica “expr”. Las variables se escriben en orden alfabético y separadas por coma. Si no encuentra variables simbólicas, findsym retorna una cadena vacía. Ejemplo: >> t = 4; syms x y; findsym(x^3+t*x+y). retorna. ans = x ,y. >> b = 1; syms x1 y alpha >> findsym(cos(alpha)*b*x1 + 14*y). retorna. ans = alpha, x1, y. >> syms y i j; findsym(y*(4+3*i) + 6*j). retorna. ans = y. Función “pretty” pretty(expr): devuelve la expresión simbólica escrita en notación matemática. Esta expresión no sirve para ser utilizada en cálculos posteriores con MATLAB, sólo es una presentación “más bonita” de los resultados. >> b = 1; x1 = 1; syms aplha y; >> pretty(cos(alpha)*b*x1 + 14*y). retorna. Prof. Saúl. Buitrago y Oswaldo Jiménez. cos(alpha) + 14 y.

(12) 16. Cálculo simbólico usando MATLAB. Función “det” y “poly” También es posible definir matrices simbólicas del siguiente modo: >> M=sym(’[a b; c d]’). retorna. M= [ a, b] [ c, d]. y ahora calcular, por ejemplo su determinante: >> det(M). retorna. ans = a*d-b*c. y su polinomio característico:. x − a det (Ix − M ) = det  c >> poly(M). retorna. b   = (x − a )(x − d ) − bc x −d. ans = x^2-x*d-a*x+a*d-b*c. Prof. Saúl. Buitrago y Oswaldo Jiménez.

(13) 16. Cálculo simbólico usando MATLAB. Función “factor” factor(expr): factoriza la expresión (ya sea numérica o simbólica) >> factor(x^2+2*x+1). retorna. ans = (x+1)^2. Función “poly2sym” Define un polinomio simbólico a partir de sus coeficientes >> poly2sym([1 2 3 -2 10]) >> poly2sym([1 0 -2 -5],'t'). retorna ans = x^4+2*x^3+3*x^2-2*x+10 retorna ans = t^3-2*t-5. Función “sym2poly” Transforma un polinomio simbólico en un vector con sus coeficientes >> sym2poly(x^3 - 2*x - 5). retorna. Prof. Saúl. Buitrago y Oswaldo Jiménez. [1 0 -2 -5].

(14) 16. Cálculo simbólico usando MATLAB. Función “limit” Calcula el limite hacia un determinado valor de una expresión simbólica. Ejemplos:. sin(x ) x →0 x. lim. >> syms x >> limit(sin(x)/x,0). retorna ans = 1. n lim n →∞ n + 1 >> syms n >> limit(n/(n+1), n, inf) retorna ans = 1. n 3 + 3n 2 − 2n lim n →∞ 3n 3 − 1 >> limit((n^3+3*n^2-2*n)/(3*n^3-1),inf) retorna ans = 1/3 Prof. Saúl. Buitrago y Oswaldo Jiménez.

(15) 16. Cálculo simbólico usando MATLAB. Función “diff” diff(f, ‘x’, n): calcula la n-esima derivada respecto a x de una expresión simbólica f.. f = log(x ). −. 1 x2. >> diff(‘log(x)’, ‘x’, 2) retorna ans = -1/x^2. f = exp( z 3 ) + sin2 (z ). 3z 2 exp( z 3 ) + 2 sin(z ) cos(z ). >> f = ’exp(z^3)+sin(z)^2’; >> diff(f) retorna ans = 3*z^2*exp(z^3)+2*sin(z)*cos(z). exp(a + x ) f =a sin(ax ). exp(a + x ) a exp(a + x ) a exp(a + x ) cos(ax )x + − sin(ax ) sin(ax ) sin2 (ax ). >> f = ’a*exp(a+x)/sin(a*x)’; >> diff(f, ’a’). retorna. ans =. 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 Prof. Saúl. Buitrago y Oswaldo Jiménez.

(16) 16. Cálculo simbólico usando MATLAB. Función “int” La integración se lleva a cabo con el comando int. Es posible hacer integrales definidas o indefinidas: >> int(x^2,’x’). retorna. ans = 1/3 * x^3. >> f = ’a*exp(a*x)’; >> int(f, ’x’). retorna. ans = exp(a*x). >> int(f,’x’, 0, 1) retorna. ans = exp(a)-1. >> int('2*x^2*(19+12*x^2)/(7*(x^2+1))','x',0,1) retorna. ans = 22/7-1/2*pi. 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). retorna. ans = -1/2*i*erf(i)*pi^(1/2). no tienen mucho sentido, pues el resultado viene expresado mediante 2 x una función extraña, ya que no se conoce una primitiva de la función e función error. erf (x ) =. 2. π. x. ∫e 0. −t 2. Prof. Saúl. Buitrago y Oswaldo Jiménez. dt.

(17) 16. Cálculo simbólico usando MATLAB. Función “taylor” Calcula el desarrollo en serie de Taylor alrededor de un punto dado, para una función simbólica dada. Por defecto el polinomio es de grado 5 y alrededor del cero. >> taylor(exp(-x)). retorna. ans = 1-x+1/2*x^2-1/6*x^3+1/24*x^4-1/120*x^5 >> taylor(log(x), 6, 1). retorna (grado 5 y alrededor del 1). ans = x-1-1/2*(x-1)^2+1/3*(x-1)^3-1/4*(x-1)^4+1/5*(x-1)^5 >> taylor(sin(x), pi/2, 8). retorna (grado 7 y alrededor de pi/2). ans = 1-1/2*(x-1/2*pi)^2+1/24*(x-1/2*pi)^4-1/720*(x-1/2*pi)^6 >> syms t >> taylor(x^t, 3, t). retorna. (grado 2, respecto a la variable t y alrededor de 0) ans = 1+log(x)*t+1/2*log(x)^2*t^2. Prof. Saúl. Buitrago y Oswaldo Jiménez.

(18)

Referencias

Documento similar

Desde nuestro punto de vista, podemos decir que durante el período histórico que va desde el origen del Derecho romano hasta la llegada de Octavio al poder, los términos

6.1. Hallar las expresiones para calcular los esfuerzos normales y cortantes máximos para un perfil rectangular.. Hallar las expresiones para calcular los esfuerzos normales

I Las funciones pueden construirse sin nombrarlas mediante las expresiones lambda. I Ejemplo de evaluación de

Para dividir un polinomio entre un monomio basta con dividir cada uno de los términos del dividendo entre el término del

El Ministerio de Comercio Exterior (en adelante COMEX), ha recibido un financiamiento del Banco Interamericano de Desarrollo (en adelante el “BID” o “el Banco”)

Conside- raremos los dos principales canales para el estudio de las emociones: las expresiones faciales obtenidas a partir de un video y las expresiones

Usando teoría de Galois y teoría de grupos finitos, daremos una demostración del teorema que solo usa un resultado de Análisis real, que se prueba en cualquier curso elemental de

En este sentido, las expresiones de violencia que se dan en el interior de la dinámica escolar son frecuentemente expresiones o formas de exclusión social de algunos jóvenes o