Metodos Numericos - Medio, Falsi, Newton

download Metodos Numericos - Medio, Falsi, Newton

of 33

Transcript of Metodos Numericos - Medio, Falsi, Newton

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    1/33

    1

    Aplicacin Iteracin Indefinida: DoDoLoopLoop

    Mtodos para hallar races de funciones: Newton-Raphson Biseccin

    Secante

    Regla Falsa (Regula Falsi)

    Algoritmos y programacin

    Sem. II 2008Clase 3(II)

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    2/33

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    3/33

    Clase 63

    Dada una funcin f: Df: D RR RR Se trata de hallar un valor {x{x00 D|f(xD|f(x00)= 0})= 0}

    Es decir, encontrar las soluciones de la ecuacinf(xf(x) = 0) = 0

    Este procedimiento ser ms o menos

    complicado dependiendo de la expresinalgebraica de la funcin f(xf(x)).

    Qu es la raz de una

    funcin?

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    4/33Clase 64

    Existen muchos mtodos para hallar races defunciones:

    Mtodo de Newton-Raphson

    Mtodo de Biseccin

    Mtodo de la Secante

    Mtodo de la Regla Falsa (Regula Falsi)

    Todos estos mtodos comparten las mismascaractersticas:

    Cmo se encuentran races

    de funciones?

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    5/33Clase 65

    La bsqueda de la raz se inicia en: un intervalo conocido donde se

    encuentre la raz o,

    un punto inicial cercano a la raz.

    La raz encontrada es una aproximacin

    a la raz

    Mtodos numricos para

    encontrar races

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    6/33Clase 66

    Encuentra la raz de una funcin dado unintervalo

    Se basa en el

    Teorema deTeorema de BolzanoBolzano:

    Si f(xf(x)) es una funcin continua en el intervalo[a, b][a, b]

    , y si, adems, en los extremos delintervalo la funcin f(xf(x)) toma valores de signoopuesto (f(af(a)*)*f(bf(b) < 0) < 0), entonces existe almenos un valor cc (a, b)(a, b) para el que secumple: f(cf(c) = 0) = 0.

    Biseccin

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    7/33

    MMtodo de la Biseccitodo de la Biseccin:n:1. Establecer:

    f(xf(x):): funcin a la cual se le busca una raz.

    [a, b][a, b]: intervalo para iniciar la bsqueda > 0> 0 : margen de error2. Calcular:c = (a+b)/2c = (a+b)/2si |f(c|f(c)|

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    8/33

    MMtodo de la Biseccitodo de la BiseccinnYY

    XX

    Existe una raz en el intervalo [a, b][a, b] ya quef(af(a)*)*f(bf(b) < 0) < 0

    y =y =f(xf(x))

    aa

    bb

    f(f( ))

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    9/33

    YY

    XX

    y =y =f(xf(x))

    aabb

    cc

    c = (a+b)/2.

    Si f(c) = 0 entoncesc

    es la raz,

    de lo contrario,

    si f(a)*f(c) < 0 entonces la raz se encuentra en el intervalo [a, c]si f(c)*f(b) < 0. entonces la raz se encuentra en el intervalo [c, b]

    c =(a+b)/2

    f(f( ))

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    10/33

    YY

    XX

    y =y =f(xf(x))

    aabb

    cc

    Si f(c)*f(b) < 0 entonces

    a

    c

    La raz se encuentraen [c, b]

    :

    f(c)*f(b)0

    f(f( ))

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    11/33

    YY

    XX

    y =y =f(xf(x))

    bbaa

    c = (a+b)/2.

    Si f(c) = 0 entoncesc

    es la raz,

    de lo contrario,

    si f(a)*f(c) < 0 entonces la raz se encuentra en el intervalo [a, c]si f(c)*f(b) < 0. entonces la raz se encuentra en el intervalo [c, b]

    c =(a+b)/2

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    12/33

    Clase 612

    Hacer un programa en VB que permita obtener la razde la funcin por el Mtodo de la Biseccin:

    604.0)9.0(

    1

    01.0)3.0(

    1)(

    22

    ++

    +=

    xxxf

    Ejemplo

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    13/33

    Clase 613

    604.0)9.0(

    101.0)3.0(

    1)( 22 +

    ++

    =xx

    xf

    Private Function F(XAs Double)As DoubleF = 1 / ((X - 0.3) ^ 2 + 0.01) + 1 / _

    ((X - 0.9) ^ 2 + 0.04) - 6End Function

    1. Definicin de la funcin

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    14/33

    Clase 614

    DimAAs Double, BAs Double, NAs Long

    DimepsilonAs Double, XAs Double, CAs DoubleA = Val(Text1.Text): B = Val(Text2.Text)epsilon = Val(Text3.Text): N = 0Do

    C = (A + B) / 2IfAbs(F(C)) < epsilon ThenX = C: Exit Do

    ElseIf F(A) * F(C) < 0 ThenB = C

    ElseA = C

    End IfN = N + 1

    Loop While (Abs(F(C)) >= epsilon)Text4.Text = C: Text5.Text = N

    2. Algoritmo en basic

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    15/33

    Clase 615

    3. Interfaz

    http://../Diapositivas_2006/M%E9%B4%AFdo%20Biseccion.exehttp://../Diapositivas_2006/M%E9%B4%AFdo%20Biseccion.exe
  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    16/33

    y =y =f(xf(x))

    YY

    XXXX11 XX00X0: Aproximacin

    inicial

    (0,F(X0))

    X1: nuevaaproximacin

    Mtodo de Newton-Raphson

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    17/33

    )(

    )(

    0

    001

    Xf

    XfXX =

    y =y =f(xf(x))

    YY

    XX

    La aproximacin X1

    es la interseccin con el eje X de la lneatangente a la grfica de ff

    en (X0

    , f(X0

    )):

    XX11 XX00

    X0: Aproximacininicial

    (0,F(X0))

    X1: nueva

    aproximacin

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    18/33

    Clase 618

    )()(

    0

    001

    XfXfXX

    )()(

    1

    112

    XfXfXX

    y =y =f(xf(x))

    YY

    XXXX11 XX00XX22

    La aproximacin X2

    es la interseccin con el eje X de la lnea tangente a la grficade ff

    en (X1

    , f(X1

    ))

    Mtodo de Newton-Raphson

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    19/33

    Clase 619

    1,)(

    )(

    1

    1

    1

    =

    n

    Xf

    XfXX

    n

    n

    nn

    La anterior funcin corresponde a la interseccinde la recta tangente de f(xf(x)) en XX

    nn--11

    con el ejede las X.X.

    Dicha interseccin, llamada XXnn, corresponde a

    una aproximacin de la raz para la funcinf(xf(x)), cuando f(Xf(Xnn))==00 f(Xf(Xnn)) epsilonepsilon

    Este mtodo no siempre es convergente.

    Cul es la aproximacin de la

    raz?

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    20/33

    Clase 620

    El mtodo es atrapado por una raz imaginaria dela funcin f(xf(x)):

    Cundo falla el mtodo de

    Newton-Raphson?

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    21/33

    Clase 621

    Cuando la raz es un Punto de Inflexin: ff(x)=0(x)=0

    Cundo falla el mtodo de

    Newton-Raphson?

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    22/33

    Clase 622

    El mtodo cae en un punto mximo mnimo (oen sus cercanas):

    Cundo falla el mtodo de

    Newton-Raphson?

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    23/33

    Clase 623

    f(xf(x):): funcin cuya raz se va a encontrar.

    ff(x):(x): derivada de f(xf(x))

    XX00

    : punto de inicio partir del cual se va a iniciar el

    proceso.2. Si f(Xf(X00)=0)=0 entonces la raz es XX00,

    de lo contrario:

    Calcule XX11

    mediante la ecuacin:

    haga XX00

    igual a XX11..

    3. Repetir el paso 2 hasta que |f(Xf(X00)|)| epsilonepsilon4. Mostrar XX00

    )()(

    0

    001

    XfXfXX

    Algoritmo mtodo Newton-

    Raphson

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    24/33

    Clase 624

    Hacer un programa en VB que permita obtener la raz

    de la funcin por el Mtodo de Newton-Raphson:

    604.0)9.0(

    1

    01.0)3.0(

    1)(

    22

    ++

    +=

    xxxf

    Ejemplo 2.

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    25/33

    Clase 625

    604.0)9.0(

    101.0)3.0(

    1)( 22 +

    ++

    =xx

    xf

    Private Function F(XAs Double)As DoubleF = 1 / ((X - 0.3) ^ 2 + 0.01) + 1 / _

    ((X - 0.9) ^ 2 + 0.04) - 6

    End Function

    2.1. Definir la funcin

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    26/33

    Clase 626

    ( ) ( )2222 04.0)9.0()9.0(2

    01.0)3.0()3.0(2)(

    +

    +

    =

    xx

    xxxf

    Private Function DF(XAs Double)As DoubleDF = -2 * (X - 0.3) / ((X - 0.3) ^ 2 + _

    0.01) ^ 2 - 2 * (X - 0.9) / _((X - 0.9) ^ 2 + 0.04) ^ 2

    End Function

    2.2. Definir una funcin para

    la derivada

    d d l d

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    27/33

    Clase 627

    DimX0As Double, X1As Double, NAs IntegerDimepsilonAs DoubleX0 = Val(Text1.Text)epsilon = Val(Text2.Text)

    N = 0Do

    If (f(X0) = 0) Then Exit Do

    X1 = X0 F(X0)/DF(X0)X0 = X1N = N + 1

    Loop While(Abs(F(X0)) > epsilon)Text3.Text = X0

    2.3. Cdigo en VB del mtodo

    Newton-Raphson

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    28/33

    Clase 628

    2.4. Interfaz grfica

    http://../Diapositivas_2006/M%E9%B4%AFdo%20de%20Newton-Raphson.exehttp://../Diapositivas_2006/M%E9%B4%AFdo%20de%20Newton-Raphson.exe
  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    29/33

    Clase 629

    Investigar los mtodos de Secante yRegla Falsa

    Hacer los algoritmos para los mtodos de

    la Secante y la Regla Falsa

    Implementar ambos algoritmos en VB en

    el computador

    Tareas

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    30/33

    Clase 630

    Regla falsa

    Modifica el mtodo de biseccin para acelerar laconvergencia.

    Unir los dos puntos del intervalo que encierra laraz con una recta

    La interseccin de esta recta con el eje x es una

    aproximacin a la raz

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    31/33

    Clase 631

    Secante

    Parte de un intervalo [x0,x1] Estima la pendiente de la recta que une los

    extremos del intervalo como:

    f(x0)=(f(x1)-f(x0))/(x1-x0) Sustituye f(x0) en el mtodo de Newton para

    calcular la nueva raz como:

    Los dos ltimos puntos obtenidos x1, x2 seemplean en la iteracin siguiente.

    )(

    ))((

    01

    01002

    XXf

    XXXfXX

    =

    MMtodo de la Regla falsatodo de la Regla falsa

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    32/33

    Clase 632

    MMtodo de la Regla falsatodo de la Regla falsa1. Establecer:

    f(xf(x):): funcin a la cual se le busca una raz.[a, b][a, b]: intervalo para iniciar la bsqueda

    > 0> 0 : margen de error

    2. inicializarq0=q0=f(af(a))

    q1=q1=f(bf(b))

    3. calcular:3. calcular:c = bc = b--(q1/(q1(q1/(q1--q0))*(bq0))*(b--a)a)

    si |c|c--b|b|

  • 8/8/2019 Metodos Numericos - Medio, Falsi, Newton

    33/33

    Regla falsaSub Regula_Falsi(ByVal a As Double, ByVal b As Double, ByValTol As Double, _ByVal N As Integer, ByRef Flag As Boolean,ByRef r As Double)

    Dim q, q0, q1, p As Double

    Dim i As Integer

    i = 2q0 = f(a)q1 = f(b)Do While (i