Vous êtes sur la page 1sur 27

MÉTODO DE LA SECANTE

Este método se basa en la fórmula de Newton-Raphson, pero evita el cálculo de la derivada usando la siguiente aproximación:

MÉTODO DE LA SECANTE Este método se basa en la fórmula de Newton-Raphson, pero evita el

(Recuérdese la solución numérica al problema del cuerpo en caída libre).

Sustituyendo en la fórmula de Newton-Raphson, obtenemos:

MÉTODO DE LA SECANTE Este método se basa en la fórmula de Newton-Raphson, pero evita el
MÉTODO DE LA SECANTE Este método se basa en la fórmula de Newton-Raphson, pero evita el

Que es la fórmula del método de la secante. Nótese que para poder calcular el valor

de

MÉTODO DE LA SECANTE Este método se basa en la fórmula de Newton-Raphson, pero evita el

, necesitamos conocer los dos valores anteriores

MÉTODO DE LA SECANTE Este método se basa en la fórmula de Newton-Raphson, pero evita el

y

.
.

Obsérvese tambien, el gran parecido con la fórmula del método de la regla falsa. La diferencia entre una y otra es que mientras el método de la regla falsa trabaja sobre intervalos cerrados, el método de la secante es un proceso iterativo y por lo mismo, encuentra la aproximación casi con la misma rapidez que el método de Newton-Raphson. Claro, corre el mismo riesgo de éste último de no converger a la raíz, mientras que el método de la regla falsa va a la segura.

Ejemplo

1

Usar

el

método de

la secante

la

raíz

de

Usar el método de la secante la raíz de ,

,

comenzando con

,
,
comenzando con , para aproximar y hasta que .

para aproximar y hasta que

.
.
 

Solución

 

Tenemos que

  • y

Tenemos que y

, que sustituímos en la fórmula

de la secante para calcular la aproximación

:
:
MÉTODO DE LA SECANTE Este método se basa en la fórmula de Newton-Raphson, pero evita el

Con un error aproximado de:

MÉTODO DE LA SECANTE Este método se basa en la fórmula de Newton-Raphson, pero evita el

Como todavía no se logra el objetivo, continuamos con el proceso. Resumimos los resultados en la siguiente tabla:

Aprox. a la raíz

Error

aprox.

0

1

100%

  • 0.612699837 63.2%

  • 0.653442133 6.23%

  • 0.652917265 0.08%

De lo cual concluímos que la aproximación a la raíz es:

Aprox. a la raíz Error aprox. 0 1 100% 0.612699837 63.2% 0.653442133 6.23% 0.652917265 0.08% De

Ejemplo

2

Usar el método de la secante para aproximar la raíz de

,
,
comenzando con y , y hasta que . Solución Tenemos los valores y
comenzando con
y
, y hasta que
.
Solución
Tenemos los valores
y

, que sustituímos en la

fórmula de la secante para obtener la aproximación

:
:
Aprox. a la raíz Error aprox. 0 1 100% 0.612699837 63.2% 0.653442133 6.23% 0.652917265 0.08% De

Con un error aproximado de:

Aprox. a la raíz Error aprox. 0 1 100% 0.612699837 63.2% 0.653442133 6.23% 0.652917265 0.08% De

Como todavía no se logra el objetivo, continuamos con el proceso. Resumimos los resultados en la siguiente tabla:

Aprox. a la raíz

Error aprox.

0

1

100%

  • 0.823315073 21.4%

  • 0.852330280 3.40%

  • 0.853169121 0.09%

De lo cual concluímos que la aproximación a la raíz es:

Aprox. a la raíz Error aprox. 0 1 100% 0.612699837 63.2% 0.653442133 6.23% 0.652917265 0.08% De

.4 Método de la secante

El principal inconveniente del método de Newton estriba en que requiere conocer el valor de la primera derivada de la función en el punto. Sin embargo, la forma funcional

de f(x) dificulta en ocasiones el cálculo de la derivada. En estos casos es más útil emplear el método de la secante.

El método de la secante parte de dos puntos (y no sólo uno como el método de Newton) y estima la tangente (es decir, la pendiente de la recta) por una aproximación de acuerdo con la expresión:

de f ( x ) dificulta en ocasiones el cálculo de la derivada. En estos casos( 29 ) del método de Newton, obtenemos la expresión del método de la secante que nos proporciona el siguiente punto de iteración: (35) Figure: Representación geométrica del método de la secante. [scale=0.9]eps/secante En la siguiente iteración, emplearemos los puntos x y x para estimar un nuevo punto más próximo a la raíz de acuerdo con la ecuación ( 35 ) . En la figura ( 8 ) se representa geométricamente este método. En general, el método de la secante presenta las mismas ventajas y limitaciones que el método de Newton-Raphson explicado anteriormente. Next: 4.5 Método de Steffensen Up: 4. Cálculo de raíces Previous: 4.3 Método de Newton Wladimiro Diaz Villanueva " id="pdf-obj-2-10" src="pdf-obj-2-10.jpg">

(34)

Sustituyendo esta expresión en la ecuación (29) del método de Newton, obtenemos la expresión del método de la secante que nos proporciona el siguiente punto de iteración:

de f ( x ) dificulta en ocasiones el cálculo de la derivada. En estos casos( 29 ) del método de Newton, obtenemos la expresión del método de la secante que nos proporciona el siguiente punto de iteración: (35) Figure: Representación geométrica del método de la secante. [scale=0.9]eps/secante En la siguiente iteración, emplearemos los puntos x y x para estimar un nuevo punto más próximo a la raíz de acuerdo con la ecuación ( 35 ) . En la figura ( 8 ) se representa geométricamente este método. En general, el método de la secante presenta las mismas ventajas y limitaciones que el método de Newton-Raphson explicado anteriormente. Next: 4.5 Método de Steffensen Up: 4. Cálculo de raíces Previous: 4.3 Método de Newton Wladimiro Diaz Villanueva " id="pdf-obj-2-20" src="pdf-obj-2-20.jpg">

(35)

de f ( x ) dificulta en ocasiones el cálculo de la derivada. En estos casos( 29 ) del método de Newton, obtenemos la expresión del método de la secante que nos proporciona el siguiente punto de iteración: (35) Figure: Representación geométrica del método de la secante. [scale=0.9]eps/secante En la siguiente iteración, emplearemos los puntos x y x para estimar un nuevo punto más próximo a la raíz de acuerdo con la ecuación ( 35 ) . En la figura ( 8 ) se representa geométricamente este método. En general, el método de la secante presenta las mismas ventajas y limitaciones que el método de Newton-Raphson explicado anteriormente. Next: 4.5 Método de Steffensen Up: 4. Cálculo de raíces Previous: 4.3 Método de Newton Wladimiro Diaz Villanueva " id="pdf-obj-2-24" src="pdf-obj-2-24.jpg">

Figure: Representación geométrica del método de la secante.

[scale=0.9]eps/secante

En la siguiente iteración, emplearemos los puntos x 1 y x 2 para estimar un nuevo punto más próximo a la raíz de acuerdo con la ecuación (35). En la figura (8) se representa geométricamente este método.

En general, el método de la secante presenta las mismas ventajas y limitaciones que el método de Newton-Raphson explicado anteriormente.

de f ( x ) dificulta en ocasiones el cálculo de la derivada. En estos casos( 29 ) del método de Newton, obtenemos la expresión del método de la secante que nos proporciona el siguiente punto de iteración: (35) Figure: Representación geométrica del método de la secante. [scale=0.9]eps/secante En la siguiente iteración, emplearemos los puntos x y x para estimar un nuevo punto más próximo a la raíz de acuerdo con la ecuación ( 35 ) . En la figura ( 8 ) se representa geométricamente este método. En general, el método de la secante presenta las mismas ventajas y limitaciones que el método de Newton-Raphson explicado anteriormente. Next: 4.5 Método de Steffensen Up: 4. Cálculo de raíces Previous: 4.3 Método de Newton Wladimiro Diaz Villanueva " id="pdf-obj-2-49" src="pdf-obj-2-49.jpg">

Wladimiro Diaz Villanueva

1998-05-11

Pseudocódigo del método de Bisección 1.- Dada la función escójanse dos valores iniciales para xi y

Pseudocódigo del método de Bisección

1.- Dada la función escójanse dos valores iniciales para xi y xs de tal manera que sustituyéndolos en la f(x) se encuentre un cambio de signo para determinar entre que intervalos se encuentra la raíz, si esto se cumple ahí que multiplicar f(xi)*f(xs) y el resultado debe ser menor a cero.

2.- La primera aproximación se encuentra de la siguiente manera:

xr =xi + xs

2

3.- Ahora ahí que determinar en que sub-intervalo esta la raíz para eso se hace lo siguiente

  • a) si f(xi)*f(xs)<0

entonces la raíz esta en el primer sub-intervalo y xs = xr

  • b) si f(xi)*f(xs)>0

entonces la raíz 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 raíz

4.- Después se calcula el error aproximado ( ea%=100(xr(valor actual)-xr(valor anterior)))

xr(valor actual)

Se vuelve a calcular la siguiente aproximación

(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 raíz.

INTRODUCCIÓN(Falsa Posición).

MÉTODO DE LA BISECCIÓN

El método de bisección se basa en el siguiente teorema de Cálculo:

Teorema del Valor Intermedio

continua en un intervalo y supongamos que . Entonces para cada Sea tal que , existe
continua en un intervalo
y supongamos que
. Entonces para cada
Sea
tal que
, existe un
tal que
. La misma conclusión se obtiene para el caso que . Básicamente el Teorema del Valor
. La misma conclusión se obtiene para el caso que
.
Básicamente el Teorema del Valor Intermedio nos dice que toda función 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 raíz de
en el intervalo
.
El método de bisección sigue los siguientes pasos:
Sea
continua,
 i) Encontrar valores iniciales
,
tales que
y
tienen signos opuestos, es decir,
 ii) La primera aproximación a la raíz 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 raíz
 En este caso, tenemos que y tienen signos opuestos, y por lo tanto la raíz
 En este caso, tenemos que y tienen signos opuestos, y por lo tanto la raíz

En este caso, tenemos que

y

 En este caso, tenemos que y tienen signos opuestos, y por lo tanto la raíz
 En este caso, tenemos que y tienen signos opuestos, y por lo tanto la raíz

tienen signos opuestos, y por lo tanto la raíz se encuentra en el intervalo .

 En este caso, tenemos que y tienen signos opuestos, y por lo tanto la raíz

o

 
o o En este caso, tenemos que

o

En este caso, tenemos que

o En este caso, tenemos que

y

y

tienen el mismo signo, y de aquí que

y

y
 En este caso, tenemos que y tienen signos opuestos, y por lo tanto la raíz

tienen signos opuestos. Por lo tanto, la raíz se encuentra en el intervalo .

 En este caso, tenemos que y tienen signos opuestos, y por lo tanto la raíz

 En este caso, tenemos que y tienen signos opuestos, y por lo tanto la raíz

 En este caso, tenemos que y tienen signos opuestos, y por lo tanto la raíz

En este caso se tiene que y por lo tanto ya localizamos la raíz.

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

Ejemplo 1 es decir,
Ejemplo 1
es decir,

Aproximar la raíz de

 En este caso, tenemos que y tienen signos opuestos, y por lo tanto la raíz

hasta que

 En este caso, tenemos que y tienen signos opuestos, y por lo tanto la raíz

.

Solución

Sabemos por lo visto en el ejemplo 1 de la sección anterior, que la única raíz de

se localiza en el intervalo

 En este caso, tenemos que y tienen signos opuestos, y por lo tanto la raíz
 En este caso, tenemos que y tienen signos opuestos, y por lo tanto la raíz
 En este caso, tenemos que y tienen signos opuestos, y por lo tanto la raíz
ii) Evaluamos          .  . Así que
ii) Evaluamos          .  . Así que
ii) Evaluamos
.
. Así que este intervalo es nuestro punto de partida; sin embargo, para poder aplicar el método
En efecto, tenemos que
mientras que
i) Calculamos el punto medio (que es de hecho nuestra primera aproximación a la raíz):
Calculamos el punto medio (que es nuestra segunda aproximación a la raíz):
de bisección debemos checar que
Cabe mencionar que la función
y
tengan signos opuestos.
Por lo tanto, vemos que la raíz se encuentra en el intervalo
.
iii) Para identificar mejor en que nuevo intervalo se encuentra la raíz, hacemos la siguiente
tabla:
En este punto, vemos que todavía no podemos calcular ningún error aproximado, puesto que
solamente tenemos la primera aproximación. Así, repetimos el proceso con el nuevo intervalo
sí es continua en el intervalo
. Así pues, tenemos todos los requisitos satisfechos para poder aplicar el método de bisección.
Comenzamos:
Y calculamos el nuevo error aproximado:          1.25
Y calculamos el nuevo error aproximado:          1.25
Y calculamos el nuevo error aproximado:
1.25
Calculamos el punto medio,
El proceso debe seguirse hasta cumplir el objetivo.
Resumimos los resultados que se obtienen en la siguiente tabla:
Aquí podemos calcular el primer error aproximado, puesto que contamos ya con la aproximación
actual y la aproximación previa:
Puesto que no se ha logrado el objetivo, continuamos con el proceso.
Así, vemos que la raíz se encuentra en el intervalo
.
Evaluamos
, y hacemos la tabla:
Error aprox.
9.09%
4.76%
2.43%
1.20%
Aprox. a la raíz
1.375
1.3125
1.28125
1.296875
 0.59%            1.3046875  
 0.59%            1.3046875  
0.59%
1.3046875
Option Explicit
Dim ff As Double
Dim fxr As Double
Dim fxs As Double
Dim fxi As Double
Dim xr As Double
Dim xs As Double
Dim xi As Double
Dim aux As Double
Dim a As Double
Dim b As String
Dim sig As String
Dim ea As Double
ff = fxi * fxr
fxr = (Exp(-xr)) - xr
xr = (xi + xs) / 2
fxs = (Exp(-xs)) - xs
fxi = (Exp(-xi)) - xi
Así, obtenemos como aproximación a la raíz
Private Sub cmdcalcular_Click()
Label2.Caption = Label2.Caption & vbCrLf & Format(xi, "0.#####")
Label4.Caption = Label4.Caption & vbCrLf & Format(xs, "0.#####")
Dim correcto As Integer
If (ff > 0) Then
 sig = "+"  xi = xr  ElseIf (ff < 0) Then  sig
 
 sig = "+"  xi = xr  ElseIf (ff < 0) Then  sig

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

 
 sig = "+"  xi = xr  ElseIf (ff < 0) Then  sig
 Private Sub cmdsalir_Click()  Unload Me  frmprincipal.Visible = True  End Sub  Private
 
 Private Sub cmdsalir_Click()  Unload Me  frmprincipal.Visible = True  End Sub  Private

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

 
 Private Sub cmdsalir_Click()  Unload Me  frmprincipal.Visible = True  End Sub  Private
   ALGORITMO DE FALSA POSICIÓN.  1.- Proponer 2 valores para Xi y Xs
 
   ALGORITMO DE FALSA POSICIÓN.  1.- Proponer 2 valores para Xi y Xs

ALGORITMO DE FALSA POSICIÓN.

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 raíz 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.

INTRODUCCIÓN(Falsa Posición).

Método de la falsa posición

El método de la falsa posición pretende conjugar la seguridad del método de la bisección con la

rapidez del método de la secante. Este método, como en el método de la bisección, parte de dos puntos que rodean a la raíz f(x) = 0, es decir, dos puntos x0 y x1tales que f(x0)f(x1) < 0. La siguiente aproximación, x2, se calcula como la intersección con el eje X de la recta que une ambos puntos (empleando la ecuación del método de la secante). La asignación del nuevo intervalo de búsqueda se realiza como en el método de la bisección: entre ambos intervalos, [x0,x2] y [x2,x1], se toma aquel que cumpla f(x)f(x2) < 0. En la figura(1) se representa geométricamente este método.

 
   ALGORITMO DE FALSA POSICIÓN.  1.- Proponer 2 valores para Xi y Xs
 Figura(1): Representación geométrica del método de la falsa posición. [scale=0.9]eps/falpos   La elección guiada
 



 

Figura(1): Representación geométrica del método de la falsa posición.

 
 

[scale=0.9]eps/falpos

La elección guiada del intervalo representa una ventaja respecto al método de la secante ya que

inhibe la posibilidad de una divergencia del método. Por otra parte y respecto al método de la bisección, mejora notablemente la elección del intervalo (ya que no se limita a partir el intervalo por la mitad).



Figura(2): Modificación del método de la falsa posición propuesta por Hamming. La aproximación a la raíz se toma a partir del punto de intersección con el eje X de la recta que une los puntos ( x0,f(x0)/2) y (x1,f(x1)) si la función 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 función es cóncava en el intervalo (figura b).

 
 

[scale=0.9]eps/hamming

Sin embargo, el método de la falsa posición tiene una convergencia muy lenta hacia la solución.

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 modificación del método, denominada método de Hamming. Según este método, la aproximación a una raíz se encuentra a partir de la determinación del punto de intersección con el eje X de la recta que une los puntos ( x0,f(x0)/2) y (x1,f(x1)) si la función 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 función es cóncava en el intervalo. En la

Efectivamente, una vez iniciado el proceso iterativo, uno de los extremos del intervalo tiende a no
figura (2) se representa gráficamente el método de Hamming.  Como hemos comentado, el método de
 
figura (2) se representa gráficamente el método de Hamming.  Como hemos comentado, el método de

figura (2) se representa gráficamente el método de Hamming.

Como hemos comentado, el método de Hamming requiere determinar la concavidad o

convexidad de la función en el intervalo de iteración. Un método relativamente sencillo para determinar la curvatura de la función consiste en evaluar la función en el punto medio del intervalo, f(xm) (en donde xm se calcula como en el método de la bisección) y comparar este valor con la media de los valores de la función en los extremos del

intervalo, . Tenemos entonces que:

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

figura (2) se representa gráficamente el método de Hamming.  Como hemos comentado, el método de
 Label3.Caption = Label3.Caption & Format(xi, "00.######") & vbCrLf  If (ff > 0) Then 
 
 Label3.Caption = Label3.Caption & Format(xi, "00.######") & vbCrLf  If (ff > 0) Then 

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

 
 Label3.Caption = Label3.Caption & Format(xi, "00.######") & vbCrLf  If (ff > 0) Then 
 Label6.Caption = Label6.Caption & Format(fxs, "00.######") & vbCrLf  Label7.Caption = Label7.Caption & Format(xr, "00.######")
 
 Label6.Caption = Label6.Caption & Format(fxs, "00.######") & vbCrLf  Label7.Caption = Label7.Caption & Format(xr, "00.######")

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

 
 Label6.Caption = Label6.Caption & Format(fxs, "00.######") & vbCrLf  Label7.Caption = Label7.Caption & Format(xr, "00.######")
 Private Sub Form_Load()  i = 0  ea = 0  Label2.Caption = ""
 
 Private Sub Form_Load()  i = 0  ea = 0  Label2.Caption = ""

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 función f(x), ahí que calcula un valor para Xi (X inicial) .

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

3.- Derivar la función 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 raíz, y ahí termina la búsqueda.

 
 Private Sub Form_Load()  i = 0  ea = 0  Label2.Caption = ""
 5.- El valor de Xi = Xi+1.  INTRODUCCIÓN.  Método de Newton-Raphson. Está basado
 
 5.- El valor de Xi = Xi+1.  INTRODUCCIÓN.  Método de Newton-Raphson. Está basado

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

INTRODUCCIÓN.

Método de Newton-Raphson.

Está basado en el uso de una línea tangente como aproximación de f(x), cerca de los puntos donde el valor de la función es cero.

 

 

1.- Escoger un número inicial (x0) 2.- Calcular la siguiente aproximación de x1 utilizando la fórmula:

 



 

3.- Si | xn-xn+1 | < ð entonces xn+1 es una raíz

 

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

 
 5.- El valor de Xi = Xi+1.  INTRODUCCIÓN.  Método de Newton-Raphson. Está basado
 a = fxi  If (ea < 0.01) And (iteracion > 1) Then  frmNewton.Visible
 
 a = fxi  If (ea < 0.01) And (iteracion > 1) Then  frmNewton.Visible

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

 
 a = fxi  If (ea < 0.01) And (iteracion > 1) Then  frmNewton.Visible
 iteracion = 1

iteracion = 1

 iteracion = 1

xi = 0

End Sub

INTRODUCCION.

Método de la Secante

Es similar al método de Newton, pero la derivada se reemplaza por una diferencia dividida. El método requiere de dos puntos para empezar a iterar. Las iteraciones en este caso son



Se puede demostrar que el orden de convergencia para este método 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.

DIAGRAMA DE FLUJO DEL METODO DE LA SECANTE.

 DIAGRAMA DE FLUJO DEL METODO DE LA SECANTE.
TU FUTURO A UN CLICK: Masters, Cursos, Oposiciones
TU FUTURO A UN CLICK: Masters, Cursos, Oposiciones
 iteracion = 1  xi = 0  End Sub   INTRODUCCION.  MétodoCursos de inglés y formación académica en el extranjero El mayor abanico de cursos y titulaciones a distancia y online Método de Muller Este es un método para encontrar las raíces de ecuaciones polinomiales de la forma general: f n ( x )  a 0  a x  a 1 2 2 x  .......  a n x n Donde n es el orden del polinomio y las son coeficientes constantes. Continuando con los polinomios, estos cumplen con las siguientes reglas:  Para la ecuación de orden n, hay n raíces reales o complejas. Se debe notar que esas raíces no son necesariamente distintas. " id="pdf-obj-19-116" src="pdf-obj-19-116.jpg">
El mayor abanico de cursos y titulaciones a distancia y online
El mayor abanico de cursos y titulaciones a distancia y online

Método de Muller

Este es un método para encontrar las raíces de ecuaciones polinomiales de la forma general:

f

n

(x) a

0

a x a

1

2

2

x

.......

a

n

x

n

Donde n es el orden del polinomio y las a son coeficientes constantes. Continuando con los polinomios, estos cumplen con las siguientes reglas:

Para la ecuación de orden n, hay n raíces reales o complejas. Se debe notar que esas raíces no son necesariamente distintas.

Si n es impar, hay al menos una raíz real.

Si las raíces complejas existen, existe un par conjugado.

Antecedentes

Los polinomios tienen muchas aplicaciones en ciencia e ingeniería, como es el caso de su utilización en ajuste de curvas. Sin embargo, se considera que una de las aplicaciones mas interesantes y potentes es en los sistemas dinámicos, particularmente en los lineales.

El polinomio mas conocido en el mundo científico, es el denominado, ecuación característica, que es de la forma:

a

2

x

2

a x a

1

0

0

Donde las raíces de este polinomio satisfacen:

  • x 1,2

a

1

 Si n es impar, hay al menos una raíz real.  Si las raíces complejas

a

  • 2 4

1

a

2

a

0

2

a

0

También 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 raíces en sistemas de segundo orden es prácticamente sencillo, pero para sistemas de orden superior, puede resultar en un arduo trabajo.

El método

Un predecesor del método de Muller, es el método de la secante, el cual obtiene raíces, estimando una proyección de una línea recta en el eje x, a través de dos valores de la función (Figura 1). El método de Muller toma un punto de vista similar, pero proyecta una parábola a través de tres puntos (Figura 2).

El método consiste en obtener los coeficientes de los tres puntos, sustituirlos en la fórmula cuadrática y obtener el punto donde la parábola intercepta el eje x. La aproximación es fácil de escribir, en forma conveniente esta sería:

f(x)

f (x)  a(x  x 2 2 Línea recta x Raíz estimada x x X
f
(x)  a(x  x
2
2
Línea recta
x
Raíz
estimada
x
x
X
X
X 0
1

)

2

b(x x

2

) c

Raíz

Figura 1

 Si n es impar, hay al menos una raíz real.  Si las raíces complejas
Parábola 0 0 Raíz 0 x x X X X X 2 1 0 2 )
Parábola
0
0
Raíz
0
x
x
X
X
X
X
2
1
0
2
)  a(x
 x
)
 b(x
 x
)  c
2
0
2
2
 x
)
 b(x
x
)  c
2
1
2
2
 x
)
 b(x
 x
)  c
2
2
2

f(x)

Raíz estimada Figura 2 Así, se busca esta parábola para intersectar los tres puntos [x 0 , f(x 0 )], [x 1 , f(x 1 )] y [x 2 , f(x 2 )]. Los coeficientes de la ecuación anterior se evalúan al sustituir uno de esos tres puntos para dar:

f (x

 

0

0

f (x ) a(x

1

1

f (x

2

) a(x

2

La última ecuación genera que, f (x incógnitas:

  • 2 ) c , de esta forma, se puede tener un sistema de dos ecuaciones con dos

f

(

x

0

)

f

(

x

2

)

a

(

x

0

x

2

)

2

b

(

x

0

x

2

)

f

(

x

1

)

f

(

x

2

)

a

(

x

1

x

2

)

2

b x

(

1

x

2

)

Definiendo de esta forma:

h

0

x

1

x

0

h

1

x

2

x

1

0

f

(

x

1

)

f

(

x

2

)

x

1

x

0

1

f

(

x

2

)

f

(

x

1

)

x

2

x

1

Sustituyendo en el sistema:

(h

0

h )b (h

1

0

h )

1

2

a h

0

0

h

1

1

h b h

1

1

2

a h

1

1

Teniendo como resultado los coeficientes:

a

1

0

h

1

h

0

b ah

1

1

c

f

(

x

2

)

Hallando la raiz, se implementar la solución convencional, pero debido al error de redondeo potencial, se usará una formulación alternativa:

x

3

x

2

 2 c b 2 b   4 ac
 2 c
b
2
b
 4
ac

despejando

x

3

x

2

 2 c b 2 b   4 ac
 2 c
b
2
b
 4
ac

La gran ventaja de este método es que se pueden localizar tanto las raíces reales como las imaginarias. Hallando el error este será:

E a

x  x 3 2 x 3
x
x
3
2
x
3

100%

Al ser un método de aproximación, este se realiza de forma secuencial e iterativamente, donde x 1 , x 2 , x 3 reemplazan los puntos x 0 , x 1 , x 2 llevando el error a un valor cercano a cero

Programa

Por ser un método que trabaja de forma lineal, es posible una aplicación computacional en forma sencilla, la cual sería:

SubMuller (x r , h, eps, maxit)

  • x 2 = x r

  • x 1 = x r + h*x r

  • x 0 = x r – h*x r Do

iter = iter + 1

h 0

= x 1 + x 0

h 1 = x 2 – x 1 d 0 = (f(x 1 )-f(x 0 ))/h 0 d 1 = (f(x 2 )-f(x 1 ))/h 1 a = (d 1 – d 0 )/(h 1 + h 0 ) b = a*h 1 +d 1 c = f(x 2 ) 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 dx r = -2*c/den x r = x 2 + dx r Print iter, x r IF (Idx r l<eps*x r or iter>maxit) exit x 0 = x 1 x 1 = x 2 x 2 = x r

End do

End Muller

Ejemplo

f

(

x

)

3

x

13

x

12

h = 0,1

x

2 = 5

x 1 = 5,5

x 0 =4,5

Con un análisis previo, las raíces son –3, -1 y 4

Solución

f (4,5) 20,625

Calculando

f (5,5) 82,875

f (5) 48

h

0

5,5

4,5

1

h

1

5

5,5

 

0,5

0

82,875

20,625

5,5

4,5

62,25

Hallando los coeficientes

1

48

82,875

5

5,5

69,75

a

69,75

62,25

0,5

1

15

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

c 48

La raíz cuadrada del discriminante es:

62,25 2  4  15  48  31,544

62,25

2

4

15

48

31,544

 

Así

 

5

 

2

48

3,9765

 

x

3

62,25

31,544

Y el error estimado

 

E a

 1,0235  x 3
 1,0235
x
3

100%

25,74%

 

Ahora

 

x

2 = 3,9765

x 1 = 5

x 0 =5,5

 

Haciendo uso de un programa y realizando diferentes iteraciones:

 
 

i

x r

E a %

0

5

1

3,9465

25,740

2

4,0011

0,614

3

4,0000

0,026

4

4,0000

0,000

Método de Newton

 

El método

 

x

i

1

x

i

f

(

x

i

)

f

´(

x

i

)

f ´(x*) g ( x*) 0

 

Se utilizará la siguiente formulación, para hallar máximos o mínimos:

 

x

i

1

x

i

f

´(

x

i

)

 

f

´´(

x

i

)

Es una técnica para encontrar el valor óptimo (máximo o mínimo), de una función de una variable, f(x). Para esta clase de análisis se debe tener cuidado con los sistemas multimodal, en los cuales existen valores óptimos globales y locales. Para la gran mayoría de los casos, los estudios se centran en los globales.

Como antecedente para la explicación del método, se tiene el método de Newton-Raphson, el cual es un método abierto que encuentra la raíz de x, tal que f(x) = 0, el método se resume así:

Haciendo uso de este planteamiento para hallar un óptimo de f(x), al definir una nueva función g(x) = f´(x), así, como el mismo valor óptimo x*, satisface:

Este es un método abierto y similar al Newton-Raphson, ya que no requiere valores iniciales que contengan el óptimo. Además, comparte la desventaja de poder ser divergente.

Como anotación, es conveniente verificar que la segunda derivada tenga el signo correcto, para confirmar que la técnica 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 función de la derivada, por lo cual el seudocódigo es de muy fácil implementación

SubNewton (x i , x r , eps, maxit)

r = x i Do

x

 

iter = iter + 1

g x

= f’ x

 

h x = g’ x

 

div = g x / h x

x

i = x r - div

dx i = (x i – x r ) / x i Print (iter, x r ) IF (Idx i l<eps*x r or iter>maxit) exit X r = x i

End do

 

End Newton

f(x)

Línea recta x Raíz estimada x x X X X 0 1
Línea recta
x
Raíz
estimada
x
x
X
X
X 0
1

Raíz

Ejemplo

 

Hallar el máximo de:

 

f

(

x

)

2

(

sen x

)

Solución

 

f

´(

x

)

2 cos(

x

2

  • x con un valor inicial de x 0 = 2,5

10

)

x

5

f ´´(x)  2sen( x)

1

5

Sustituyendo en la formulación de Newton:

x

i

1

x

i

2 cos(

x

i

)

x

i

/ 5

2

(

sen x

i

)

1/ 5

x

1

2,5

2 cos(2,5)

2,5 / 5

2

sen

(2,5)

1/ 5

0,995

Reemplazando en la ecuación, f(0,995)=1,579; la segunda iteración será:

x

1

0,995

2 cos(0,995)

0,995 / 5

2

sen

(0,995)

1/ 5

1,469

Realizando diferentes iteraciones:

i

x

f(x)

f´(x)

f´´(x)

0

2,5

0,572

-2,102

-1,379

1

0,995

1,579

0,890

-1,878

2

1,469

1,774

-0,091

-2,190

3

1,427

1,776

-0,000

-2,180

Método de Müller.

El método de la secante obtiene raíces de una función estimando una proyección de una línea recta en el eje de las x, a través de los valores de la función. El método de Müller, trabaja de manera similar, pero en lugar de hacer la proyección de una recta utilizando dos puntos, requiere de tres puntos para calcular una parábola.

Para esto necesitaremos de tres puntos [x0, f(x0)], [x1, f(x1)] y [x2, f(x2)]. La aproximación la podemos escribir como:

f 2 (x) = A(x – x 2 ) 2 + B(x – x 2 ) + C

Los coeficientes de la parábola los calculamos resolviendo el siguiente sistema de ecuaciones.

f 2 (x 0 ) = A(x 0 – x 2 ) 2 + B(x 0 – x 2 ) + C f 2 (x 1 ) = A(x 1 – x 2 ) 2 + B(x 1 – x 2 ) + C f 2 (x 2 ) = A(x 2 – x 2 ) 2 + B(x 2 – x 2 ) + C

De la última ecuación podemos ver que el calor de C = f 2 (x 2 ). Sustituyendo los valores de C en las otras dos ecuaciones tenemos

f 2 (x 0 )- f 2 (x 2 ) = A(x 0 – x 2 ) 2 + B(x 0 – x 2 ) f 2 (x 1 ) - f 2 (x 2 ) = A(x 1 – x 2 ) 2 + B(x 1 – x 2 )

Si definimos

h 0 = x 1 - x 0 h 1 = x 2 – x 1 d 0 = [f(x 1 ) – f(x 0 )]/[x 1 – x 0 ] d 1 = [f(x 2 ) – f(x 1 )]/[x 2 –x 1 ]

Sustituyendo en las ecuaciones tenemos

-(d 0 * h 0 + d 1 * h 1 )= A(h 1 + h 0 ) 2 - B(h 1 + h 0 ) -d 1 * h 1 = A(h 1 ) 2 - Bh 1

La solución de este sistema de ecuaciones es:

A = (d 1 – d 0 )/(h 1 + h 0 ) B = Ah 1 + d 1 C = f(x 2 )

Ahora para calcular la raíz del polinomio de segundo grado, podemos aplicar la formula general. Sin embargo, debido al error potencial de redondeo, usaremos una formulación alternativa.

 

x

3

x

2

 2 C b  b 2  4 ac
 2 C
b
b
2  4
ac
 

Ejemplo.

 

Use

el

método

de

Müller con

 

los

valores iniciales de

4.5,

5.5

y

5

para

determinar la raíz de la ecuación f(x) = x 3 – 13x – 12.

 
 

x0

x1

x2

f(x0)

f(x1)

f(x2)

x3

  • 4.50000 5.50000

5.00000

 

20.62500

82.87500

48.00000

 

3.97649

  • 5.50000 5.00000

3.97649

 

82.87500

48.00000

-0.81633

 

4.00105

  • 5.00000 3.97649

4.00105

 

48.00000

-0.81633

0.03678

4.00000

  • 3.97649 4.00105

4.00000

 

-0.81633

0.03678

0.00002

4.00000

Implementación en Java.

/**

* <p>Title: Metodo de Muller</p>

* <p>Description:

Resuelve un ecuación haciendo una aproximacion

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 = 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);

raiz = Math.sqrt(B * B - 4.0 * A * C);

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; x1 = x2; x2 = x3; }while (Math.abs(f(x3)) > 0.000001);

} static public double f(double x) {

return(x*x*x - 13*x -12);

}

}