Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Mathematica .
Introduccin.
En esta prctica abordaremos el estudio de las diversas tcnicas para resolver ecuaciones y sistemas
de ecuaciones (lineales y no lineales), que aparecen frecuentemente tanto en el Algebra como en la resolucin de diferentes problemas de Clculo de una y varias variables.
Veremos en primer lugar la resolucin de una ecuacin con una incgnita: esta resolucin se puede
hacer en algunos casos de forma exacta, pero en ocasiones tendremos que utilizar algn tipo de aproximacin numrica. Mostraremos los distintos comandos de Mathematica que resuelven los distintos problemas. En el caso de las ecuaciones no algebraicas, Mathematica posee instrucciones que resuelven directamente el problema, utilizando versiones adecuadas de diferentes mtodos numricos.
A continuacin, abordaremos el estudio de los sistemas de ecuaciones.Adems de las instrucciones
para hallar las soluciones exactas y aproximadas, abordaremos tambin algunas instrucciones que permiten
simplificar los sistemas de ecuaciones, eliminar determinadas variables entre las distitnas ecuaciones, etc.
Solve@ecuacin, variableD
Esta instruccin nos da la solucin, si existe, como una lista de sustituciones
Ejemplo: Encontrar las soluciones exactas de la ecuacin 3 x3 - 2 x2 + bx = 0. Examinar el caso particular
b=0.
SolveA3 x3 - 2 x2 + b * x == 0, xE
:8x 0<, :x
1
3
I1 -
1 - 3 b M>, :x
1
3
I1 +
1 - 3 b M>>
Tenemos las tres races de la ecuacin polinmica de grado tres en funcin del parmetro b. Si le
damos un valor concreto b=0, resultar:
Departamento de Matem
Practica 4
% . b 0
2
3
>>
Tambin proporciona las soluciones complejas, si las hay. Por ejemplo, si consideramos b=1, vemos que
hay una sola raz real y dos races complejas conjugadas:
SolveA3 x3 - 2 x2 + b * x == 0, xE . b 1
:8x 0<, :x
1
3
I1 -
2 M>, :x
1
3
I1 +
2 M>>
Para ecuaciones algebraicas de orden superior a 5, en general no podemos dar soluciones en forma de
radicales, pero Mathematica s puede proporcionar una solucin simblica, utilizando la expresin
Root[f,k], que da la k-sima solucin de la ecuacin f. Esas races slo tomarn valores numricos cuando
se lo indiquemos:
SolveAx5 + 2 x2 + 3 == 0, xE
99x RootA3 + 2 12 + 15 &, 1E=,
SolveAx5 + 2 x2 + 3 == 0, xE N
Cuando se resuelven ecuaciones no polinmicas, el comando Solve no siempre obtiene el conjunto de todas
las soluciones, sino slo parte de ellas, como consecuencia de aplicar tcnicas de funciones inversas (en
este ejemplo la funcin inversa del seno). Mathematica informa de este hecho al dar la solucin.
Ejemplo: Resolver la ecuacin sen2x=1. Comentar el resultado.
Solve@Sin@xD == 1, xD
Solve::ifun :
Inverse functions are being used by Solve, so some solutions may not be found; use Reduce for complete solution information.
::x
>>
Una solucin es utilizar el comando Reduce[ecuacin, incgnita], que nos da la regla de formacin de las
soluciones en funcin de los posibles parmetros o de los posibles casos que se pueden dar. La solucin
adems viene dada en forma lgica, no como lista de sustituciones:
Reduce@Sin@xD == 1, xD
C@1D Integers && x
+ 2 C@1D
Departamento de Matem
Practica 4
Ejemplo: Dar las soluciones de una ecuacin genrica de segundo grado utilizando Solve y Reduce.
SolveAa x2 + b x + c 0, xE
::x
-b -
>, :x
b2 - 4 a c
2a
-b +
b2 - 4 a c
2a
ReduceAa x2 + b x + c 0, xE
a 0 && x
-b -
2a
b2 - 4 a c x
>>
-b +
2a
b2 - 4 a c
c
Ka 0 && b 0 && x - O Hc 0 && b 0 && a 0L
b
Otra diferencia entre Solve y Reduce es cuando no existe solucin, Solve devuelve un conjunto vaco,
mientras que Reduce indica explcitamente que la ecuacin es irresoluble:
Solve@8x 1, x 2<, xD
8<
Reduce@8x 1, x 2<, xD
False
Otra caracterstica til de Reduce es que permite restringir el dominio en el que se encuentra una solucin,
como veremos a continuacin
SolveAx2 + y2 == 1, xE
::x -
1 - y2 >, :x
ReduceAx2 + y2 == 1, xE
x-
1 - y2 x
1 - y2 >>
1 - y2
ReduceAx2 + y2 == 1, x, RealsE
-1 y 1 && Kx -
Departamento de Matem
1 - y2 x
1 - y2 O
Practica 4
ReduceAx2 + y2 == 1, x, IntegersE
Hy -1 && x 0L Hy 0 && x -1L Hy 0 && x 1L Hy 1 && x 0L
&& y
7
3
x >
&& 4 - x y -1 + 2 x
-2
-4
-6
-6
-4
-2
NSolve@ecuacin, variable, nD
Esta instrucin resuelve numricamente cualquier ecuacin polinmica, calculando el conjunto de todas las
soluciones aproximadas con n dgitos de precisin (en caso de no especificarse n , se tomar por defecto el
valor dado en WorkingPrecision ).
Ejemplo: Encontrar todas las races (reales y complejas) del polinomio x5 + x4 -4x3+2x2 -3x-7.
Ya vimos que si intentamos resolver la ecuacin con el comando Solve, nos devuelve una expresin
simblica, puesto que no puede calcular las cinco soluciones de forma exacta:
Departamento de Matem
Practica 4
Ya vimos que si intentamos resolver la ecuacin con el comando Solve, nos devuelve una expresin
simblica, puesto que no puede calcular las cinco soluciones de forma exacta:
SolveAx5 + x4 - 4 x3 + 2 x2 - 3 x - 7 == 0, xE
99x RootA-7 - 3 1 + 2 12 - 4 13 + 14 + 15 &, 1E=,
SolveAx5 + x4 - 4 x3 + 2 x2 - 3 x - 7 == 0, xE N
Pero si lo nico que queremos son las soluciones numricas, tambin podemos utilizar directamente un
mtodo de solucin numrica para hallar dichas soluciones:
NSolveAx5 + x4 - 4 x3 + 2 x2 - 3 x - 7 == 0, xE
88x -2.74463<, 8x -0.880858<,
8x 0.41452- 1.19996 <, 8x 0.41452+ 1.19996 <, 8x 1.79645<<
Ejemplo: Resolver la ecuacin x2 -3=0 aproximando con 50 dgitos la solucin.
NSolveAx2 == 3, x, 50E
88x -1.7320508075688772935274463415058723669428052538104<,
8x 1.7320508075688772935274463415058723669428052538104<<
Cuando la ecuacin a resolver no es polinmica (por ejemplo, las ecuaciones trascendentes) no es posible
calcular todas las soluciones al mismo tiempo como hace NSolve , sino que es necesario utilizar mtodos
iterativospara encontrar cada una de ellas de manera aproximada. La funcin de Mathematica til en estos
casos es:
Es necesario conocer un valor inicial de la variable independiente para encontrar alguna de las soluciones,
as para diferentes condiciones iniciales la solucin puede ser diferente. Si no se especifican los valores min
y max, Mathematica busca la raz sin restringirse a ningn intervalo.
Ejemplo: Encontrar las races de la ecuacin cos x = 2 x.
Podemos ver que las instrucciones que hemos visto hasta ahora no resuelven esta ecuacin no lineal y no
algebraica:
Departamento de Matem
Practica 4
Solve@Cos@xD 2 x, xD
Solve::tdep : The equations appear to involve the variables to be solved for in an essentially non-algebraic way.
Solve@Cos@xD 2 x, xD
NSolve@Cos@xD 2 x, xD
Solve::tdep : The equations appear to involve the variables to be solved for in an essentially non-algebraic way.
NSolve@Cos@xD 2 x, xD
Para poder utilizar la instruccin FindRoot, necesitamos conocer un punto de comienzo para el algoritmo
numrico, que bsicamente es una modificacin del mtodo de Newton-Raphson. Para encontrar ese punto
podemos seguir un camino matemtico en el que comprobemos las condiciones del mtodo de NewtonRaphson y encontremos un punto adecuado de comienzo. Otra opcin ms sencilla es utilizar un mtodo
grfico para localizar un punto inicial.
Representamos las funciones Cos[x] y 2x, y veamos donde se cortan:
-3
-2
-1
-2
-4
-6
Podemos ver que el punto de corte se encuentra en el intervalo [0, 1]. Si elegimos como valor inicial 1 el
valor aproximado de la raz es:
Esta ecuacin tiene infinitas soluciones debido a su periodicidad, como podemos ver si representamos
ambas funciones:
Departamento de Matem
Practica 4
-6
-4
-2
-1
-2
-3
Si buscamos las soluciones cercanas a cero, podemos utilizar como punto de comienzo el propio cero, y
adems podemos restringir el intervalo en el que nos proporcione la solucin, para asegurarnos de que
estamos hallando la solucin pedida.
Si a la instruccin FindRoot le damos una funcin en primer lugar, nos halla los ceros de esa funcin:
Solve[{ecuacion1,...,ecuacionn},{x,y,...}]
que resuelve formalmente el sistema de ecuaciones dado, es decir, lo resuelve en funcin de los parmetros
que contiene el sistema. Es igualmente adecuado para la resolucin de sistemas de ecuaciones lineales (que
sean compatibles, es decir, que tengan solucin).
Ejemplo: Resolver el siguiente sistema de ecuaciones, que se corresponde con la interseccin de una
circunferencia y una recta: x2 + y2 = 4
4x-3 y=0
Departamento de Matem
Practica 4
x-2 y+ z=7
2x-5 y+2z=6
3x+2 y- z=1
x
1 -2 1
7
SolveB 2 -5 2 . y == 6 , 8x, y, z<F
z
3 2 -1
1
88x 2, y 8, z 21<<
x - 2y + z - t = 4
2 x - 3 y + 2 z - 3 t = -1
3x - 5 y + 3z - 4t = 3
-x + y - z +2t = 5
Solve@8x - 2 y + z - t == 4, 2 x - 3 y + 2 z - 3 t == -1,
3 x - 5 y + 3 z - 4 t == 3, -x + y - z + 2 t == 5<, 8x, y, z, t<D
Solve::svars : Equations may not give solutions for all "solve" variables.
El mensaje nos avisa de que no existe una nica solucin, y vemos que Solve nos da la solucin del
sistema expresando x e y en funcin de las otras dos variables. Se trata, por tanto, de un sistema compatible
indeterminado, es decir, con infinitas soluciones que dependen de dos parmetros z y t.
x - 2y + z - t
2x - 3 y + 2z - 3t
3x - 5 y + 3z - 4t
-x + y - z +2t
=4
= -1
=0
=6
Solve@8x - 2 y + z - t == 4, 2 x - 3 y + 2 z - 3 t == -1,
3 x - 5 y + 3 z - 4 t == 0, -x + y - z + 2 t == 6<, 8x, y, z, t<D
8<
Departamento de Matem
Practica 4
Eliminate[{ecuacion1,...,ecuacionn},{variables}]
Ejemplo: Hallar la proyeccin en el plano XY de la figura resultante de la interseccin entre el elipsoide y
el plano siguientes:
x2 + 4 y2 + 9 z2 = 1
x+2 y+3z=0
0.5
0.0
-0.5
-1.0
-1.0
Departamento de Matem
-0.5
0.0
0.5
1.0