14
Introducción al programa Mathematica . Ejemplo 1: Halle las raices de la ecuación Cos[x]=x utilizando el método de bisección. Definimos la función: f@x_D := Cos@xD - x La orden Plot nos permite dibujar la gráfica de la función para tener una idea de dónde se encuentra la raiz (o raíces): Plot@f@xD, 8x, - 2, 2<D -2 -1 1 2 -2 -1 1 La raiz está localizada en el intervalo90, Π 2 =. Aplicaremos el método de bisección para hallar la raiz. El punto de medio del primer intervalo corresponde a un valor donde la función 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 3 Π 16 fB Pi 4 + Pi 8 2 F N 0.242421 Siendo L la longitud del intervalo inicial y Ε el error máximo que se quiere cometer al calcular la Departamento de Matem 1

Métodos de Resolucion Aproximada de Ecuaciones

  • Upload
    higinio

  • View
    59

  • Download
    9

Embed Size (px)

DESCRIPTION

Se estudian los métodos básicos de resolución aproximada de ecuaciones no lineales y su implementación mediante el programa Mathematica.

Citation preview

  • Introduccin al programa

    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 - xLa orden Plot nos permite dibujar la grfica de la funcin para tener una idea de dnde se encuentra

    la raiz (o races): Plot@f@xD, 8x, -2, 2

  • Siendo L la longitud del intervalo inicial y el error mximo que se quiere cometer al calcular laraiz, el nmero de veces,n, que habr que aplicar el mtodo de biseccin es:

    Solve@L2^Hn + 1L , nDSolve::ifun: Inverse functions are being used by Solve, so some

    solutions may not be found; use Reduce for complete solution information.

    ::n K-Log@2D - LogBLFO Log@2D>>

    Particularizando para los valores de LPi/2,10^(-6) obtenemos que el nmero de veces que hayque aplicar el mtodo de biseccin es n=20.

    K-Log@2D - LogBLFO Log@2D . 8L Pi2, 10^H-6L< N

    19.5831

    Log@2, Pi2 10^6D - 1 N19.5831

    Definimos la funcin biseccin que a partir de un intervalo nos da el siguiente subintervalo dondese localiza la raiz:

    biseccion@8a_, b_, :a + b2

    , b>F

    biseccion@80, Pi2

    biseccionB:0, 4>F

    :8,

    4>

    La obtencin de la sucesin de subintervalos se puede obtener fcilmente con la orden NestList delMathematica, 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 elerror requerido de 10^(-6).

    NestList@biseccion, 80, Pi2, :0,

    4>, :

    8,

    4>, :3

    16,

    4>, :7

    32,

    4>, :15

    64,

    4>,

    :15 64

    ,

    31

    128>, :15

    64,

    61

    256>, :15

    64,

    121

    512>, :15

    64,

    241

    1024>,

    :481 2048

    ,

    241

    1024>, :963

    4096,

    241

    1024>, :1927

    8192,

    241

    1024>,

    :1927 8192

    ,

    3855

    16384>, :1927

    8192,

    7709

    32768>, :15417

    65536,

    7709

    32768>,

    :30835 131072

    ,

    7709

    32768>, :61671

    262144,

    7709

    32768>, :123343

    524288,

    7709

    32768>,

    :123343 524288

    ,

    246687

    1048576>, :123343

    524288,

    493373

    2097152>>

    Practica 4 Introduccion al programa Mathematica

    2 Departamento de Matem

  • Si slo se quiere el intervalo final, es suficiente con utilizar la orden Nest en lugar de NestList.

    intfinal = Nest@biseccion, 80, Pi2

    La aproximacin de la raiz buscada se obtiene como el punto intermedio del intervalo.

    ap =1

    2Hintfinal@@1DD + intfinal@@2DDL N

    0.739086El valor de la funcin en el punto que acabamos de obtener es:

    f@apD N-1.241910-6

    Vamos a calcular la raiz con suficiente precisin mediante la orden FindRoot del Mathematica parapoder ver qu error cometemos con el mtodo de biseccin:

    ra =

    x . FindRoot@f@xD 0, 8x, 0.739

  • NestList@g, x0, 20D80.6, 0.744017, 0.73909, 0.739085, 0.739085, 0.739085,0.739085, 0.739085, 0.739085, 0.739085, 0.739085,0.739085, 0.739085, 0.739085, 0.739085, 0.739085,0.739085, 0.739085, 0.739085, 0.739085, 0.739085 10^H-25LL, HAbs@x1 - x0D > 10^H-25LLD,x0 = x1; x1 = SetPrecision@g@x0D, 50D;val = SetPrecision@f@x1D, 50D; cont++DEl valor de la aproximacin es:

    x1

    0.73908513321516064165531208767387340401341175890076y para ello se han necesitado 6 iteraciones.

    cont

    6Comprobemos que se han cumplido las condiciones para el criterio de parada.

    [email protected]

    Practica 4 Introduccion al programa Mathematica

    4 Departamento de Matem

  • Abs@x1 - x0D1.7010-47

    datos = NestList@g, x00, 6D;puntos = Partition@Flatten@Table@8datos@@iDD, datos@@iDD, :603

    128,

    1207

    256>, :603

    128,

    2413

    512>,

    :2413512

    ,

    4825

    1024>, :4825

    1024,

    9651

    2048>, :9651

    2048,

    19301

    4096>,

    :96512048

    ,

    38603

    8192>, :9651

    2048,

    77207

    16384>, :9651

    2048,

    154415

    32768>>

    Introduccion al programa Mathematica Practica 4

    Departamento de Matem 5

  • intfinal = Nest@biseccion, 84, 5

    ap =1

    2Hintfinal@@1DD + intfinal@@2DDL N

    4.71239

    f@apD N527587.

    El valor encontrado evidentemente no es raiz de la ecuacin. Sencillamente porque la ecuacin notiene ninguna raiz en el intervalo de partida. Ntese que sin embargo el mtodo de biseccin se aplica sinproblemas:

    Plot@f@xD, 8x, 0, 5

  • 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++DEl valor de la aproximacin es:

    x1

    3.1415926535897932384626433832795028841971693993751y para ello se han necesitado 4 iteraciones.

    cont

    4Y el error cometido es:

    Pi - x1

    0.10-50

    PREGUNTA : Si cogiramos como extremo inferior del intervaloel punto de arranque del mtodo de Newton, a = x0 = 3.1,

    y quisiramos obtener la raiz con cuatro iteraciones y con un error menorque 10-50 utilizando el mtodo de biseccin en el intervalo @a, bD,

    cual debera ser el valor de b?

    SetPrecisionBSolveB b - 3.125

    == 10-50F, 60F

    88b 3.10000000000000008881784197001252323389053344726562500000000

  • Plot@f@xD, 8x, 0, 8
  • Plot@8x, g@xD
  • Plot@8x, g@xD
  • Sea a>0 el punto inicial. La recta tangente en ese punto a la curva esy - ArcTan@aD = 1

    1+a2Hx - 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 dehallar 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

    f@x_D := 2 x - H1 + x^2L ArcTan@xDg@x_D = x - f@xDf'@xDx - I2 x - I1 + x2M ArcTan@xDMH1 - 2 x ArcTan@xDLPlot@f@xD, 8x, 0, 2 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

    6Comprobemos que tomando este punto

    a=1.3917452002707349244164412881851277450451647359387 se produce un bucle cuando se utiliza elmtodo de Newton para hallar la raiz de la ecuacin ArcTan[x]=0.

    f@x_D := ArcTan@xDg@x_D = x - f@xDf'@xDx - I1 + x2M ArcTan@xDSetPrecision@NestList@g, x1, 50D, 50D81.3917452002707349244164412881851277450451647359387,-1.3917452002707349244164412881851277450451647359387,1.3917452002707349244164412881851277450451647359387,

    ,

    Introduccion al programa Mathematica Practica 4

    Departamento de Matem 11

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

    ,

    Practica 4 Introduccion al programa Mathematica

    12 Departamento de Matem

  • -1.3917452002707349244164412882047452431107492503700,1.3917452002707349244164412882299887920778216281431,-1.3917452002707349244164412882930976644955025725761,1.3917452002707349244164412884066936348473282725554 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

    12Para valores de arranque que originan divergencia hemos de considerar un criterio de paro consis-

    tente en un nmero mximo de iteraciones. En este caso hemos considerado tal nmero igual a 20, as quecuando 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.25286616196097058060061042694403107338923529732871072217

    Introduccion al programa Mathematica Practica 4

    Departamento de Matem 13

  • NestList@g, 1.45, 20D91.45, -1.55026, 1.84593, -2.88911, 8.67845, -102.443,16281.4, -4.16359108, 2.723051017, -1.164741035,2.130991070, -7.1331710140, 7.9925410281,-1.00343602722656810564, 1.581609469953546101128,-3.92932897158335102256, 2.42525080700910104513,-9.2391749867017109026, 1.340868727928971018054,-2.82418018348911036108, 1.25286616203421072217=

    NOTA : aunque en este problema, debido a la simetra impar de la funcin,

    hemos podido reducir el clculo de los bucles a determinar la solucin de una nica ecuacin,

    en general habr que resolver un sistema de la forma :a -f @aDf '@aD

    b, b -f @bDf '@bD

    a> .

    sol = FindRootB:a - f@aDf'@aD

    b, b -f@bDf'@bD

    a>, 8a, 1.4