Sei sulla pagina 1di 9

Introduccin al programa

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.

Resolucin exacta de ecuaciones: Solve y Reduce.


Primero estudiaremos la resolucin simblica, representada por la instruccin:

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

Introduccion al programa Mathematica

% . b 0

:8x 0<, 8x 0<, :x

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=,

9x RootA3 + 2 12 + 15 &, 2E=, 9x RootA3 + 2 12 + 15 &, 3E=,

9x RootA3 + 2 12 + 15 &, 4E=, 9x RootA3 + 2 12 + 15 &, 5E==

SolveAx5 + 2 x2 + 3 == 0, xE N

88x -1.49511<, 8x -0.186664 - 1.02579 <, 8x -0.186664 + 1.02579 <,


8x 0.934218- 0.986422 <, 8x 0.934218+ 0.986422 <<

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

Introduccion al programa Mathematica

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

Restricciones de la solucin de una ecuacin


A veces queremos calcular las soluciones de una ecuacin pero restringidas a unos casos concretos: por
ejemplo, slo las soluciones que sean nmeros reales, o solo las soluciones que sean positivas. En ese caso,
es preferile utilizar Reduce, que admite ese tipo de restricciones, mientras que Solve no lo hace:

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

Introduccion al programa Mathematica

ReduceAx2 + y2 == 1, x, IntegersE
Hy -1 && x 0L Hy 0 && x -1L Hy 0 && x 1L Hy 1 && x 0L

Las restricciones ms habituales son Reals, Integers, x>0, etc.

Inecuaciones y restricciones lgicas


Reduce permite adems trabajar con inecuaciones y con expresiones lgicas:

Reduce@8x + y 4, 2 x - y 1<, 8x, y<D


x

&& y

7
3

x >

&& 4 - x y -1 + 2 x

RegionPlot@8x + y 4, 2 x - y 1<, 8x, -6, 6<, 8y, -6, 6<D


6

-2

-4

-6
-6

-4

-2

Resolucin numrica de ecuaciones: NSolve y FindRoot.


Cuando la ecuacin no puede resolverse de manera exacta, Mathematica permite dar una aproximacin
numrica de las soluciones con los siguientes comandos:

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

Introduccion al programa Mathematica

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=,

9x RootA-7 - 3 1 + 2 12 - 4 13 + 14 + 15 &, 2E=,


9x RootA-7 - 3 1 + 2 12 - 4 13 + 14 + 15 &, 3E=,
9x RootA-7 - 3 1 + 2 12 - 4 13 + 14 + 15 &, 4E=,

9x RootA-7 - 3 1 + 2 12 - 4 13 + 14 + 15 &, 5E==

Podemos entonces calcular su valor nmerico

SolveAx5 + x4 - 4 x3 + 2 x2 - 3 x - 7 == 0, xE N

88x -2.74463<, 8x -0.880858<, 8x 1.79645<,


8x 0.41452- 1.19996 <, 8x 0.41452+ 1.19996 <<

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:

FindRoot@ecuacin, 8variable, valor inicial, min, max<D

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

Introduccion al programa Mathematica

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:

Plot@8Cos@xD, 2 x<, 8x, -, <D

-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:

FindRoot@Cos@xD == 2 x, 8x, 1<D


8x 0.450184<

Ejemplo: Encontrar la raz de la ecuacin cos x = tg x ms cercana a 0.

Esta ecuacin tiene infinitas soluciones debido a su periodicidad, como podemos ver si representamos
ambas funciones:

Departamento de Matem

Introduccion al programa Mathematica

Practica 4

Plot@8Cos@xD, Tan@xD<, 8x, -6, 6<D


3
2
1

-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.

FindRoot@Cos@xD == Tan@xD, 8x, 0, -1, 1<D


8x 0.666239<

Si a la instruccin FindRoot le damos una funcin en primer lugar, nos halla los ceros de esa funcin:

FindRoot@Cos@xD - Tan@xD, 8x, 0<D


8x 0.666239<

FindRoot@Sin@xD, 8x, 3<D


8x 3.14159<

FindRoot@Sin@xD, 8x, 6<D


8x 6.28319<

Resolucin de sistemas de ecuaciones.


La principal opcin que presenta Mathematica para resolver sistemas de ecuaciones algebraicas
(polinomios) es:

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

Introduccion al programa Mathematica

Solve@8x^2 + y^2 == 4, 4 x - 3 y == 0<, 8x, y<D


6
8
6
8
::x - , y - >, :x , y >>
5
5
5
5

Ejemplo: Resolver el siguiente sistema de ecuaciones lineales:

x-2 y+ z=7
2x-5 y+2z=6
3x+2 y- z=1

Solve@8x - 2 y + z == 7, 2 x - 5 y + 2 z == 6, 3 x + 2 y - z == 1<, 8x, y, z<D


88x 2, y 8, z 21<<

Este sistema tambin se puede dar en forma matricial:

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<<

Ejemplo: Resolver el sistema de ecuaciones lineales

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.

88x -14 + 3 t - z, y -9 + t<<

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.

Ejemplo: Resolver el sistema de ecuaciones lineales

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<

Como vemos, el sistema no tiene solucin, se trata de un sistema incompatible.


Tambin podemos eliminar variables en un sistema de ecuaciones, utilizando la expresin:

Departamento de Matem

Introduccion al programa Mathematica

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

Eliminate@8x^2 + 4 y^2 + 9 z^2 1, x + 2 y + 3 z 0<, 8z<D


1 - 8 y2 2 x 2 + 4 x y

ContourPlotA1 - 8 y2 == 2 x2 + 4 x y, 8x, -1, 1<, 8y, -1, 1<E


1.0

0.5

0.0

-0.5

-1.0
-1.0

Departamento de Matem

-0.5

0.0

0.5

1.0

Potrebbero piacerti anche