Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Mathematica .
Fundamentos de Matemticas III . Grado en Ingeniera
Civil.
Prctica n 2. Mtodos de resolucin aproximada de
ecuaciones.
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
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
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:
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
::n
-Log@2D - LogA L E
Log@2D
>>
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.
-Log@2D - LogA L E
Log@2D
19.5831
. 8L Pi 2, 10^H-6L< N
Log@2, Pi 2 10^6D - 1 N
19.5831
Definimos la funcin biseccin que a partir de un intervalo nos da el siguiente subintervalo donde se localiza
la raiz:
:0, >
4
biseccionB:0, >F
4
: , >
4 8
a+b
2
F < 0, :a,
a+b
2
>, :b,
a+b
2
>F
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
4 8
4 16
4 32
4
64
15 31
15 61
15 121
15 241
:
,
>, :
,
>, :
,
>, :
,
>,
64
128
64
256
64
512
64
1024
241 481
241 963
241 1927
:
,
>, :
,
>, :
,
>,
1024
2048
1024
4096
1024
8192
1927 3855
1927 7709
7709 15 417
:
,
>, :
,
>, :
,
>,
8192
16 384
8192
32 768
32 768
65 536
7709 30 835
7709 61 671
7709 123 343
:
,
>, :
,
>, :
,
>,
32 768 131 072
32 768 262 144
32 768
524 288
123 343 246 687
123 343 493 373
:
,
>, :
,
>>
524 288
1 048 576
524 288
2 097 152
>, :0,
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
>
ap =
intfinal@@1DD + intfinal@@2DD
2
0.739086
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:
El error entre la raiz proporcionada por el Mathematica y la aproximacin mediante el mtodo de biseccin
es menor que la tolerancia que exigimos al principio, como era de esperar.
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.
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.
x0 = 0.6;
cont = 0;
x1 = SetPrecision@g@x0D, 50D;
val = SetPrecision@f@x1D, 50D;
cont = 1;
x1
0.73908513321516064165531208767387340401341175890076
y para ello ha necesitado 6 iteraciones.
cont
6
Comprobemos que se han cumplido las condiciones para el criterio de parada.
f@x1D
0. 10-50
Abs@x1 - x0D
1.70 10-47
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
>, : ,
>, :
,
>, :
,
>,
2
2
4
4
8
4
16
75 151
151 301
151 603
603 1207
:
,
>, :
,
>, :
,
>, :
,
>,
16
32
32
64
32
128
128
256
603 2413
2413 4825
4825 9651
9651 19 301
:
,
>, :
,
>, :
,
>, :
,
>,
128
512
512
1024
1024 2048
2048
4096
9651 38 603
9651 77 207
9651 154 415
:
,
>, :
,
>, :
,
>>
2048
8192
2048 16 384
2048
32 768
intfinal = Nest@biseccion, 84, 5<, 15D
:
>
2048
32 768
intfinal@@1DD + intfinal@@2DD
ap =
N
2
4.71239
9651
154 415
f@apD N
527 587.
-2
-4
-6
Si partimos de un intervalo adecuado, digamos {3,3.5} s que obtendremos una aproximacin a la raiz:
ap =
intfinal@@1DD + intfinal@@2DD
2
3.14159
f@apD
1.11289 10-10
El valor exacto es Pi, as que el error cometido es:
Pi - ap
-1.11289 10-10
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 ha necesitado 4 iteraciones.
cont
4
Y el error cometido es:
Pi - x1
0. 10-50
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
200
100
-100
-200
2x
3
x2
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
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
Sea a>0 el punto inicial. La recta tangente en ese punto a la curva es y - ArcTan@aD =
1
1+a2
Hx - aL y
corta al eje OX en el punto a-(1 + a2 )ArcTan[a]. Igualando este 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
2 x - I1 + x2M ArcTan@xD
1 - 2 x ArcTan@xD
0.5
-0.5
-1.0
-1.5
x0 = 1.3;
1.0
1.5
2.0
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,
-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,
10
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,
-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.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
0
11
cont
8
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
NestList@g, 1.45, 20D
sol = FindRootB:a -
f@aD
f'@aD
b, b -
f@bD
f'@bD
8a 1.3917452002707349244164412881851277450451647359387,
b -1.3917452002707349244164412881851277450451647359387<