Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sem. II 2008
Clase 3(II)
Aplicación Iteración Indefinida: Do…Loop
Métodos para hallar raíces de funciones:
Newton-Raphson
Bisección
Secante
Regla Falsa (Regula Falsi)
1
Raíces de funciones
Encontrar raíces de funciones es uno de los
problemas más comunes en ingeniería
Los métodos numéricos para encontrar raíces de
funciones se usan cuando las técnicas analíticas
no pueden ser aplicadas.
Esto último depende de la naturaleza de la
función f(x).
2
Clase 6
¿Qué es la raíz de una
función?
Dada una función f: D ⊂ R Î R
Se trata de hallar un valor {x0 ∈ D|f(x0)= 0}
Es decir, encontrar las soluciones de la ecuación
f(x) = 0
Este procedimiento será más o menos
complicado dependiendo de la expresión
algebraica de la función f(x).
3
Clase 6
¿Cómo se encuentran raíces
de funciones?
Existen muchos métodos para hallar raíces de
funciones:
Método de Newton-Raphson
Método de Bisección
Método de la Secante
Método de la Regla Falsa (Regula Falsi)
Todos estos métodos comparten las mismas
características:
4
Clase 6
Métodos numéricos para
encontrar raíces
La búsqueda de la raíz se inicia en:
un intervalo conocido donde se
encuentre la raíz o,
un punto inicial cercano a la raíz.
5
Clase 6
Bisección
Encuentra la raíz de una función dado un
intervalo
Se basa en el
Teorema de Bolzano:
Bolzano
Si f(x) es una función continua en el intervalo
[a, b],
b] y si, además, en los extremos del
intervalo la función f(x) toma valores de signo
opuesto (f(a)*f(b) < 0), 0 entonces existe al
menos un valor c ∈ (a, b) para el que se
cumple: f(c) = 0. 0 6
Clase 6
Método de la Bisección:
1. Establecer:
f(x): función a la cual se le busca una raíz.
[a, b]:
b] intervalo para iniciar la búsqueda
ε > 0 : margen de error
2. Calcular:
c = (a+b)/2
si |f(c)| < ε entonces,
c es la raíz, finalizar.
de lo contrario,
si f(a)*f(c)<0 entonces,
b = c
de lo contrario,
a = c
3. Repetir el paso 2 hasta que se finalice.
Método de la Bisección
y = f(x)
Y
b
a X
c =(a+b)/2
b
a c X
c = (a+b)/2.
Si f(c) = 0 entonces
c es la raíz,
de lo contrario,
si f(a)*f(c) < 0 entonces la raíz se encuentra en el intervalo [a, c]
si f(c)*f(b) < 0. entonces la raíz se encuentra en el intervalo [c, b]
y = f(x)
Y
La raíz se encuentra
en [c, b] :
f(c)*f(b)<0
b
a c X
f(c)*f(a)>0
c =(a+b)/2
b
a X
c = (a+b)/2.
Si f(c) = 0 entonces
c es la raíz,
de lo contrario,
si f(a)*f(c) < 0 entonces la raíz se encuentra en el intervalo [a, c]
si f(c)*f(b) < 0. entonces la raíz se encuentra en el intervalo [c, b]
Ejemplo
Hacer un programa en VB que permita obtener la raíz
de la función por el Método de la Bisección:
1 1
f (x) = + −6
( x − 0 . 3 ) + 0 . 01 ( x − 0 . 9 ) + 0 . 04
2 2
12
Clase 6
1. Definición de la función
1 1
f ( x) = + −6
( x − 0 .3) + 0 .01 ( x − 0 .9 ) + 0 . 04
2 2
13
Clase 6
2. Algoritmo en basic
Dim A As Double, B As Double, N As Long
Dim epsilon As Double, X As Double, C As Double
A = Val(Text1.Text): B = Val(Text2.Text)
epsilon = Val(Text3.Text): N = 0
Do
C = (A + B) / 2
If Abs(F(C)) < epsilon Then
X = C: Exit Do
ElseIf F(A) * F(C) < 0 Then
B = C
Else
A = C
End If
N = N + 1
Loop While (Abs(F(C)) >= epsilon)
Text4.Text = C: Text5.Text = N 14
Clase 6
3. Interfaz
15
Clase 6
Método de Newton-Raphson
Y
(0,F(X0))
y = f(x) X1 X0
X
X0: Aproximación
inicial
X1: nueva
aproximación
Y
(0,F(X0))
X1: nueva
aproximación
y = f(x) X1 X0
X
X0: Aproximación
inicial
f ( X1 )
X 2 = X1 −
f ´( X 1 )
y = f(x) X2 X1 X0
X
La aproximación X2 es la intersección con el eje X de la línea tangente a la gráfica
de f en (X1, f(X1))
18
Clase 6
¿Cuál es la aproximación de la
raíz?
f ( X n −1 )
X n = X n −1 − ,n ≥1
f ´( X n −1 )
La anterior función corresponde a la intersección
de la recta tangente de f(x) en Xn-1 con el eje
de las X.
Dicha intersección, llamada Xn, corresponde a
una aproximación de la raíz para la función
f(x), cuando f(Xn)=0 ó f(Xn) ≤ epsilon
Este método no siempre es convergente.
19
Clase 6
¿Cuándo falla el método de
Newton-Raphson?
El método es atrapado por una raíz imaginaria de
la función f(x):
20
Clase 6
¿Cuándo falla el método de
Newton-Raphson?
Cuando la raíz es un Punto de Inflexión: f’’(x)=0
21
Clase 6
¿Cuándo falla el método de
Newton-Raphson?
El método “cae” en un punto máximo ó mínimo (o
en sus cercanías):
22
Clase 6
Algoritmo método Newton-
Raphson
f(x): función cuya raíz se va a encontrar.
f’(x): derivada de f(x)
X0 : punto de inicio partir del cual se va a iniciar el
proceso.
2. Si f(X0)=0 entonces la raíz es X0,
de lo contrario:
f (X0)
Calcule X1 mediante la ecuación: X 1 = X 0 −
f ´( X 0 )
haga X0 igual a X1.
3. Repetir el paso 2 hasta que |f(X0)| ≤ epsilon
23
4. Mostrar X0 Clase 6
Ejemplo 2.
Hacer un programa en VB que permita obtener la raíz
de la función por el Método de Newton-Raphson:
1 1
f (x) = + −6
( x − 0 . 3 ) + 0 . 01 ( x − 0 . 9 ) + 0 . 04
2 2
24
Clase 6
2.1. Definir la función
1 1
f ( x) = + −6
( x − 0 .3) + 0 .01 ( x − 0 .9 ) + 0 . 04
2 2
25
Clase 6
2.2. Definir una función para
la derivada
− 2( x − 0.3) 2( x − 0.9)
f ′( x) = −
(( x − 0.3) 2
+ 0.01) (( x − 0.9)
2 2
+ 0.04 )
2
26
Clase 6
2.3. Código en VB del método
Newton-Raphson
Dim X0 As Double, X1 As Double, N As Integer
Dim epsilon As Double
X0 = Val(Text1.Text)
epsilon = Val(Text2.Text)
N = 0
Do
If (f(X0) = 0) Then Exit Do
X1 = X0 – F(X0)/DF(X0)
X0 = X1
N = N + 1
Loop While(Abs(F(X0)) > epsilon)
Text3.Text = X0 27
Clase 6
2.4. Interfaz gráfica
28
Clase 6
Tareas
Investigar los métodos de Secante y
Regla Falsa
Hacer los algoritmos para los métodos de
la Secante y la Regla Falsa
Implementar ambos algoritmos en VB en
el computador
29
Clase 6
Regla falsa
Modifica el método de bisección para acelerar la
convergencia.
Unir los dos puntos del intervalo que encierra la
raíz con una recta
La intersección de esta recta con el eje x es una
aproximación a la raíz
30
Clase 6
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 método de Newton para
calcular la nueva raíz como:
f ( X 0 )( X 1 − X 0 )
X2 = X0 −
f ( X1 − X 0 )
Los dos últimos puntos obtenidos x1, x2 se
emplean en la iteración siguiente. 31
Clase 6
Método de la Regla falsa
1. Establecer:
f(x): función a la cual se le busca una raíz.
[a, b]:
b] intervalo para iniciar la búsqueda
ε > 0 : margen de error
2. inicializar
q0=f(a)
q1=f(b)
3. calcular:
c = b-(q1/(q1-q0))*(b-a)
si |c-b| < ε entonces,
c es la raíz, finalizar.
de lo contrario,
q=f(c)
Si q*q1<0 entonces a = b, q0=q
b=c
q1=q 32
Clase
3. Hasta que se termine o se exceda un 6 de iteraciones.
límite
Regla falsa
Sub Regula_Falsi(ByVal a As Double, ByVal b As Double, ByVal
Tol 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 = 2
q0 = f(a)
q1 = f(b)
Do While (i <= N)
p = b - q1 * (b - a) / (q1 - q0)
If Abs(p - b) < Tol Then
Flag = True
r = p
Exit Sub
End If
i = i + 1
q = f(p)
If (q * q1 < 0) Then
a = b
q0 = q1
End If
b = p
q1 = q
Flag = False
Loop
End Sub