Вы находитесь на странице: 1из 27

MTODO DE LA SECANTE

Este mtodo se basa en la frmula de Newton-Raphson, pero evita el clculo de la


derivada usando la siguiente aproximacin:

(Recurdese la solucin numrica al problema del cuerpo en cada libre).


Sustituyendo en la frmula de Newton-Raphson, obtenemos:

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

Usar el mtodo de la secante para aproximar la raz de


comenzando con
Solucin
Tenemos que

y hasta que

de la secante para calcular la aproximacin

, que sustitumos en la frmula


:

Con un error aproximado de:

Como todava no se logra el objetivo, continuamos con el proceso. Resumimos los


resultados en la siguiente tabla:

Aprox. a la raz
Error
aprox.
0
1
0.612699837
0.653442133
0.652917265

100%
63.2%
6.23%
0.08%

De lo cual conclumos que la aproximacin a la raz es:

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

frmula de la secante para obtener la aproximacin

Con un error aproximado de:

Como todava no se logra el objetivo, continuamos con el proceso. Resumimos los


resultados en la siguiente tabla:
Aprox. a la raz
Error aprox.
0
1
0.823315073
0.852330280
0.853169121

100%
21.4%
3.40%
0.09%

De lo cual conclumos que la aproximacin a la raz es:

.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

de f(x) dificulta en ocasiones el clculo de la derivada. En estos casos es ms til


emplear el mtodo de la secante.
El mtodo de la secante parte de dos puntos (y no slo uno como el mtodo de Newton)
y estima la tangente (es decir, la pendiente de la recta) por una aproximacin de acuerdo
con la expresin:
(34)

Sustituyendo esta expresin en la ecuacin (29) del mtodo de Newton, obtenemos la


expresin del mtodo de la secante que nos proporciona el siguiente punto de iteracin:
(35)

Figure: Representacin geomtrica del mtodo de


la secante.

[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

. La misma conclusin se obtiene para el caso que


.
Bsicamente el Teorema del Valor Intermedio nos dice que toda funcin continua en un intervalo cerrado, una vez que
alcanz ciertos valores en los extremos del intervalo, entonces debe alcanzar todos los valores intermedios.

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,

i) Encontrar valores iniciales


,
tales que
y
tienen signos opuestos, es decir,

ii) La primera aproximacin a la raz se toma igual al punto medio entre


y
:

iii) Evaluar
. Forzosamente debemos caer en uno de los siguientes casos:

En este caso, tenemos que


y
tienen signos opuestos, y por lo tanto la raz se encuentra en el intervalo
.

En este caso, tenemos que


y
tienen el mismo signo, y de aqu que
y
tienen signos opuestos. Por lo tanto, la raz se encuentra en el intervalo
.

En este caso se tiene que


y por lo tanto ya localizamos la raz.

El proceso se vuelve a repetir con el nuevo intervalo, hasta que:

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.

En efecto, tenemos que

mientras que

Cabe mencionar que la funcin


s es continua en el intervalo
. As pues, tenemos todos los requisitos satisfechos para poder aplicar el mtodo de biseccin.
Comenzamos:

i) Calculamos el punto medio (que es de hecho nuestra primera aproximacin a la raz):

ii) Evaluamos

iii) Para identificar mejor en que nuevo intervalo se encuentra la raz, hacemos la siguiente
tabla:

Por lo tanto, vemos que la raz se encuentra en el intervalo


.

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
.

Calculamos el punto medio (que es nuestra segunda aproximacin a la raz):

Aqu podemos calcular el primer error aproximado, puesto que contamos ya con la aproximacin
actual y la aproximacin previa:

Puesto que no se ha logrado el objetivo, continuamos con el proceso.

Evaluamos
, y hacemos la tabla:

As, vemos que la raz se encuentra en el intervalo


.

Calculamos el punto medio,

Y calculamos el nuevo error aproximado:

El proceso debe seguirse hasta cumplir el objetivo.

Resumimos los resultados que se obtienen en la siguiente 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%

As, obtenemos como aproximacin a la raz

Option Explicit

Dim sig As String

Dim b As String

Dim a As Double

Dim aux As Double

Dim xi As Double

Dim xs As Double

Dim xr As Double

Dim fxi As Double

Dim fxs As Double

Dim fxr As Double

Dim ff As Double

Dim ea As Double

Dim correcto As Integer

Private Sub cmdcalcular_Click()

fxi = (Exp(-xi)) - xi

fxs = (Exp(-xs)) - xs

xr = (xi + xs) / 2

fxr = (Exp(-xr)) - xr

ff = fxi * fxr

Label2.Caption = Label2.Caption & vbCrLf & Format(xi, "0.#####")

Label4.Caption = Label4.Caption & vbCrLf & Format(xs, "0.#####")

If (ff > 0) Then

sig = "+"

xi = xr

ElseIf (ff < 0) Then

sig = "-"

xs = xr

End If

If (correcto > 0) Then

ea = Abs(((xr - a) / xr) * 100)

End If

Label1.Caption = Label1.Caption & vbCrLf & correcto

Label3.Caption = Label3.Caption & vbCrLf & Format(fxi, "0.#####")

Label5.Caption = Label5.Caption & vbCrLf & Format(fxs, "0.#####")

Label6.Caption = Label6.Caption & vbCrLf & Format(xr, "0.#####")

Label7.Caption = Label7.Caption & vbCrLf & Format(fxr, "0.#####")

Label8.Caption = Label8.Caption & vbCrLf & sig

Label9.Caption = Label9.Caption & vbCrLf & Format(ea, "0.####")

a = xr

If (ea < 0.01) And (correcto > 0) Then

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

Private Sub cmdsalir_Click()

Unload Me

frmprincipal.Visible = True

End Sub

Private Sub Command1_Click()

Label1.Caption = " I"

Label2.Caption = " xi"

Label3.Caption = " f(xi)"

Label4.Caption = " xs"

Label5.Caption = " f(xs)"

Label6.Caption = " xr"

Label7.Caption = " f(xr)"

Label8.Caption = " f(xi) f(xr)"

Label9.Caption = " Ea %"

correcto = 0

cmdcalcular.Enabled = True

xi = 0

xs = 1

End Sub

Private Sub Form_Load()

xi = 0

xs = 1

ea = 0

correcto = 0

frmprincipal.Visible = False

End Sub

ALGORITMO DE FALSA POSICIN.

1.- Proponer 2 valores para Xi y Xs respectivamente, tales que fxi*fxs sea menor a cero.

2.- Definir el error permitido e=0.01% .

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)

4.- Calcular el valor de F(Xr).

5.- Calcular el [ea]%, si el ea es menor a e entonces el valor de Xr es donde se encuentra la raz


y ah termina sino paso 6

([ea]=(Xractual-Xranterior) *100).

Xractual

6.- si F(Xi)*F(Xr) es mayor a 0

a). Entonces Xi=Xr.

b) si F(Xi)*F(Xr) es menor a 0 entonces Xs = Xr.

Regresar al paso 3 hasta que ea<0.01.

DIAGRAMA DE FLUJO.

INTRODUCCIN(Falsa Posicin).

Mtodo de la 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.

Figura(1): Representacin geomtrica del mtodo de la


falsa posicin.
[scale=0.9]eps/falpos

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).

Figura(2): Modificacin del mtodo de la falsa posicin


propuesta por Hamming. La aproximacin a la raz se toma a
partir 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 (figura a) 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 (figura b).
[scale=0.9]eps/hamming

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

figura (2) se representa grficamente el mtodo de Hamming.

Como hemos comentado, el mtodo de Hamming requiere determinar la concavidad o


convexidad de la funcin en el intervalo de iteracin. Un mtodo relativamente sencillo para
determinar la curvatura de la funcin consiste en evaluar la funcin en el punto medio del
intervalo, f(xm) (en donde xm se calcula como en el mtodo de la biseccin) y comparar este
valor con la media de los valores de la funcin en los extremos del

intervalo,
. Tenemos entonces que:

CODIGO DEL PROGRAMA DE FALSA POSICION.

Dim sig As String

Dim xi As Double

Dim xs As Double

Dim fxi As Double

Dim fxs As Double

Dim xr As Double

Dim fxr As Double

Dim ea As Double

Dim i As Double

Dim ff As Double

Dim a As Double

Private Sub cmdcalcular_Click()

fxi = Exp(-xi) - xi

fxs = Exp(-xs) - xs

xr = xs - ((fxs * (xi - xs)) / (fxi - fxs))

fxr = Exp(-xr) - xr

ff = fxi * fxr

Label5.Caption = Label5.Caption & Format(xs, "00.######") & vbCrLf

Label3.Caption = Label3.Caption & Format(xi, "00.######") & vbCrLf

If (ff > 0) Then

xi = xr

sig = "+"

End If

If (ff < 0) Then

xs = xr

sig = "-"

End If

If (i = 0) Then

a = xr

End If

If (i > 0) Then

ea = Abs(((a - xr) / xr) * 100)

a = xr

End If

If (ea < 0.01) And (i > 0) Then

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

Label2.Caption = Label2.Caption & i & vbCrLf

Label4.Caption = Label4.Caption & Format(fxi, "00.######") & vbCrLf

Label6.Caption = Label6.Caption & Format(fxs, "00.######") & vbCrLf

Label7.Caption = Label7.Caption & Format(xr, "00.######") & vbCrLf

Label8.Caption = Label8.Caption & Format(fxr, "00.######") & vbCrLf

Label9.Caption = Label9.Caption & sig & vbCrLf

Label10.Caption = Label10.Caption & Format(ea, "00.######") & vbCrLf

End Sub

Private Sub CMDLIMPIAR_Click()

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

Private Sub cmdsalir_Click()

Unload Me

frmprincipal.Visible = True

End Sub

Private Sub Form_Load()

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

PSEUDOCODIGO DEL METODO DE NEWTON-RAPHSON.

1.- Dada la funcin f(x), ah que calcula un valor para Xi (X inicial) .

2.- Definir el margen de error (e=0.01).

3.- Derivar la funcin dada y utilizar la siguiente formula.

Xi+1=Xi - f(Xi)

f1(Xi)

3.- Ahora se conoce el valor de Xi+1.

4.- Se calcula el error aproximado( ea%=100(xi+1(valor actual)-xi+1(valor anterior)))

xi+1(valor actual)

si este es menor al error definido, Xi es el valor de la raz, y ah termina la bsqueda.

5.- El valor de Xi = Xi+1.

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.

1.- Escoger un nmero inicial (x0)


2.- Calcular la siguiente aproximacin de x1 utilizando la frmula:

3.- Si | xn-xn+1 | < entonces xn+1 es una raz

De otra forma pasar al punto 2

Codigo del programa de newton raphson.

Dim xi As Double

Dim fxi As Double

Dim a As Double

Dim iteracion As Double

Dim ea As Double

Private Sub cmdcalcular_Click()

fxi = xi - (((Exp(-xi)) - xi) / ((-Exp(-xi) - 1)))

lbli.Caption = lbli.Caption & iteracion & vbCrLf

lblxi.Caption = lblxi.Caption & Format(fxi, "0.########") & vbCrLf

If (iteracion > 1) Then

ea = Abs(((fxi - a) / fxi) * 100)

End If

lbleaa.Caption = lbleaa.Caption & Format(ea, "0.########") & vbCrLf

xi = fxi

a = fxi

If (ea < 0.01) And (iteracion > 1) Then

frmNewton.Visible = False

cmdcalcular.Enabled = False

frmprincipal.Visible = False

MsgBox "Xr= " & fxi, vbCritical, "Raiz Encontrada"

frmNewton.Visible = True

End If

iteracion = iteracion + 1

End Sub

Private Sub CMDLIMPIAR_Click()

a=0

iteracion = 1

xi = 0

lbli.Caption = ""

lblxi.Caption = ""

lbleaa.Caption = ""

cmdcalcular.Enabled = True

ea = 0

End Sub

Private Sub cmdsalir_Click()

Unload Me

frmprincipal.Visible = True

End Sub

Private Sub Form_Load()

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.

1.- Requiere dos valores para xi-1 y xi.

2.- Al darle estos valores se utiliza la sig. formula:

xi+1=xi-f (xi) (xi-1-xi)

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

DIAGRAMA DE FLUJO DEL METODO DE LA SECANTE.

TU FUTURO A UN CLICK: Masters, Cursos, Oposiciones


Cursos de ingls y formacin acadmica en el extranjero
El mayor abanico de cursos y titulaciones a distancia y online

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:

son coeficientes constantes. Continuando con los polinomios, estos

Para la ecuacin de orden n, hay n races reales o complejas. Se debe notar que esas races no son necesariamente
distintas.

Si n es impar, hay al menos una raz real.


Si las races complejas existen, existe un par conjugado.
Antecedentes
Los polinomios tienen muchas aplicaciones en ciencia e ingeniera, como es el caso de su utilizacin en ajuste de
curvas. Sin embargo, se considera que una de las aplicaciones mas interesantes y potentes es en los sistemas
dinmicos, particularmente en los lineales.
El polinomio mas conocido en el mundo cientfico, es el denominado, ecuacin caracterstica, que es de la forma:

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

La ltima ecuacin genera que,

f ( x 2 ) c , de esta forma, se puede tener un sistema de dos ecuaciones con dos

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

Teniendo como resultado los coeficientes:

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

h0 5,5 4,5 1 h1 5 5,5 0,5


82,875 20,625
48 82,875
0
62,25
1
69,75
5,5 4,5
5 5,5

Hallando los coeficientes

69,75 62,25
15 b 15( 0,5) 69,75 62,25
0,5 1

c 48

La raz cuadrada del discriminante es:

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

Se utilizar la siguiente formulacin, para hallar mximos o mnimos:

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

con un valor inicial de x0 = 2,5

Solucin

f ( x ) 2 cos( x )

x
5

f (x) 2 sen( x)

1
5

Sustituyendo en la formulacin de Newton:

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

Reemplazando en la ecuacin, f(0,995)=1,579; la segunda iteracin ser:

x1 0,995

2 cos(0,995) 0,995 / 5
1,469
2 sen(0,995) 1 / 5

Realizando diferentes iteraciones:


i
x
0
2,5
1
0,995
2
1,469

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;

A = (d1 - d0) / (h1 + h0);


B = A * h1 + d1;
C = f(x2);
raiz = Math.sqrt(B * B - 4.0 * A * C);

haciendo

una

aproximacion

if (Math.abs(B + raiz) > Math.abs(B - raiz))


den = B + raiz;
else
den = B - raiz;
x3 = x2 - 2 * C / den;
System.out.println(" x = " + x3 + " " + f(x3));
x0 =
x1 =
x2 =
}while

x1;
x2;
x3;
(Math.abs(f(x3)) > 0.000001);

}
static public double f(double x)
{
return(x*x*x - 13*x -12);
}

Regresar.

Вам также может понравиться