Escolar Documentos
Profissional Documentos
Cultura Documentos
El toolbox de matemtica simblica es una coleccin de herramientas para MATLAB que se usan para manipular y resolver expresiones simblicas. Las expresiones simblicas son cadenas de caracteres, o arreglos de cadenas de caracteres que representan nmeros, funciones, operadores y variables. Algunos ejemplos de expresiones simblicas son:
f1 = '1/(2*x^2n)' f2 = '1/sqrt(2*x)' f3 = 'cos(x^2) - sen(2*x)' M = sym('[a, b; c, d]') f = int('x^3/sqrt(1-x)', 'a', 'b')
Nota: Las expresiones simblicas debern ser escritas sin espacios. Para definir matrices hacemos:
M = sym('[a, b; c, d]')
Las expresiones simblicas sin variables son llamadas constantes simblicas. Cuando se visualizan constantes simblicas, a menudo son difciles de distinguir de los enteros.
f = symop('(3*4-2)/5+1') numeric(f)
Variables simblicas. El comando symvar, se utiliza para averiguar la variable simblica en la expresin.
symvar('a*x+y') symvar('a*t+s/(u+3)') symvar('sin(omega)') symvar('3*i+4*j') symvar('y+3*s', 't')
Extraccin de numeradores y denominadores. El comando numden() se utiliza para determinar el denominador y numerador de expresiones racionales.
clear; a = sym('a'); b = sym('b'); x = sym('x'); f = a*x^2/(b-x) [n m] = numden(f)
Operaciones algebraicas estndar. Las cuatro operaciones de suma, resta, multiplicacin y divisin se realizan de manera similar, como ejemplo consideremos:
clear; x = sym('x'); f = 2*x^2+3*x-5 g = x^2-x+7
Sustitucin de variables. Para remplazar el valor de una variable por otra variable o nmero utilizamos el comando subs()
a b c x = = = = sym('a'); sym('b'); sym('c'); sym('x');
f1(x,y) = x2 - 2x y + 0.5 f2(x,y) = x2 + 4y2 - 4 Utilice el mtodo de Newton Raphson y considere como punto inicial p=[1,1]
x 2+4 y 2-4 = 0 3
-1
-2
-3 -3
-2
-1
0 x
Integracin. La funcin de integracin int(f), donde f es una funcin simblica, intenta obtener otra expresin simblica F tal que diff(F) = f.
Cuando MATLAB no puede encontrar la antiderivada, devuelve el comando sin evaluar. Por ejemplo
int('log(x)/exp(x^2)')
Regresa.
Warning: Explicit integral could not be found. > In C:\MATLABR11\toolbox\symbolic\@sym\int.m at line 58 In C:\MATLABR11\toolbox\symbolic\@char\int.m at line 9 In C:\MATLABR11\work\eje133.m at line 1 ans = int(log(x)/exp(x^2),x)
Cuando se realiza la derivada podemos decir respecto a que variable deseamos hacer la integracin, en el caso de no expresarlo, por default se har con respecto a x.
x = sym('x'); s = sym('s'); f = sin(s + 2*x) int(f) int(f,s)
Regresara.
f = sin(s+2*x) ans = -1/2*cos(s+2*x) ans = -cos(s+2*x)
Ejemplo 3. Bart ha salido de excursin con su clase a la cima del edificio Skiley en el centro de Springfield. Coge un tomate maduro de la bolsa de comida, se apoya en el borde del tejado, y lo lanza hacia arriba. El tomate sale recto, con una velocidad inicial de v0 = 64 pies por segundo. El tejado esta a y0 = 96 pies por encima del suelo. Dnde est el tomate t segundos ms tarde?. Cundo alcaza su mxima altura?. Qu altura mxima sobre el suelo alcanza el tomate?. Cundo golpea el tomate el suelo?. Suponer que no hay resistencia
del aire y que la aceleracin debida a la gravedad es una constante g = -32 pies por segundo por segundo en Springfield.
clear; g = sym('g') t = sym('t') g = -32 % aceleracion de la gravedad. v = int(g, t) % calcula la velocida como funcin del tiempo v = symadd(v, 64) % en t=0 la velocidad en 64 y = int(v, t) %integra la velocidad respecto a t para calcular el desplazamiento fprintf('El valor de desplazamiento en funcion de t es \n'); y = symadd(y, 96) % en t=0 la altura es 96 pies fprintf('La pelota alcnza la altura mxima cuando\n'); t_max = solve(v) % calcula v(t) = 0 fprintf('La altura mxima es \n'); y_max = subs(y, t_max) fprintf('El tiempo para que el tomate golpe el suelo es\n') t_fin = solve(y)
Para tener una idea ms clara de lo que le paso al tomate, vamos a dibujar el resultado del lanzamiento del tomate. Para ello utilizamos el comando ezplot(y)
-16 t 2+64 t+96 200
-200
-400
-600
-800
-1000 -6 -4 -2 0 t 2 4 6
Simplificacin de expresiones.
Las expresiones simblicas pueden ser presentadas de muchas formas equivalentes. En situaciones diferentes algunas formas pueden ser preferibles a otras. MATLAB usa un nmero de comandos para simplificar la forma de las expresiones simblicas.
f = sym('(x^2-1)*(x-2)*(x-3)') f = (x^2-1)*(x-2)*(x-3) collect(f) ans = x^4-5*x^3+5*x^2+5*x-6 horner(ans) ans = -6+(5+(5+(-5+x)*x)*x)*x factor(ans) ans = (x-1)*(x-2)*(x-3)*(x+1) expand(f) ans =
x^4-5*x^3+5*x^2+5*x-6
simplify es una herramienta potente, de propsito general, que intenta simplificar una expresin mediante la aplicacin de muchas clases diferentes de identidades algebraicas involucrando sumas, integrales y potencias fraccionales, as como trigonometra, frmulas exponenciales, funciones logartmicas, etc. Algunos de ejemplos de uso de este comando son
x = sym('x') y = sym('y') f = log(2*x/y) simplify(f)
Otro ejemplo es
x = sym('x') g = sin(x)^2+3*x+cos(x)^2-5 simplify(g)
Otro es
x = sym('x') h = (1/x^3+6/x^2+12/x+8)^(1/3) simplify(h)
Para calcular la solucin de una ecuacin algebraica simple se utiliza el comando solve()
solve('a*x^2+b*x+c') solve('x=cos(x)') solve('exp(x)=tan(x)')
Solucin de ecuaciones diferenciales. En la solucin de ecuaciones diferenciales utilizamos el comando dsolve as por ejemplo
dy 1 y2 dx
se soluciona haciendo
dsolve('Dy=1+y^2') ans = tan(t+C1)
Tambin el comando dsolve puede resolver sistemas de dos ecuaciones diferenciales simultaneas.