Beruflich Dokumente
Kultur Dokumente
Mathematica .
Ejemplo 1: Halle las raices de la ecuacin Cos[x]=x utilizando el mtodo de biseccin.
Definimos la funcin:
f@x_D := Cos@xD - x
La orden Plot nos permite dibujar la grfica de la funcin para tener una idea de dnde se encuentra
la raiz (o races):
-2
-1
-1
-2
=.
2
raiz. El punto de medio del primer intervalo corresponde a un valor donde la funcin toma valor negativo,
as que el siguiente intervalo ser el 90, 4 =
f@Pi 4D N
-0.0782914
f@Pi 8D N
0.53118
Pi 4 + Pi 8
2
16
Pi 4 + Pi 8
fB
F N
2
0.242421
Siendo L la longitud del intervalo inicial y el error mximo que se quiere cometer al calcular la
raiz, el nmero de veces,n, que habr que aplicar el mtodo de biseccin es:
Departamento de Matem
Practica 4
Siendo L la longitud del intervalo inicial y el error mximo que se quiere cometer al calcular la
raiz, el nmero de veces,n, que habr que aplicar el mtodo de biseccin es:
Solve@L 2^Hn + 1L , nD
Particularizando para los valores de LPi/2,10^(-6) obtenemos que el nmero de veces que hay
que aplicar el mtodo de biseccin es n=20.
Definimos la funcin biseccin que a partir de un intervalo nos da el siguiente subintervalo donde
se localiza la raiz:
biseccion@8a_, b_<D :=
a+b
a+b
a+b
IfBf@aD fB
F < 0, :a,
>, :
, b>F
2
2
2
biseccion@80, Pi 2<D
:0, >
4
biseccionB:0, >F
4
: , >
8 4
La obtencin de la sucesin de subintervalos se puede obtener fcilmente con la orden NestList del
Mathematica, hay que proporcionar un valor inicial para la funcin, en este caso el intervalo de partida
{0,Pi/2}, y el nmero de veces que se va a iterar, en este caso n=20, para obtener una aproximacin con el
error requerido de 10^(-6).
::0,
3
7
15
>, : , >, :
, >, :
, >, :
, >,
2
4
8 4
16 4
32 4
64
4
15 31
15 61
15 121
15 241
:
,
>, :
,
>, :
,
>, :
,
>,
64
128
64
256
64
512
64
1024
481 241
963 241
1927 241
:
,
>, :
,
>, :
,
>,
2048
1024
4096
1024
8192
1024
1927 3855
1927 7709
15 417 7709
:
,
>, :
,
>, :
,
>,
8192
16 384
8192
32 768
65 536
32 768
30 835 7709
61 671 7709
123 343 7709
:
,
>, :
,
>, :
,
>,
131 072 32 768
262 144 32 768
524 288
32 768
123 343 246 687
123 343 493 373
:
,
>, :
,
>>
524 288
1 048 576
524 288
2 097 152
>, :0,
Departamento de Matem
Practica 4
Si slo se quiere el intervalo final, es suficiente con utilizar la orden Nest en lugar de NestList.
123 343
524 288
493 373
2 097 152
>
Hintfinal@@1DD + intfinal@@2DDL N
2
0.739086
ap =
f@apD N
-1.2419 10-6
Vamos a calcular la raiz con suficiente precisin mediante la orden FindRoot del Mathematica para
poder ver qu error cometemos con el mtodo de biseccin:
ra =
x . FindRoot@f@xD 0, 8x, 0.739<, WorkingPrecision 50D
0.73908513321516064165531208767387340401341175890076
ra - ap
-7.4205 10-7
Ejemplo 2: Halle las raices de la ecuacin Cos[x]=x utilizando el mtodo de Newton.
Primero obtenemos la funcin de iteracin g(x) a partir de la funcin f(x)=Cos[x]-x.
-x + Cos@xD
-1 - Sin@xD
x0 = 0.6
0.6
x1 = g@x0D
0.744017
x2 = g@x1D
0.73909
La obtencin de los sucesivos valores puede hacerse de forma directa mediante la orden NestList.
Departamento de Matem
Practica 4
ra - apNew
0.
Podemos ver el orden de las distintas aproximaciones haciendo la diferencia entre el valor exacto
proporcionado por el Mathematica y la lista de las sucesivas aproximaciones:
Podemos agrupar todo lo anterior, e incluso pedir que trabaje con ms precisin, e incluso aadir
criterios de parada, para que mientras no se cumpla que el valor de la funciin o la diferencia entre dos
valores sucesivos no sea menor que cierta tolerancia dada, se siga aplicando el mtodo. Incluimos un
contador para ver cuantas iteraciones necesitamos.
x00 = 0.6;
cont = 0;
x1 = SetPrecision@g@x0D, 50D;
val = SetPrecision@f@x1D, 50D;
cont = 1;
x1
0.73908513321516064165531208767387340401341175890076
y para ello se han necesitado 6 iteraciones.
cont
6
Comprobemos que se han cumplido las condiciones para el criterio de parada.
f@x1D
0. 10-50
Departamento de Matem
Practica 4
Abs@x1 - x0D
1.70 10-47
datos = NestList@g, x00, 6D;
puntos = Partition@Flatten@Table@8datos@@iDD, datos@@iDD<,
8i, 1, Length@datosD<DD, 2, 1D;
puntos@@1, 2DD = 0;
l1 = Graphics@Line@puntosDD;
0.75
0.70
0.65
0.60
0.55
0.50
0.55
0.60
0.65
0.70
0.75
0.80
Ejemplo 3: Halle las raices de la ecuacin Tan[x]=0 en el intervalo [4,5] mediante el mtodo de
biseccin.
f@x_D := Tan@xD
Si aplicamos la funcin biseccin definida anteriormente al intervalo {4,5} obtenemos la sucesin
de intervalos:
9 19
19 37
19 75
75 151
>, : ,
>, :
,
>, :
,
>, :
,
>,
2
2
4
4
8
4
16
16
32
151 301
151 603
603 1207
603 2413
:
,
>, :
,
>, :
,
>, :
,
>,
32
64
32
128
128
256
128
512
2413 4825
4825 9651
9651 19 301
:
,
>, :
,
>, :
,
>,
512
1024
1024 2048
2048
4096
9651 38 603
9651 77 207
9651 154 415
:
,
>, :
,
>, :
,
>>
2048
8192
2048 16 384
2048
32 768
Departamento de Matem
Practica 4
>
2048
32 768
1
ap = Hintfinal@@1DD + intfinal@@2DDL N
2
4.71239
9651
154 415
f@apD N
527 587.
-2
-4
-6
Hintfinal@@1DD + intfinal@@2DDL N
2
3.14159
ap =
f@apD
1.11289 10-10
El valor exacto es Pi, as que el error cometido es:
Pi - ap
-1.11289 10-10
Veamos ahora cmo aproximar la raiz mediante el mtodo de Newton :
Departamento de Matem
Practica 4
cont = 0;
x1 = SetPrecision@g@x0D, 50D;
val = SetPrecision@f@x1D, 50D;
cont = 1;
While@Or@Hval > 10^H-25LL, HAbs@x1 - x0D > 10^H-25LLD,
x0 = x1; x1 = SetPrecision@g@x0D, 50D;
val = SetPrecision@f@x1D, 50D; cont++D
El valor de la aproximacin es:
x1
3.1415926535897932384626433832795028841971693993751
y para ello se han necesitado 4 iteraciones.
cont
4
Y el error cometido es:
Pi - x1
0. 10-50
PREGUNTA : Si cogiramos como extremo inferior del intervalo
el punto de arranque del mtodo de Newton, a = x0 = 3.1,
y quisiramos obtener la raiz con cuatro iteraciones y con un error menor
que 10-50 utilizando el mtodo de biseccin en el intervalo @a, bD,
cual debera ser el valor de b ?
SetPrecisionBSolveB
b - 3.1
25
== 10-50F, 60F
88b
3.10000000000000008881784197001252323389053344726562
500000000<<
Se obtiene como conclusin que no es posible obtener la raiz con las condiciones que nos indican.
3
222
3
Tenemos que resolver una ecuacin de la que el nmero anterior sea raiz. Ponemos x= 222 , y
elevando al cubo resulta x3 = 222, es decir el valor buscado es una raiz de la funcin polinmica
f(x)=x3 - 222 (la cual por otra parte ser un nmero irracional). Para estimar el valor de esa raiz utilizamos
el mtodo de Newton
Departamento de Matem
Practica 4
200
100
-100
-200
2x
3
x2
x00 = x0 = 8.;
cont = 0;
x1 = SetPrecision@g@x0D, 50D;
val = SetPrecision@f@x1D, 50D;
cont = 1;
While@Or@Hval > 10^H-25LL, HAbs@x1 - x0D > 10^H-25LLD,
x0 = x1; x1 = SetPrecision@g@x0D, 50D;
val = SetPrecision@f@x1D, 50D; cont++D
x1
6.0550489465111047173674805703059618382194330373328
cont
7
Grfica para ilustrar la dinmica del mtodo de Newton (la raiz es el punto de corte de la diagonal
con la grfica de la funcin de iteracin g(x)) :
Departamento de Matem
Practica 4
6.5
6.0
5.5
5.0
5.5
6.0
6.5
7.0
l1 = Graphics@Line@puntosDD;
Departamento de Matem
Practica 4
Ejemplo 5: Halle el intervalo donde el mtodo de Newton converge cuando se utiliza para calcular
la raiz aproximada de la ecuacin ArcTan[x]=0.
Se trata de encontrar si hay dos valores para los cuales los puntos de corte con las respectivas
tangentes con el eje OX son los mismos puntos. De esa forma se originar un bucle en el mtodo de
Newton y no habr convergencia. Estos puntos determinarn un intervalo como el del dibujo dentro del
cual obtendremos convergencia, y fuera del mismo divergencia.
0.5
-2
-1
-0.5
-1.0
1
1+a2
punto con el valor -a y resolviendo la ecuacin resultante obtendremos el valor pedido. Se trata pues de
hallar la raiz de la ecuacin -a=a-(1 + a2 )ArcTan[a], o equivalentemente un cero de la funcin f[x]=2xDepartamento de Matem
10
(1 + x2 )ArcTan[x]. Para ello utilizamos el mtodo de Newton tomando como valor inicial 1.3 y resulta
Practica 4
1
1+a2
punto con el valor -a y resolviendo la ecuacin resultante obtendremos el valor pedido. Se trata pues de
hallar la raiz de la ecuacin -a=a-(1 + a2 )ArcTan[a], o equivalentemente un cero de la funcin f[x]=2x(1 + x2 )ArcTan[x]. Para ello utilizamos el mtodo de Newton tomando como valor inicial 1.3 y resulta
0.5
1.0
1.5
2.0
-0.5
-1.0
-1.5
x0 = 1.3;
cont = 0;
x1 = SetPrecision@g@x0D, 50D;
val = SetPrecision@f@x1D, 50D;
cont = 1;
While@Or@Hval > 10^H-25LL, HAbs@x1 - x0D > 10^H-25LLD,
x0 = x1; x1 = SetPrecision@g@x0D, 50D;
val = SetPrecision@f@x1D, 50D; cont++D
x1
1.3917452002707349244164412881851277450451647359387
cont
6
Comprobemos
que
tomando
este
punto
a=1.3917452002707349244164412881851277450451647359387 se produce un bucle cuando se utiliza el
mtodo de Newton para hallar la raiz de la ecuacin ArcTan[x]=0.
f@x_D := ArcTan@xD
81.3917452002707349244164412881851277450451647359387,
-1.3917452002707349244164412881851277450451647359387,
1.3917452002707349244164412881851277450451647359387,
,
Departamento de Matem
11
Practica 4
-1.3917452002707349244164412881851277450451647359387,
1.3917452002707349244164412881851277450451647359387,
-1.3917452002707349244164412881851277450451647359387,
1.3917452002707349244164412881851277450451647359387,
-1.3917452002707349244164412881851277450451647359387,
1.3917452002707349244164412881851277450451647359387,
-1.3917452002707349244164412881851277450451647359387,
1.3917452002707349244164412881851277450451647359387,
-1.3917452002707349244164412881851277450451647359387,
1.3917452002707349244164412881851277450451647359387,
-1.3917452002707349244164412881851277450451647359387,
1.3917452002707349244164412881851277450451647359387,
-1.3917452002707349244164412881851277450451647359387,
1.3917452002707349244164412881851277450451647359388,
-1.3917452002707349244164412881851277450451647359386,
1.3917452002707349244164412881851277450451647359379,
-1.3917452002707349244164412881851277450451647359366,
1.3917452002707349244164412881851277450451647359345,
-1.3917452002707349244164412881851277450451647359893,
1.3917452002707349244164412881851277450451647360467,
-1.3917452002707349244164412881851277450451647362048,
1.3917452002707349244164412881851277450451647366249,
-1.3917452002707349244164412881851277450451647377306,
1.3917452002707349244164412881851277450451647406352,
-1.3917452002707349244164412881851277450451647483190,
1.3917452002707349244164412881851277450451647685578,
-1.3917452002707349244164412881851277450451685049334,
1.3917452002707349244164412881851277450451769588021,
-1.3917452002707349244164412881851277450452837029774,
1.3917452002707349244164412881851277450446476073774,
-1.3917452002707349244164412881851277450417088715003,
1.3917452002707349244164412881851277450387701356232,
-1.3917452002707349244164412881851277451269322119349,
1.3917452002707349244164412881851277454090508561323,
-1.3917452002707349244164412881851277461466735612733,
1.3917452002707349244164412881851277480480356737283,
-1.3917452002707349244164412881851277530938451746330,
1.3917452002707349244164412881851277662623206397196,
-1.3917452002707349244164412881851278008835680073131,
1.3917452002707349244164412881851278922547438967295,
-1.3917452002707349244164412881851281332781055893313,
1.3917452002707349244164412881851287691970394971724,
-1.3917452002707349244164412881850650447431507708334,
1.3917452002707349244164412881921234686272130614834,
,
12
Departamento de Matem
Practica 4
-1.3917452002707349244164412882047452431107492503700,
1.3917452002707349244164412882299887920778216281431,
-1.3917452002707349244164412882930976644955025725761,
1.3917452002707349244164412884066936348473282725554<
Como el valor que tomamos es aproximado no siempre se repiten los mismos valores, debido a los
errores que se cometen al truncar el valor inicial y debido a los errores que involucran las operaciones, pero
de todas formas se ve la alternancia de los valores que se obtienen y la convergencia tan lenta que presentan
(de hecho el ltimo valor de la lista anterior es mayor que x1, con lo cual en realidad habr divergencia).Para
valores
ms
pequeos
que
el
valor
de
a=1.3917452002707349244164412881851277450451647359387 habr convergencia, y para valores
mayores habr divergencia.
x0 = 1.39;
cont = 0;
x1 = SetPrecision@g@x0D, 50D;
val = SetPrecision@f@x1D, 50D;
cont = 1;
While@Or@Hval > 10^H-25LL, HAbs@x1 - x0D > 10^H-25LLD,
x0 = x1; x1 = SetPrecision@g@x0D, 50D;
val = SetPrecision@f@x1D, 50D; cont++D
x1
0
cont
12
Para valores de arranque que originan divergencia hemos de considerar un criterio de paro consistente en un nmero mximo de iteraciones. En este caso hemos considerado tal nmero igual a 20, as que
cuando el contador llega a ese valor el proceso se termina.
x0 = 1.45;
cont = 0;
x1 = SetPrecision@g@x0D, 50D;
val = SetPrecision@f@x1D, 50D;
cont = 1;
While@Or@Hval > 10^H-25LL, HAbs@x1 - x0D > 10^H-25LLD &&
cont < 20, x0 = x1; x1 = SetPrecision@g@x0D, 50D;
val = SetPrecision@f@x1D, 50D; cont++D
cont
20
x1
1.2528661619609705806006104269440310733892352973287
1072 217
Departamento de Matem
13
Practica 4
sol = FindRootB:a -
f@aD
f'@aD
b, b -
f@bD
f'@bD
8a 1.3917452002707349244164412881851277450451647359387,
b
-1.3917452002707349244164412881851277450451647359387<
14
Departamento de Matem