Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Matemtica Simblica.
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')
Introduccin
diff('x^n') diff('x^n', 'x') diff('x^n', 'n') ans = x^n*n/x ans = x^n*n/x ans = x^n*log(x)
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 display('suma'); f+g display('resta');f-g display('multiplicacion');f*g display('division'); f/g
Sustitucin de variables. Para remplazar el valor de una variable por otra variable o nmero utilizamos el comando subs()
a = sym('a'); b = sym('b'); c = sym('c');
Introduccin
Ejemplo 2. Calcular los ceros del conjunto de funciones 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]
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)')
Introduccin
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 v = int(g, t) v = symadd(v, 64) y = int(v, t) % aceleracion de la gravedad. % calcula la velocida como funcin del tiempo % en t=0 la velocidad en 64 %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)
Introduccin
v = -32*t v = -32*t+64 y = -16*t^2+64*t El valor de desplazamiento en funcion de t es y = -16*t^2+64*t+96 La pelota alcnza la altura mxima cuando t_max = 2 La altura mxima es y_max = 160 El tiempo para que el tomate golpe el suelo es t_fin = [ 2+10^(1/2)]
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)
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')
Introduccin
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)
Solucin de ecuaciones algebraicas simples. 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
Introduccin
se soluciona haciendo
dsolve('Dy=1+y^2') ans = tan(t+C1)
Tambin el comando dsolve puede resolver sistemas de dos ecuaciones diferenciales simultaneas.
[f, g] = dsolve('Df=3*f+4*g', 'Dg=-4*f+3*g')
Regresar.