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.exe8/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.exe8/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