archivo pdf

Anuncio
practica5.nb
1
Resolución de ecuaciones
El problema que se plantea en esta práctica consiste en encontrar las raíces reales (ceros) de una función f(x) o, lo
que es lo mismo, buscar las soluciones reales de la ecuación f(x)=0. En multitud de ocasiones este problema no
puede resolversede forma exacta, de modo que se recurre a diversas técnicas de aproximación.
En esta práctica aprenderemos algunos comandos:
Solve[ ]
resuelve analíticamente algunas ecuaciones,
NSolve[ ]
resuelve numéricamente la mayoría de las ecuaciones,
FindRoot[ ]
resuelve ecuaciones por el método de "Newton-Raphson"
Break[]
detiene un proceso iterativo.
Resolución analítica con el comando Solve
Para resolver una ecuación de forma analítica se puede utilizar la orden
Solve[ecuación,variable]
con la conveniencia de que ésta efectúa simultáneamente una discusión de casos, si interviene
algún parámetro en la ecuación, según los valores que pueda tomar el mismo.
Veamos algunos ejemplos:
Solve@x6 == 1, xD
88x Ø -1<, 8x Ø 1<, 8x Ø -H-1L1ê3 <, 8x Ø H-1L1ê3 <, 8x Ø -H-1L2ê3 <, 8x Ø H-1L2ê3 <<
Solve[Sin[x] Cos[x]==0,x]
Solve::ifun : Inverse functions are being used by Solve, so some
solutions may not be found; use Reduce for complete solution information .
p
p
98x Ø 0<, 9x Ø - ÅÅÅÅ =, 9x Ø ÅÅÅÅ ==
2
2
More…
En este último caso observará que aparece un mensaje indicando que, debido al método de
resolución empleado, puede que no se encuentren todas las posibles soluciones. Solve tambien
puede resolver ecuaciones dependientes de parámetros e incluso sistemas de ecuaciones:
Solve@8x == 1 + 2 a y, y == 9 + 2 x<, 8x, y<D
1 + 18 a
11
99x Ø - ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ , y Ø - ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ ==
-1 + 4 a
-1 + 4 a
practica5.nb
2
Solve[E^(x+a) - x == 0,x]
InverseFunction ::ifun :
Inverse functions are being used . Values may be lost for multivalued inverses .
Solve::ifun : Inverse functions are being used by Solve, so some
solutions may not be found; use Reduce for complete solution information .
88x Ø -ProductLog@-‰a D<<
More…
More…
En el caso en que los comandos anteriores no resuelvan la ecuación, hay que utilizar algún
método de resolución numérica, como son NSolve o FindRoot.
Resolución directa con el comando NSolve
El comando NSolve[ecuación, incógnitas] resuelve numéricamente la ecuación planteada respecto de las variables
"incógnitas". Veamos cómo usarlo para buscar los ceros de las funciones
f HxL = x5 - 2 x3 + senHxL - ‰-4 x ,
gHxL = 3 x6 - x3 + x2 - 2.
y
Primero dibujamos las funciones para "ver" sus ceros:
f@x_D := x ^ 5 - 2 x ^ 3 + Sin@xD - E ^ H-4 xL;
g@x_D := 3 x ^ 6 - x ^ 3 + x ^ 2 - 2;
Plot@f@xD, 8x, 0, 2<D;
Plot@g@xD, 8x, -1, 1<D;
0.6
0.4
0.2
0.5
1
1.5
2
-0.2
-0.4
-0.6
1
0.5
-1
-0.5
0.5
-0.5
-1
-1.5
-2
Ahora intentamos buscar sus raíces usando NSolve.
1
practica5.nb
3
NSolve@g@xD ã 0, xD
NSolve@f@xD ã 0, xD
88x Ø -0.80644<, 8x Ø -0.56484 - 0.869108 Â<, 8x Ø -0.56484 + 0.869108 Â<,
8x Ø 0.503124 - 0.757847 Â<, 8x Ø 0.503124 + 0.757847 Â<, 8x Ø 0.929872<<
Solve::tdep : The equations appear to involve the
variables to be solved for in an essentially non-algebraic way.
More…
NSolve@-‰-4 x - 2 x3 + x5 + Sin@xD ã 0, xD
Observamos entonces que ¡El comando NSolve no siempre proporciona la información deseada!; aunque ha
encontrado con éxito todas las raices de g (seis en total incluyendo complejas puesto que g(x) es un polinomio de
grado 6) no puede sin embargo hallar los ceros de la función f(x) que es "un poco más complicada".
Veamos otra forma de resolver este problema.
Resolución con el comando FindRoot
El comando FindRoot (Encontrar Raíces) usa un algoritmo numérico (el método de Newton-Raphson) para
localizar sólo una raíz real. Este comando requiere de un valor inicial que esté "próximo" a la raíz buscada. Para
ello podemos valernos de la representación gráfica de la función correspondiente para "intuir" ese valor inicial.
La sintaxis del comando es:
FindRoot[función==0,{variable,valor inicial}].
FindRoot@f@xD ã 0,
FindRoot@f@xD ã 0,
FindRoot@f@xD ã 0,
FindRoot@g@xD ã 0,
FindRoot@g@xD ã 0,
8x Ø 0.337955<
8x,
8x,
8x,
8x,
8x,
.3<D
.8<D
1.2<D
-.8<D
.9<D
8x Ø 0.778612<
8x Ø 1.219<
8x Ø -0.80644<
8x Ø 0.929872<
Método de bisección
El alumno ya debe conocer el método de bisección. Basado en el teorema de Bolzano, se trata de aproximar la
raíz de una función f(x) continua sabiendo que cambia de signo en los extremos de un intervalo dado [a,b].
El algoritmo consiste en ir sustituyendo en cada paso el intervalo por otro de longitud la mitad del anterior, de
manera que en el nuevo intervalo la función siga cambiando de signo en los extremos. Se consigue así un intervalo
tan pequeño como se desee en el que se sabe que hay una raíz de f, y se toma como aproximación de ésta el centro
del intervalo.
Veamos una forma sencilla de programarlo con Mathematica haciendo que el proceso se detenga cuando la
longitud del intervalo obtenido no supere una cierta cota de error (es decir, la aproximación no se aleje de la raíz
más de esa cota) y limitando el número total de pasos.
practica5.nb
4
a = -1.; b = 2.;H*extremos del intervalo inicial*L
n = 25; H*número máximo de pasos permitido Hadaptable a cada casoL*L
error = 10^ H-3L; H*cota de error permitida H~3 cifras decimales exactasL*L
paso = 0;
Do@c = Ha + bL ê 2; H*calcula el punto medio*L
Print@"a=", a, " b=", b, " c=", c, " error=", c - aD;
H*pinta: a, b, c y el error cometido*L
If@c - a < error, Break@DD; H*se detiene si el error no supera la cota*L
If@f@cD ã 0, Break@DD; H*se detiene si ha dado exactamente con la raíz*L
If@f@aD * f@cD < 0, b = c, a = cD; H*elegimos el nuevo intervalo*L
paso = paso + 1, H*aumentamos el contador de paso*L
8i, n<D
Print@"Número de pasos: ", pasoD
Print@"Solución aproximada: ", cD
Ejercicio
1. Aproximar al menos dos soluciones reales distintas de la ecuación :
x3 + 3 x2 - 2 x - 1 = 0
mediante los comandos NSolve, FindRoot y el método de bisección con error máximo permitido 10-5 .
2. Encuentre los puntos de corte de las funciones :
f HxL = x2 - 2 x - 1
g HxL = sen2 HxL
tras representarlas gráficamente.
3. Realize los ejercicios II .14 y II .15 de la relación de ejercicios de teoría del tema II.
Descargar