Академический Документы
Профессиональный Документы
Культура Документы
Que es la frmula del mtodo de la secante. Ntese que para poder calcular el valor
de
, necesitamos conocer los dos valores anteriores
y
.
Obsrvese tambien, el gran parecido con la frmula del mtodo de la regla falsa. La
diferencia entre una y otra es que mientras el mtodo de la regla falsa trabaja
sobre intervalos cerrados, el mtodo de la secante es un proceso iterativo y por lo
mismo, encuentra la aproximacin casi con la misma rapidez que el mtodo de
Newton-Raphson. Claro, corre el mismo riesgo de ste ltimo de no converger a la
raz, mientras que el mtodo de la regla falsa va a la segura.
Ejemplo
y hasta que
Aprox. a la raz
Error
aprox.
0
1
0.612699837
0.653442133
0.652917265
100%
63.2%
6.23%
0.08%
Ejemplo
Usar el mtodo de la secante para aproximar la raz de
comenzando con
, y hasta que
2
,
.
Solucin
Tenemos los valores
, que sustitumos en la
100%
21.4%
3.40%
0.09%
.4 Mtodo de la secante
El principal inconveniente del mtodo de Newton estriba en que requiere conocer el
valor de la primera derivada de la funcin en el punto. Sin embargo, la forma funcional
[scale=0.9]eps/secante
En la siguiente iteracin, emplearemos los puntos x1 y x2para estimar un nuevo punto
ms prximo a la raz de acuerdo con la ecuacin (35). En la figura (8) se representa
geomtricamente este mtodo.
En general, el mtodo de la secante presenta las mismas ventajas y limitaciones que el
mtodo de Newton-Raphson explicado anteriormente.
Next: 4.5 Mtodo de Steffensen Up: 4. Clculo de races Previous: 4.3 Mtodo de
Newton
Wladimiro Diaz Villanueva
1998-05-11
Pseudocdigo del mtodo de Biseccin
1.- Dada la funcin escjanse dos valores iniciales para xi y xs de tal manera que sustituyndolos en la f(x) se encuentre un
cambio de signo para determinar entre que intervalos se encuentra la raz, si esto se cumple ah que multiplicar f(xi)*f(xs) y
el resultado debe ser menor a cero.
2.- La primera aproximacin se encuentra de la siguiente manera:
xr =xi + xs
2
3.- Ahora ah que determinar en que sub-intervalo esta la raz para eso se hace lo siguiente
a) si f(xi)*f(xs)<0
entonces la raz esta en el primer sub-intervalo y xs = xr
b) si f(xi)*f(xs)>0
entonces la raz se encuentra en el segundo sub-intervalo y xi=xr
c) si f(xi)*f(xs)=0 f(xs)*f(xr)=0
entonces xr es la raz
4.- Despus se calcula el error aproximado ( ea%=100(xr(valor actual)-xr(valor anterior)))
xr(valor actual)
Se vuelve a calcular la siguiente aproximacin
(regresar al paso 2 y seguir hasta aqu nuevamente)
y se deja de realizar hasta que el ea% sea igual a 0.01, o se encuentre la raz.
INTRODUCCIN(Falsa Posicin).
MTODO DE LA BISECCIN
El mtodo de biseccin se basa en el siguiente teorema de Clculo:
Teorema del Valor Intermedio
Sea
continua en un intervalo
y supongamos que
. Entonces para cada
tal que
, existe un
tal que
En particular, si
y
tienen signos opuestos, entonces un valor intermedio es precisamente
, y por lo tanto, el Teorema del Valor Intermedio nos asegura que debe existir
tal que
, es decir, debe haber por lo menos una raz de
en el intervalo
.
El mtodo de biseccin sigue los siguientes pasos:
Sea
continua,
iii) Evaluar
. Forzosamente debemos caer en uno de los siguientes casos:
es decir,
Ejemplo 1
Aproximar la raz de
hasta que
.
Solucin
Sabemos por lo visto en el ejemplo 1 de la seccin anterior, que la nica raz de
se localiza en el intervalo
. As que este intervalo es nuestro punto de partida; sin embargo, para poder aplicar el mtodo
de biseccin debemos checar que
y
tengan signos opuestos.
mientras que
ii) Evaluamos
iii) Para identificar mejor en que nuevo intervalo se encuentra la raz, hacemos la siguiente
tabla:
En este punto, vemos que todava no podemos calcular ningn error aproximado, puesto que
solamente tenemos la primera aproximacin. As, repetimos el proceso con el nuevo intervalo
.
Aqu podemos calcular el primer error aproximado, puesto que contamos ya con la aproximacin
actual y la aproximacin previa:
Evaluamos
, y hacemos la tabla:
Aprox. a la raz
Error aprox.
1.25
1.375
9.09%
1.3125
4.76%
1.28125
2.43%
1.296875
1.20%
1.3046875
0.59%
Option Explicit
Dim b As String
Dim a As Double
Dim xi As Double
Dim xs As Double
Dim xr As Double
Dim ff As Double
Dim ea As Double
fxi = (Exp(-xi)) - xi
fxs = (Exp(-xs)) - xs
xr = (xi + xs) / 2
fxr = (Exp(-xr)) - xr
ff = fxi * fxr
sig = "+"
xi = xr
sig = "-"
xs = xr
End If
End If
a = xr
frmbiseccion.Visible = False
cmdcalcular.Enabled = False
frmprincipal.Visible = False
MsgBox "Raiz Encontrada en Xr=" & xr, vbExclamation, "JORGE ARAIZA 8/OCT/2001 "
frmbiseccion.Visible = True
End If
correcto = correcto + 1
End Sub
Unload Me
frmprincipal.Visible = True
End Sub
correcto = 0
cmdcalcular.Enabled = True
xi = 0
xs = 1
End Sub
xi = 0
xs = 1
ea = 0
correcto = 0
frmprincipal.Visible = False
End Sub
1.- Proponer 2 valores para Xi y Xs respectivamente, tales que fxi*fxs sea menor a cero.
3.- Con los valores de fxi y fxs ah que calcular el valor de Xr.
Xr = Xs - F(Xs)*(Xi-Xs)
F(Xi)-F(Xs)
([ea]=(Xractual-Xranterior) *100).
Xractual
DIAGRAMA DE FLUJO.
INTRODUCCIN(Falsa Posicin).
El mtodo de la falsa posicin pretende conjugar la seguridad del mtodo de la biseccin con la
rapidez del mtodo de la secante. Este mtodo, como en el mtodo de la biseccin, parte de dos
puntos que rodean a la raz f(x) = 0, es decir, dos puntos x0 y x1tales que f(x0)f(x1) < 0. La
siguiente aproximacin, x2, se calcula como la interseccin con el eje X de la recta que une
ambos puntos (empleando la ecuacin del mtodo de la secante). La asignacin del nuevo
intervalo de bsqueda se realiza como en el mtodo de la biseccin: entre ambos intervalos,
[x0,x2] y [x2,x1], se toma aquel que cumpla f(x)f(x2) < 0. En la figura(1) se representa
geomtricamente este mtodo.
La eleccin guiada del intervalo representa una ventaja respecto al mtodo de la secante ya que
inhibe la posibilidad de una divergencia del mtodo. Por otra parte y respecto al mtodo de la
biseccin, mejora notablemente la eleccin del intervalo (ya que no se limita a partir el intervalo
por la mitad).
Sin embargo, el mtodo de la falsa posicin tiene una convergencia muy lenta hacia la solucin.
Efectivamente, una vez iniciado el proceso iterativo, uno de los extremos del intervalo tiende a
no modificarse (ver figura (1)). Para obviar este problema, se ha propuesto una modificacin del
mtodo, denominada mtodo de Hamming. Segn este mtodo, la aproximacin a una raz se
encuentra a partir de la determinacin del punto de interseccin con el eje X de la recta que une
los puntos ( x0,f(x0)/2) y (x1,f(x1)) si la funcin es convexa en el intervalo o bien a partir de la
recta que une los puntos (x0,f(x0)) y (x1, f(x1)/2) si la funcin es cncava en el intervalo. En la
intervalo,
. Tenemos entonces que:
Dim xi As Double
Dim xs As Double
Dim xr As Double
Dim ea As Double
Dim i As Double
Dim ff As Double
Dim a As Double
fxi = Exp(-xi) - xi
fxs = Exp(-xs) - xs
fxr = Exp(-xr) - xr
ff = fxi * fxr
xi = xr
sig = "+"
End If
xs = xr
sig = "-"
End If
If (i = 0) Then
a = xr
End If
If (i > 0) Then
a = xr
End If
frmprincipal.Visible = False
frmfalsa.Visible = False
MsgBox "Raiz Encontrada en Xr= " & xr, vbCritical, "JORGE ARAIZA"
frmfalsa.Visible = True
cmdcalcular.Enabled = False
End If
i=i+1
End Sub
Label2.Caption = ""
Label3.Caption = ""
Label4.Caption = ""
Label5.Caption = ""
Label6.Caption = ""
Label7.Caption = ""
Label8.Caption = ""
Label9.Caption = ""
Label10.Caption = ""
xi = 0
xs = 1
ea = 0
i=0
cmdcalcular.Enabled = True
End Sub
Unload Me
frmprincipal.Visible = True
End Sub
i=0
ea = 0
Label2.Caption = ""
Label3.Caption = ""
Label4.Caption = ""
Label5.Caption = ""
Label6.Caption = ""
Label7.Caption = ""
Label8.Caption = ""
Label9.Caption = ""
Label10.Caption = ""
xi = 0
xs = 1
End Sub
Xi+1=Xi - f(Xi)
f1(Xi)
xi+1(valor actual)
INTRODUCCIN.
Mtodo de Newton-Raphson.
Est basado en el uso de una lnea tangente como aproximacin de f(x), cerca de los puntos
donde el valor de la funcin es cero.
Dim xi As Double
Dim a As Double
Dim ea As Double
End If
xi = fxi
a = fxi
frmNewton.Visible = False
cmdcalcular.Enabled = False
frmprincipal.Visible = False
frmNewton.Visible = True
End If
iteracion = iteracion + 1
End Sub
a=0
iteracion = 1
xi = 0
lbli.Caption = ""
lblxi.Caption = ""
lbleaa.Caption = ""
cmdcalcular.Enabled = True
ea = 0
End Sub
Unload Me
frmprincipal.Visible = True
End Sub
a=0
iteracion = 1
xi = 0
End Sub
INTRODUCCION.
Mtodo de la Secante
Es similar al mtodo de Newton, pero la derivada se reemplaza por una diferencia dividida. El
mtodo requiere de dos puntos para empezar a iterar. Las iteraciones en este caso son
Se puede demostrar que el orden de convergencia para este mtodo es aproximadamente 1.6
Pseudocodigo de la Secante.
f (xi-1)-f (xi)
3.- Se calcula el error aproximado y si este es menor a 0.01 entonces ahi finaliza el programa,
sino se repite hasta que se cumpla lo anterior.
4.- Si el error fue mayor a 0.01, entonces xi-1=xi; xi=xi+1, y se debe volver al paso 2
Mtodo de Muller
Este es un mtodo para encontrar las races de ecuaciones polinomiales de la forma general:
f n ( x ) a 0 a1 x a 2 x 2 ....... a n x n
Donde n es el orden del polinomio y las
cumplen con las siguientes reglas:
Para la ecuacin de orden n, hay n races reales o complejas. Se debe notar que esas races no son necesariamente
distintas.
a 2 x 2 a1 x a 0 0
Donde las races de este polinomio satisfacen:
x1, 2
a1 a12 4a 2 a 0
2a 0
Tambin denominados eigenvalores del sistema. Los eigenvalores pueden utilizarse para analizar un sistema, para
nuestro caso es muy til en lo concerniente a la estabilidad. Con base en lo anterior, encontrar las races en sistemas
de segundo orden es prcticamente sencillo, pero para sistemas de orden superior, puede resultar en un arduo trabajo.
El mtodo
Un predecesor del mtodo de Muller, es el mtodo de la secante, el cual obtiene races, estimando una proyeccin de
una lnea recta en el eje x, a travs de dos valores de la funcin (Figura 1). El mtodo de Muller toma un punto de vista
similar, pero proyecta una parbola a travs de tres puntos (Figura 2).
El mtodo consiste en obtener los coeficientes de los tres puntos, sustituirlos en la frmula cuadrtica y obtener el
punto donde la parbola intercepta el eje x. La aproximacin es fcil de escribir, en forma conveniente esta sera:
f 2 ( x) a ( x x 2 ) 2 b( x x 2 ) c
f(x)
Lnea recta
x
Raz
estimada
x
x
X1
X0
Raz
Figura 1
f(x)
Parbola
0
0
Raz
x x
X2
X1
X0
X
Raz
estimada
Figura 2
As, se busca esta parbola para intersectar los tres puntos [x 0, f(x0)], [x1, f(x1)] y [x2, f(x2)]. Los coeficientes de la
ecuacin anterior se evalan al sustituir uno de esos tres puntos para dar:
f ( x 0 ) a ( x0 x 2 ) 2 b( x 0 x 2 ) c
f ( x1 ) a( x1 x 2 ) 2 b( x1 x 2 ) c
f ( x 2 ) a ( x 2 x 2 ) 2 b( x 2 x 2 ) c
incgnitas:
f ( x 0 ) f ( x 2 ) a ( x0 x 2 ) 2 b( x 0 x 2 ) f ( x1 ) f ( x 2 ) a ( x1 x 2 ) 2 b( x1 x 2 )
Definiendo de esta forma:
h0 x1 x 0
f ( x1 ) f ( x 2 )
x1 x 0
h1 x 2 x1
f ( x 2 ) f ( x1 )
1
x 2 x1
Sustituyendo en el sistema:
(h0 h1 )b (h0 h1 ) 2 a h0 0 h1 1
h1b h1 a h1 1
2
1 0
h1 h0
b ah1 1
c f ( x2 )
Hallando la raiz, se implementar la solucin convencional, pero debido al error de redondeo potencial, se usar una
formulacin alternativa:
x3 x 2
2c
b b 4ac
2
despejando
x3 x 2
2c
b b 2 4ac
La gran ventaja de este mtodo es que se pueden localizar tanto las races reales como las imaginarias.
Hallando el error este ser:
Ea
x3 x 2
100%
x3
Al ser un mtodo de aproximacin, este se realiza de forma secuencial e iterativamente, donde x 1, x2, x3 reemplazan los
puntos x0, x1, x2 llevando el error a un valor cercano a cero
Programa
Por ser un mtodo que trabaja de forma lineal, es posible una aplicacin computacional en forma sencilla, la cual sera:
SubMuller (xr, h, eps, maxit)
x2 = xr
x1 = xr + h*xr
x0 = xr h*xr
Do
iter = iter + 1
h0 = x1 + x0
h1 = x2 x1
d0 = (f(x1)-f(x0))/h0
d1 = (f(x2)-f(x1))/h1
a = (d1 d0)/(h1 + h0)
b = a*h1 +d1
c = f(x2)
rad = sqrt (b*b 4*a*c)
if I b+ rad I > l b - rad l then
den = b + rad
Else
den = b rad
End if
dxr = -2*c/den
xr = x2 + dxr
Print iter, xr
IF (Idxrl<eps*xr or iter>maxit) exit
x0 = x1
x1 = x2
x2 = xr
End do
End Muller
Ejemplo
f ( x) x 3 13 x 12
h = 0,1
x2 = 5 x1 = 5,5 x0 =4,5
Con un anlisis previo, las races son 3, -1 y 4
Solucin
f (4,5) 20,625
f (5,5) 82,875
f (5) 48
Calculando
69,75 62,25
15 b 15( 0,5) 69,75 62,25
0,5 1
c 48
62, 25 2 4 15 48 31,544
As
x3 5
2 48
3,9765
62,25 31,544
Y el error estimado
Ea
1,0235
100% 25,74%
x3
Ahora
x2 = 3,9765 x1 = 5 x0 =5,5
Haciendo uso de un programa y realizando diferentes iteraciones:
i
xr
Ea %
3,9465
25,740
4,0011
0,614
4,0000
0,026
4,0000
0,000
Mtodo de Newton
Es una tcnica para encontrar el valor ptimo (mximo o mnimo), de una funcin de una variable, f(x). Para esta clase
de anlisis se debe tener cuidado con los sistemas multimodal, en los cuales existen valores ptimos globales y
locales. Para la gran mayora de los casos, los estudios se centran en los globales.
El mtodo
Como antecedente para la explicacin del mtodo, se tiene el mtodo de Newton-Raphson, el cual es un mtodo
abierto que encuentra la raz de x, tal que f(x) = 0, el mtodo se resume as:
xi 1 xi
f ( xi )
f (xi )
Haciendo uso de este planteamiento para hallar un ptimo de f(x), al definir una nueva funcin g(x) = f(x), as, como el
mismo valor ptimo x*, satisface:
f (x*) g ( x*) 0
xi 1 xi
f (xi )
f (xi )
Este es un mtodo abierto y similar al Newton-Raphson, ya que no requiere valores iniciales que contengan el ptimo.
Adems, comparte la desventaja de poder ser divergente.
Como anotacin, es conveniente verificar que la segunda derivada tenga el signo correcto, para confirmar que la
tcnica converge sobre el valor deseado.
Programa
El mayor problema a afrontar es la no-linealidad que involucra la derivada, la ventaja es que algunas herramientas
computacionales tienen directamente la funcin de la derivada, por lo cual el seudocdigo es de muy fcil
implementacin
SubNewton (xi, xr, eps, maxit)
xr = xi
Do
iter = iter + 1
gx = fx
hx = gx
div = gx / hx
xi = xr - div
dxi = (xi xr) / xi
Print (iter, xr)
IF (Idxil<eps*xr or iter>maxit) exit
Xr = xi
End do
End Newton
f(x)
Lnea recta
x
Raz
estimada
x
x
X1
X0
Raz
Ejemplo
Hallar el mximo de:
f ( x ) 2 sen( x)
x2
10
Solucin
f ( x ) 2 cos( x )
x
5
f (x) 2 sen( x)
1
5
xi 1 xi
2 cos( xi ) xi / 5
2 sen( xi ) 1 / 5
x1 2,5
2 cos(2,5) 2,5 / 5
0,995
2 sen(2,5) 1 / 5
x1 0,995
2 cos(0,995) 0,995 / 5
1,469
2 sen(0,995) 1 / 5
f(x)
0,572
1,579
1,774
f(x)
-2,102
0,890
-0,091
f(x)
-1,379
-1,878
-2,190
1,427
1,776
-0,000
-2,180
Mtodo de Mller.
El mtodo de la secante obtiene races de una funcin estimando una
proyeccin de una lnea recta en el eje de las x, a travs de los valores de la
funcin. El mtodo de Mller, trabaja de manera similar, pero en lugar de hacer
la proyeccin de una recta utilizando dos puntos, requiere de tres puntos para
calcular una parbola.
Para esto necesitaremos de tres puntos [x0, f(x0)], [x1, f(x1)] y [x2, f(x2)]. La
aproximacin la podemos escribir como:
f2(x) = A(x x2)2 + B(x x2) + C
Los coeficientes de la parbola los calculamos resolviendo el siguiente sistema
de ecuaciones.
f2(x0) = A(x0 x2)2 + B(x0 x2) + C
f2(x1) = A(x1 x2)2 + B(x1 x2) + C
f2(x2) = A(x2 x2)2 + B(x2 x2) + C
De la ltima ecuacin podemos ver que el calor de C = f2(x2). Sustituyendo los
valores de C en las otras dos ecuaciones tenemos
f2(x0)- f2(x2) = A(x0 x2)2 + B(x0 x2)
f2(x1) - f2(x2) = A(x1 x2)2 + B(x1 x2)
Si definimos
h 0 = x1 - x0
h 1 = x2 x1
d0 = [f(x1) f(x0)]/[x1 x0]
d1 = [f(x2) f(x1)]/[x2 x1]
Sustituyendo en las ecuaciones tenemos
-(d0* h0 + d1* h1)= A(h1 + h0 )2 - B(h1 + h0 )
-d1* h1 = A(h1)2 - Bh1
La solucin de este sistema de ecuaciones es:
A = (d1 d0)/(h1 + h0)
B = Ah1 + d1
C = f(x2)
Ahora para calcular la raz del polinomio de segundo grado, podemos aplicar la
formula general. Sin embargo, debido al error potencial de redondeo,
usaremos una formulacin alternativa.
x3 x2
2C
b b 2 4ac
Ejemplo.
Use el mtodo de Mller con los valores iniciales de 4.5, 5.5 y 5 para
determinar la raz de la ecuacin f(x) = x3 13x 12.
x0
4.50000
5.50000
5.00000
3.97649
x1
5.50000
5.00000
3.97649
4.00105
x2
5.00000
3.97649
4.00105
4.00000
f(x0)
20.62500
82.87500
48.00000
-0.81633
f(x1)
82.87500
48.00000
-0.81633
0.03678
f(x2)
48.00000
-0.81633
0.03678
0.00002
x3
3.97649
4.00105
4.00000
4.00000
Implementacin en Java.
/**
* <p>Title: Metodo de Muller</p>
* <p>Description: Resuelve un ecuacin
cuadratica</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: UMSNH</p>
* @author Dr. Felix Calderon Solorio
* @version 1.0
*/
public class ej058 {
public static void main(String[] args) {
Muller();
}
static public void Muller()
{
double x0 = 4.5, x1 = 5.5, x2 = 5.0, x3;
double h0, h1, d0, d1, A, B, C;
double den, raiz;
do
{
h0
h1
d0
d1
=
=
=
=
x1 - x0;
x2 - x1;
(f(x1) - f(x0)) / h0;
(f(x2) - f(x1)) / h1;
haciendo
una
aproximacion
x1;
x2;
x3;
(Math.abs(f(x3)) > 0.000001);
}
static public double f(double x)
{
return(x*x*x - 13*x -12);
}
Regresar.