Document

Anuncio
Raı́ces de ecuaciones no lineales
Dada una ecuación de una variable independiente x,
f (x) = 0,
se desea encontrar el valor o valores de x que hacen que se cumpla la igualdad, donde en general,
f es una función no lineal de x, es decir, que no puede expresarse como f (x) = c0 + c1x
donde c0 y c1 son constantes.
l
c Va
D.R. en
1
zu ela,
2007
Método de bisecciones sucesivas
f (x)
f (x2 )
f (xnueva )
x1
xnueva
x2
x
f (x1 )
Se inicia con un intervalo [x1, x2] donde se sabe que existe una raı́z de la ecuación, y por lo
tanto se debe cumplir que f (x1 )f (x2 ) < 0. Este intervalo se divide a la mitad calculando
xnueva =
x1 + x2
2
.
Si f (x1 ) · f (xnueva ) < 0 se sabe que una raı́z se encuentra en el intervalo (x1 , xnueva ) y se
puede continuar el algoritmo sustituyendo x2 por xnueva . En caso contrario, la raı́z debe caer en
el intervalo (x2 , xnueva ) y el algoritmo puede continuarse sustituyendo x1 por xnueva .
l
c Va
D.R. en
2
zu ela,
2007
Implementación de bisecciones sucesivas
Function Bisecciones(f ,x1 ,x2 )
1
7
x1 + x2
;
2
if f (x1 )f (xnueva ) < 0 then
x2 ← xnueva ;
else
x1 ← xnueva ;
x − x 2
1
until < ε ó f (xnueva ) = 0 ;
xnueva 8
return xnueva
2
3
4
5
6
l
c Va
D.R. en
repeat
xnueva ←
3
zu ela,
2007
Punto fijo (iteración simple)
La ecuación f (x) = 0 se transforma a la forma g(x) = x, y ésta se utiliza como una
regla recursiva, es decir,
x ← g (x) .
y
y=x
y = g(x)
x
l
c Va
D.R. en
4
zu ela,
2007
Punto fijo (iteración simple)
La ecuación f (x) = 0 se transforma a la forma g(x) = x, y ésta se utiliza como una
regla recursiva, es decir,
x ← g (x) .
y=x
y
y = g(x)
x1
l
c Va
D.R. en
x
4
zu ela,
2007
Punto fijo (iteración simple)
La ecuación f (x) = 0 se transforma a la forma g(x) = x, y ésta se utiliza como una
regla recursiva, es decir,
x ← g (x) .
y=x
y
g(x1 )
y = g(x)
x1
l
c Va
D.R. en
x
4
zu ela,
2007
Punto fijo (iteración simple)
La ecuación f (x) = 0 se transforma a la forma g(x) = x, y ésta se utiliza como una
regla recursiva, es decir,
x ← g (x) .
y=x
y
g(x1 )
x2 = g(x1 )
y = g(x)
x1
l
c Va
D.R. en
x2
x
4
zu ela,
2007
Punto fijo (iteración simple)
La ecuación f (x) = 0 se transforma a la forma g(x) = x, y ésta se utiliza como una
regla recursiva, es decir,
x ← g (x) .
y=x
y
g(x1 )
x2 = g(x1 )
g(x2 )
y = g(x)
x1
l
c Va
D.R. en
x2
x
4
zu ela,
2007
Punto fijo (iteración simple)
La ecuación f (x) = 0 se transforma a la forma g(x) = x, y ésta se utiliza como una
regla recursiva, es decir,
x ← g (x) .
y=x
y
g(x1 )
x2 = g(x1 )
x3 = g(x2 )
g(x2 )
y = g(x)
x1
l
c Va
D.R. en
x3
x2
x
4
zu ela,
2007
Punto fijo (iteración simple)
La ecuación f (x) = 0 se transforma a la forma g(x) = x, y ésta se utiliza como una
regla recursiva, es decir,
x ← g (x) .
y=x
y
g(x1 )
x2 = g(x1 )
x3 = g(x2 )
g(x2 )
y = g(x)
x1
l
c Va
D.R. en
x3
x2
x
4
zu ela,
2007
Punto fijo (iteración simple)
La ecuación f (x) = 0 se transforma a la forma g(x) = x, y ésta se utiliza como una
regla recursiva, es decir,
x ← g (x) .
y=x
y
g(x1 )
x2 = g(x1 )
x3 = g(x2 )
g(x2 )
y = g(x)
x1
l
c Va
D.R. en
x3
x4 x2
x
4
zu ela,
2007
Punto fijo (iteración simple)
La ecuación f (x) = 0 se transforma a la forma g(x) = x, y ésta se utiliza como una
regla recursiva, es decir,
x ← g (x) .
y=x
y
g(x1 )
x2 = g(x1 )
x3 = g(x2 )
g(x2 )
y = g(x)
x1
l
c Va
D.R. en
x3
x4 x2
x
4
zu ela,
2007
Punto fijo (iteración simple)
La ecuación f (x) = 0 se transforma a la forma g(x) = x, y ésta se utiliza como una
regla recursiva, es decir,
x ← g (x) .
y=x
y
g(x1 )
x2 = g(x1 )
x3 = g(x2 )
g(x2 )
y = g(x)
x1
l
c Va
D.R. en
x3 x5
x4 x2
x
4
zu ela,
2007
Punto fijo (iteración simple)
La ecuación f (x) = 0 se transforma a la forma g(x) = x, y ésta se utiliza como una
regla recursiva, es decir,
x ← g (x) .
y=x
y
g(x1 )
x2 = g(x1 )
x3 = g(x2 )
g(x2 )
y = g(x)
x1
l
c Va
D.R. en
x3 x5
x4 x2
x
4
zu ela,
2007
Punto fijo (iteración simple)
La ecuación f (x) = 0 se transforma a la forma g(x) = x, y ésta se utiliza como una
regla recursiva, es decir,
x ← g (x) .
y=x
y
g(x1 )
x2 = g(x1 )
x3 = g(x2 )
g(x2 )
y = g(x)
x1
l
c Va
D.R. en
x3 x5
x6 x4 x2
x
4
zu ela,
2007
Condición de convergencia
para iteración simple
El método de iteración simple converge converge a una raı́z r de la ecuación g(x) = x si
g(x) y g (x) son continuas en un intervalo alrededor de r , si
g (x) < 1,
para todo ese intervalo, y si x1 se escoge en ese intervalo.
Nótese que ésta es una condición suficiente, pero no necesaria.
l
c Va
D.R. en
5
zu ela,
2007
Implementación del método de iteración simple
Function IteracionSimple(g ,x)
4
repeat
xant ← x ;
x ← g(x) ;
x − x ant until <ε;
x
5
return x
1
2
3
l
c Va
D.R. en
6
zu ela,
2007
Método Newton-Rapson
f (x)
f (x(t))
θ
x(t + 1)
tan θ = f (xt ) =
x(t)
f (x(t))
x(t) − x(t + 1)
x(t + 1) = x(t) −
x←x−
l
c Va
D.R. en
x
f (x(t))
f (x(t))
f (x)
f (x)
,
(1)
7
zu ela,
2007
Implementación del método Newton-Rapson
Function NewtonRapson(f ,f ,x)
1
2
4
f (x)
x←x− ;
f
(x)
x − x ant until <ε;
x
5
return x
3
l
c Va
D.R. en
repeat
xant ← x ;
8
zu ela,
2007
Condición de convergencia
para Newton-Rapson
Tomando la idea de la condición de convergencia de iteración simple, la condición para
Newton-Rapson es la siguiente
d
f (x) x− < 1,
dx
f (x) que es equivalente a
f (x)f (x) <1
f (x) 2 De nuevo, ésta es una condición suficiente, pero no necesaria.
l
c Va
D.R. en
9
zu ela,
2007
Método de la Secante
El método Newton-Rapson requiere evaluar f (x). En el método de la secante, la derivada
se aproxima de la siguiente manera:
f (x(t)) ≈
f (x(t − 1)) − f (x(t))
x(t − 1) − x(t)
Sustituyendo en la ecuación recursiva de Newton-Rapson se obtiene
x(t + 1) = x(t) −
f (x(t)) (x(t) − x(t − 1))
f (x(t)) − f (x(t − 1))
o lo que es lo mismo,
x ← x − f (x)
l
c Va
D.R. en
x − xanterior
f (x) − f (xanterior )
,
.
10
zu ela,
2007
Implementación del método de la secante
Function Secante(f ,x1 ,x2 )
1
2
5
x1 − x2
x1 ← x1 − f (x1 )
;
f (x1 ) − f (x2 )
x2 ← xtemp ;
x − x 2
1
until <ε;
x1 6
return x
3
4
l
c Va
D.R. en
repeat
xtemp ← x1 ;
11
zu ela,
2007
Método Newton-Rapson para
funciones de dos variables
Siguiendo la estrategia del método de Newton-Rapson visto, es posible diseñar un algoritmo
para encontrar raı́ces de funciones de la forma
l
c Va
D.R. en
f (x, y)
=
0
g(x, y)
=
0
12
zu ela,
2007
Método Newton-Rapson para
funciones de dos variables
Siguiendo la estrategia del método de Newton-Rapson visto, es posible diseñar un algoritmo
para encontrar raı́ces de funciones de la forma
f (x, y)
=
0
g(x, y)
=
0
Suponiendo que tenemos un punto inicial p0 = (x0 , y0), las ecuaciones de los planos
tangentes a f y g en el punto p0 son
z
=
(x − x0 ) fx (x0 , y0) + (y − y0) fy (x0 , y0) + f (x0 , y0)
z
=
(x − x0 ) gx (x0 , y0) + (y − y0)gy (x0 , y0) + g(x0 , y0)
donde
fx =
gx =
l
c Va
D.R. en
∂f
∂x
∂g
∂x
fy =
gy =
∂f
∂y
∂g
∂y
12
zu ela,
2007
Si nos interesan las raı́ces, es decir los puntos para los cuales z = 0, tenemos que
l
c Va
D.R. en
(x − x0 ) fx + (y − y0) fy
=
−f (x0 , y0)
(x − x0 ) gx + (y − y0) gy
=
−g(x0 , y0)
13
zu ela,
2007
Si nos interesan las raı́ces, es decir los puntos para los cuales z = 0, tenemos que
(x − x0 ) fx + (y − y0) fy
=
−f (x0 , y0)
(x − x0 ) gx + (y − y0) gy
=
−g(x0 , y0)
Definiendo
tenemos que
l
c Va
D.R. en
fx
gx
fy
gy
Δx
=
x − x0
Δy
=
y − y0
Δx
Δy
=
−f (x0 , y0)
−g(x0 , y0)
13
zu ela,
2007
Regla recursiva de Newton-Rapson
para funciones de dos variables
Por lo tanto la regla recursiva es
x
←
x + Δx
y
←
y + Δy
donde Δx y Δy se obtienen de resolver el sistema de ecuaciones
l
c Va
D.R. en
fx
gx
fy
gy
Δx
Δy
=
−f (x, y)
−g(x, y)
14
zu ela,
2007
Regla recursiva de Newton-Rapson
para funciones de tres variables
El método puede generalizarse a un número más grande de variables independientes. Para
el siguiente sistema de ecuaciones no lineales de tres variables independientes:
f (x, y, z)
=
0
g(x, y, z)
=
0
h(x, y, z)
=
0
La regla recursiva es la siguiente:
donde Δx, Δy , Δz se obtienen
⎡
fx fy
⎣ gx gy
hx hy
l
c Va
D.R. en
x
←
x + Δx
y
←
y + Δy
z
←
z + Δz
de resolver el sistema de ecuaciones
⎤⎡
⎤
⎡
⎤
Δx
fz
−f (x, y, z)
gz ⎦ ⎣ Δy ⎦ = ⎣ −g(x, y, z) ⎦
hz
Δz
−h(x, y, z)
15
zu ela,
2007
Ejemplo de dos variables independientes
Encontremos una raı́z del siguiente sistemas de ecuaciones no lineales:
2
=
x +y −1
g(x, y)
=
x−y
fx = 2x
fy = 2y
gx = 1
El sistema de ecuaciones es
2x
1
Tomemos p0 = (2, 1):
2
f (x, y)
2y
−1
Δx
Δy
gy = −1
=
−x2 − y 2 + 1
−x + y
4
2
Δx
−4
=
1 −1
Δy
−1
De donde Δx = −1 y Δy = 0 por lo tanto
l
c Va
D.R. en
x
←
x + Δx = 2 − 1 = 1
y
←
y + Δy = 1 − 0 = 1
16
zu ela,
2007
Iterando obtenemos los siguientes valores:
x
y
2
1
1
1
0.7500
0.7500
0.7083
0.7083
0.7071
0.7071
Se puede comprobar que (0.7071, 0.7071) es una raı́z del juego de ecuaciones no lineales.
l
c Va
D.R. en
17
zu ela,
2007
Método de Horner (división sintética)
Supóngase dos polinomios P (x) y Q(x) de la forma
P (x)
=
n
n−1
a1 x + a2x
+ · · · + an x + an+1 =
n+1
ai xn−i+1
(2)
i=1
Q(x)
=
n−1
b1 x
n−2
+ b2 x
+ · · · + bn−1 x + bn =
n
bi xn−i
(3)
i=1
donde a1 = 0. Si la relación entre P (x) y Q(x) está dada por
P (x) = (x − x0 )Q(x) + bn+1 ,
(4)
Se tiene que b1 = a1 , bn+1 = P (x0 ), y
bk = ak + bk−1 x0 ,
(5)
para k = 2, 3, . . . , n + 1.
l
c Va
D.R. en
18
zu ela,
2007
División Sintética
Lo anterior puede realizarse mediante una tabla de la siguiente manera
x0
a1
b1 =
a1
l
c Va
D.R. en
a2
b1x0
b2 =
a2 + b1 x0
a3
b2 x0
b3 =
a3 + b2 x0
···
···
···
···
an
bn−1 x0
bn =
an + bn−1x0
an+1
bnx0
bn+1 =
an+1 + bn x0
19
zu ela,
2007
División Sintética
Lo anterior puede realizarse mediante una tabla de la siguiente manera
x0
a1
b1 =
a1
a2
b1x0
b2 =
a2 + b1 x0
a3
b2 x0
b3 =
a3 + b2 x0
···
···
···
···
an
bn−1 x0
bn =
an + bn−1x0
an+1
bnx0
bn+1 =
an+1 + bn x0
Ejemplo:
Si P (x) = 2x4 − 3x2 + 3x − 4 y x0 = −2:
−2
2
2
0
−4
−4
−3
8
5
3
−10
−7
−4
14
10
de donde P (x) = (x + 2)(2x3 − 4x2 + 5x − 7) + 10 y P (−2) = 10.
l
c Va
D.R. en
19
zu ela,
2007
Dado que
P (x) = (x − x0 )Q(x) + bn+1 ,
P (x) = Q(x) + (x − x0)Q (x).
(6)
(7)
Por lo tanto
P (x0 ) = Q(x0 ),
(8)
es decir, que P (x0 ) puede evaluarse obteniendo el residuo de la división de Q(x) por (x − x0 )
y evaluando Q(x0 ).
l
c Va
D.R. en
20
zu ela,
2007
Polinomios como vectores
El polinomio P (x),
n
n−1
P (x) = a1 x + a2x
+ · · · + an x + an+1 =
n+1
ai xn−i+1,
(9)
i=1
puede ser representado por el vector de sus coeficientes,
a=
a1
a2
···
an
an+1
(10)
de la misma manera Q(x) puede ser representado por el vector b(1 : n)
b=
l
c Va
D.R. en
b1
b2
···
bn
(11)
21
zu ela,
2007
Implementación de división sintética
Function Horner(a,x0 )
3
b1 ← a1 ;
for i ← 2 to n + 1 do
bi ← ai + bi−1x0 ;
4
return b
1
2
l
c Va
D.R. en
22
zu ela,
2007
Birge-Vieta
Un polinomio de la forma,
n
n−1
P (x) = a1 x + a2 x
+ · · · + an−1x + an =
n
n−i+1
ai x
,
(12)
i=1
puede ser factorizado en la forma
P (x) = (x − p1 )(x − p2) · · · (x − pn) =
n
(x − pi ),
(13)
i=1
donde pi es un cero (o raı́z) del polinomio porque P (pi ) = 0.
El método Birge-Vieta aplica Newton-Rapson para encontrar una raı́z del polinomio P (x).
Dado un punto xk , evalúa P (xk ) y P (xk ) mediante división sintética. Cuando encuentra una
raı́z pi , elimina el factor (x − pi ) mediante división sintética y continúa trabajando sobre el
polinomio resultante. El proceso se repite hasta encontrar todas las raı́ces del polinomio.
l
c Va
D.R. en
23
zu ela,
2007
Ejemplo de Birge-Vieta
Sea P (x) = x3 − 2x2 − 5x + 6. Valor inicial x = −(−5)/6 = 0.8333
0.8333
1
0.8333
1
1
−2
0.8333
−1.1667
0.8333
−0.3333
x←x−
0.9970
1
0.9970
1
1
1.0231
− 6.2500
−2
0.9970
−1.0030
0.9970
−0.0059
x←x−
l
c Va
D.R. en
−5
−0.9722
−5.9722
−0.2778
−6.2500
6
−4.9769
1.0231
= 0.9970
−5
−1.0000
−6.0000
−0.0059
−6.0059
0.0178
− 6.0059
6
−5.9822
0.0178
=1
24
zu ela,
2007
0.9970
1
0.9970
1
1
−2
1
−1
1
0
x←x−
−5
−1
−6.0000
0
−6
0
−6
6
−6
0
=1
x = 1 es la primera raı́z.
Continuamos con el polinomio x2 − x − 6. Valor inicial x = −(−1)/(−6) = −0.1667
0.1667
1
0.1667
1
1
x←x−
l
c Va
D.R. en
−1
−0.1667
−1.1667
−0.1667
−1.3333
− 5.8056
− 1.3333
−6
0.1944
−5.8056
= −4.5208
25
zu ela,
2007
−4.5208
1
−4.5208
1
−1
−4.5208
−5.5208
−4.5208
−10.0417
1
x←x−
18.9588
− 10.0417
−2.6328
1
−2.6328
1
1
x←x−
l
c Va
D.R. en
= −2.6328
−1
−2.6328
−3.6328
−2.6328
−6.2656
3.5646
− 6.2656
−6
24.9588
18.9588
−6
9.5646
3.5646
= −2.0639
26
zu ela,
2007
−2.0639
1
−2.0639
1
1
x←x−
0.3237
− 5.1278
−2.0008
1
−2.0008
1
1
x←x−
l
c Va
D.R. en
−1
−2.0639
−3.0639
−2.0639
−5.1278
−6
6.3237
0.3237
= −2.0008
−1
−2.0008
−3.0008
−2.0008
−5.0016
0.0040
− 5.0016
−6
6.0040
0.0040
= −2
27
zu ela,
2007
−2
1
−2
1
1
x←x−
−1
−2
−3
−2
−5
0
−5
−6
6
0
= −2
x = −2 es la segunda raı́z.
Seguimos con el polinomio P (x) = x − 3. La tercera raı́z es x = 3.
l
c Va
D.R. en
28
zu ela,
2007
División sintética para binomios
Es posible deducir un algoritmo de división sintética para binomios de la siguiente manera:
2
P (x) = (x − rx − s)Q(x) + bn (x − r) + bn+1
(14)
Supóngase dos polinomios P (x) y Q(x) de la forma
P (x)
=
n
n−1
a1x + a2x
+ · · · + an x + an+1 =
n+1
ai xn−i+1
(15)
i=1
Q(x)
=
n−2
b1x
n−3
+ b2x
+ · · · + bn−2 x + bn−1 =
n−1
n−i−1
bi x
(16)
i=1
donde a1 = 0.
l
c Va
D.R. en
29
zu ela,
2007
Al multiplicar e igualar coeficientes de potencias iguales de x se tiene que
b1
=
a1
(17)
b2
=
a2 + rb1
(18)
b3
=
a3 + rb2 + sb1
(19)
b4
=
...
a4 + rb3 + sb2
(20)
(21)
de donde
bk = ak + rbk−1 + sbk−2
(22)
para k = 3, 4, . . . n + 1.
En una tabla:
a1
r
s
b1
l
c Va
D.R. en
a2
b1 r
b2
a3
b2 r
b1 s
b3
···
···
···
···
an−1
nn−2r
bn−3 s
bn−1
an
bn−1r
bn−2s
bn
an+1
bnr
bn−1s
bn+1
30
zu ela,
2007
Implementación de división sintética para binomios
Function divSintetica(a,r ,s)
4
b1 ← a1 ;
b2 ← a2 + rb1 ;
for i ← 3 to n + 1 do
bi ← ai + rbi−1 + sbi−2 ;
5
return b
1
2
3
l
c Va
D.R. en
31
zu ela,
2007
El método de Lin-Bairstow necesita calcular ∂bn /∂r , ∂bn/∂s, ∂bn+1/∂r , y ∂bn+1 /∂s.
Éstas pueden obtenerse mediante una división sintética:
∂b1
∂r
∂b2
∂r
∂b3
∂r
∂b4
∂r
∂b5
∂r
...
=0
= b1 ≡ c1
= b2 + rc1 ≡ c2
= b3 + rc2 + sc1 ≡ c3
= b4 + rc3 + sc2 ≡ c4
∂b1
∂s
∂b2
∂s
∂b3
∂s
∂b4
∂s
∂b5
∂s
...
=0
=0
= b1 = c1
= b2 + rc1 = c2
= b3 + rc2 = c3
de donde
ck = bk + rck−1 + sck−2
para k = 3, 4, . . . , n + 1, y
∂bk
∂r
l
c Va
D.R. en
= ck−1
∂bk
∂s
= ck−2
32
zu ela,
2007
En una tabla
a1
r
s
b1
b2
c1 r
c1
c2
r
s
l
c Va
D.R. en
a2
b1 r
a3
b2r
b1 s
b3
c2 r
c1 s
c3
···
···
···
···
···
···
···
an−2
bn−3 r
bn−4s
bn−2
cn−3r
cn−4s
cn−2
an−1
bn−2 r
bn−3s
bn−1
cn−2r
cn−3s
cn−1
an
bn−1r
bn−2s
bn
cn−1r
cn−2s
cn
an+1
bn r
bn−1 s
bn+1
33
zu ela,
2007
Lin-Bairstow
El método de Lin-Bairstow encuentra todas las raı́ces (reales y complejas) de un polinomio
P (x).
Dado unos valores iniciales de r y s, realiza una división sintética de P (x) por (x2 −rx−s).
Utiliza el método de Newton para encontrar los valores de r y s que hagan el residuo cero, es
decir, encuentra las raı́ces del sistema de ecuaciones
bn (r, s)
=
0
bn−1 (r, s)
=
0
Utilizando la regla recursiva
donde
l
c Va
D.R. en
cn−1
cn
rk
=
rk−1 + Δr
sk
=
sk−1 + Δs
cn−2
cn−1
Δr
Δs
=
−bn
−bn+1
34
zu ela,
2007
Una vez que se encuentra un factor cuadrático de P (x) se resuelve con la fórmula
p1,2 =
−B±
B2
2A
− 4AC
=
r±
r 2 + 4s
2
y se continúa trabajando tomando Q(x) como el nuevo polinomio P (x).
l
c Va
D.R. en
35
zu ela,
2007
Ejemplo de Lin-Bairstow
P (x) = x4 − 1.1x3 + 2.3x2 + 0.5x + 3.3 = 0
Tomando como valores iniciales s = r = −1, la primera iteración nos da:
−1
−1
−1
−1
l
c Va
D.R. en
1
−1.1
−1.0
1
−2.1
−1.0
1
−3.1
2.3
2.1
−1.0
3.4
3.1
−1.0
5.5
0.5
−3.4
2.1
−0.8
−5.5
3.1
−3.2
3.3
0.8
3.4
0.7
36
zu ela,
2007
Ejemplo de Lin-Bairstow
P (x) = x4 − 1.1x3 + 2.3x2 + 0.5x + 3.3 = 0
Tomando como valores iniciales s = r = −1, la primera iteración nos da:
−1
−1
−1
−1
l
c Va
D.R. en
1
−1.1
−1.0
1
−2.1
−1.0
1
−3.1
cn−2
2.3
2.1
−1.0
3.4
3.1
−1.0
5.5
cn−1
0.5
−3.4
2.1
−0.8
−5.5
3.1
−3.2
cn
3.3
0.8
3.4
0.7
bn+1
bn
36
zu ela,
2007
Ejemplo de Lin-Bairstow
P (x) = x4 − 1.1x3 + 2.3x2 + 0.5x + 3.3 = 0
Tomando como valores iniciales s = r = −1, la primera iteración nos da:
−1
−1
−1
−1
Resolviendo el sistema
1
−1.1
−1.0
1
−2.1
−1.0
1
5.5
−3.2
−3.1
cn−2
−3.1
5.5
2.3
2.1
−1.0
3.4
3.1
−1.0
5.5
cn−1
Δr
Δs
0.5
−3.4
2.1
−0.8
−5.5
3.1
−3.2
cn
3.3
0.8
3.4
0.7
bn+1
bn
=
0.8
−0.7
Δr = 0.11 y Δs = −0.06.
l
c Va
D.R. en
36
zu ela,
2007
La segunda iteración:
−0.89
−1.06
−0.89
−1.06
Resolviendo el sistema
1
−1.1
−0.89
1
−1.99
−0.89
1
−2.88
4.51
−1.03
−2.88
4.51
2.3
1.77
−1.06
3.01
2.56
−1.06
4.51
Δr
Δs
0.5
−2.68
2.11
−0.07
−4.01
3.05
−1.03
3.3
0.06
−3.17
0.17
=
0.07
−0.17
Δr = −0.01 y Δs = −0.06. Por lo tanto,
l
c Va
D.R. en
r
=
−0.900
s
=
−1.100
37
zu ela,
2007
Implementación de Lin-Bairstow
Function LinBairstow(a)
1
2
3
4
5
6
7
8
9
10
11
if n = 2 then
pk,k+1 =
− a2 ±
13
else
pk ← −a2 /a1 ;
14
return p
12
l
c Va
D.R. en
r ← 0; s ← 0; k ← 1; n ← length(a) − 1;
while n > 2 do
b ← divSintetica(a, r, s) ;
c ← divSintetica(b(1 : n), r, s) ;
−1 Δr
−bn
cn−1 cn−2
;
=
cn
cn−1
−bn+1
Δs
r ← r + Δr ; s ← s + Δs ;
if |Δr| + |Δs| < ε then
r ± r 2 + 4s
pk,k+1 ←
;k ←k+2;
2
a ← b(1 : n − 1); n ← n − 2 ;
a22 − 4a1 a3
2a1
;
38
zu ela,
2007
Descargar