Post on 24-Jan-2016
description
Curso de M etodos Num ericos.Raıces de Polinomios
Curso : Metodos Numericos en Ingenierıa
Profesor : Dr. Jose A. Otero Hernandez
Universidad : ITESM CEM
Fecha : Lunes, 29 de septiembre de 2014
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
TOPICOS
1 INTRODUCCIONRaıces de polinomios
2 METODO DE BAIRSTOWPresentacion del metodoFactorizacion de un polinomioMetodo de BairstowEjemplo
3 Metodo de Bairstow con MATLABPrograma MATLAB
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Topicos
1 INTRODUCCIONRaıces de polinomios
2 METODO DE BAIRSTOWPresentacion del metodoFactorizacion de un polinomioMetodo de BairstowEjemplo
3 Metodo de Bairstow con MATLABPrograma MATLAB
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Raıces de polinomios
Polinomio
fn (x) = anxn + an−1xn−1 + · · ·+ a2x
2 + a1x1 + a0
donde
n es el grado del polinomio,
ai (i = 0, 1, · · · , n) son coeficientes constantes y puedenser reales o complejos,
Las raıces pueden ser reales o complejas,
Reglas de las raıces de polinomios
En una ecuacion de grado n, hay n raıces reales ocomplejas,
Si n es impar, hay al menos una raız real,
Si existen raıces complejas, estas se encuentran por paresconjugados (λ + iµ y λ− iµ, donde i =
√−1
)
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Raıces de polinomios
Polinomio
fn (x) = anxn + an−1xn−1 + · · ·+ a2x
2 + a1x1 + a0
donde
n es el grado del polinomio,
ai (i = 0, 1, · · · , n) son coeficientes constantes y puedenser reales o complejos,
Las raıces pueden ser reales o complejas,
Reglas de las raıces de polinomios
En una ecuacion de grado n, hay n raıces reales ocomplejas,
Si n es impar, hay al menos una raız real,
Si existen raıces complejas, estas se encuentran por paresconjugados (λ + iµ y λ− iµ, donde i =
√−1
)
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Raıces de polinomios
Ejemplo de Polinomio
f(x) = x3 − 19.12x2 + 101.5325x− 110.07095
Raıces del Polinomiox1 = 1.45x2 = 7.37x3 = 10.3
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Raıces de polinomios
Ejemplo de Polinomio
f(x) = x3 − 19.12x2 + 101.5325x− 110.07095
Raıces del Polinomiox1 = 1.45x2 = 7.37x3 = 10.3
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Topicos
1 INTRODUCCIONRaıces de polinomios
2 METODO DE BAIRSTOWPresentacion del metodoFactorizacion de un polinomioMetodo de BairstowEjemplo
3 Metodo de Bairstow con MATLABPrograma MATLAB
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Presentaci on del m etodo
Metodos de BairstowEl metodo de Bairstow es un metodo iterativo para calcularaproximadamente las raıces de polinomios
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Factorizaci on de un polinomio
Factorizaci on de un polinomio
Dado el polinomio:
fn (x) = anxn + an−1xn−1 + · · ·+ a2x
2 + a1x1 + a0
Si dividimos el polinomio por el factor x− xr, entonces
fn (x)x− xr
= fn−1 (x) + R
donde
fn−1 (x) = bnxn−1 + bn−1xn−2 + · · ·+ b3x
2 + b2x1 + b1
Aquı, R = b0 es el Residuo, R = 0 si xr es una raız. Ademas,
bn = an
bi = ai + bi+1xr, para i = n− 1, · · · , 0
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Metodo de Bairstow
Metodo de BairstowDado el polinomio:
fn (x) = anxn + an−1xn−1 + · · ·+ a2x
2 + a1x1 + a0
Se divide el polinomio por un factor cuadratico: x2 − rx− s
fn (x)x2 − rx− s
= fn−2 (x) + R
donde
fn−2 (x) = bn xn−2 + bn−1 xn−3 + · · ·+ b3x + b2
R = b1 (x− r) + b0
bn = an
bn−1 = an−1 + r bn
bi = ai + r bi+1 + s bi+2, para i = n− 2, · · · , 0
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Metodo de Bairstow
Metodo de BairstowEl factor cuadratico se introduce para permitir ladeterminacion de las raıces complejas,
Si x2 − rx− s es un divisor exacto del polinomio, las raıcescomplejas pueden determinarse con la formula cuadratica,
El metodo se reduce a determinar los valores de r y s quehacen que el residuo sea igual o aproximadamente igual acero.
Para que el residuo (R = b1 (x− r) + b0) sea igual a cero,b0 y b1 deben ser igual a cero.
Como es improbable que los valores iniciales para evaluarr y s conduzcan a b0 = 0 y b1 = 0, se necesita una formasistematica para modificar los valores iniciales.
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Metodo de Bairstow
Metodo de BairstowPara buscar una forma sistematica el metodo de Bairstow, usauna estrategia similar a la del metodo de Newton-Raphson.b0 y b1 son funciones de r y s:
b1 = a1 + rb2 + sb3 = b1 (r, s)b0 = a0 + rb1 + sb2 = b0 (r, s)
Desarrollo en serie de Taylor de b0 y b1 despreciando losterminos de segundo orden y superiores:
b1 (r + ∆r, s + ∆s) = b1 + ∂b1∂r ∆r + ∂b1
∂s ∆s
b0 (r + ∆r, s + ∆s) = b0 + ∂b0∂r ∆r + ∂b0
∂s ∆s
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Metodo de Bairstow
Metodo de BairstowLos incrementos ∆r y ∆s necesarios para mejorar nuestrosvalores iniciales se estiman, haciendo:
b1 (r + ∆r, s + ∆s) ≈ 0b0 (r + ∆r, s + ∆s) ≈ 0
Por tanto, {∂b1∂r ∆r + ∂b1
∂s ∆s = −b1∂b0∂r ∆r + ∂b0
∂s ∆s = −b0
Si las derivadas parciales de las b pueden determinarse,entonces hay un sistema de dos ecuaciones para ∆r y ∆s.
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Metodo de Bairstow
Metodo de BairstowBairstow demostro que las derivadas se pueden obtener demanera similar a la obtencion de las b:
cn = bn
cn−1 = bn−1 + r cn
ci = bi + r ci+1 + s ci+2, para i = n− 2, · · · , 1
donde∂b0∂r = c1,∂b0∂s = ∂b1
∂r = c2,∂b1∂s = c3
Finalmente se llega a:{c2∆r + c3∆s = −b1
c1∆r + c2∆s = −b0
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Metodo de Bairstow
Metodo de BairstowResolviendo ∆r y ∆s, se obtiene una mejora de los r y s,puesto que:
ri+1 = ri + ∆rsi+1 = si + ∆s
En cada paso se estima un error aproximado para r y s, esdecir:
|εa,r| =∣∣∆r
r
∣∣× 100%|εa,s| =
∣∣∆ss
∣∣× 100%
Cuando dichos errores caen por debajo de un error estimado“εs”, los valores de las raıces se determinan mediante:
x =r ±
√r2 + 4s
2
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Metodo de Bairstow
Metodo de BairstowExisten tres posibilidades:
1 El cociente es un polinomio de tercer grado o mayor. En talcaso, el metodo de Bairstow se aplica al cociente paraevaluar un nuevo valor de r y s. Los valores anteriores de ry s pueden servir como valores iniciales en esta aplicacion,
2 El cociente es cuadratico. En este caso es posible evaluardirectamente las dos raıces restantes con: x = r±
√r2+4s2 ,
3 El cociente es un polinomio de primer grado. En este caso,la raız restante se evalua simplemente como: x = − r
s
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Ejemplo
Ejemplo
Emplee el metodo de Bairstow para determinar las raıces delpolinomio:
f5 (x) = x5 − 3.5x4 + 2.75x3 + 2.125x2 − 3.875x1 + 1.25
Utilice como valores iniciales r = s = −1 e itera hasta un errorestimado εs = 1%
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Ejemplo
Soluci on
bn = an
bn−1 = an−1 + r bn
bi = ai + r bi+1 + s bi+2, para i = n− 2, · · · , 0cn = bn
cn−1 = bn−1 + r cn
ci = bi + r ci+1 + s ci+2, para i = n− 2, · · · , 1
Soluci on
b5 = 1, b4 = −4.5, b3 = 6.25, b2 = 0.375, b1 = −10.5,
b0 = 11.375,
c5 = 1, c4 = −5.5, c3 = 10.75, c2 = −4.875, c1 = −16.375,
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Ejemplo
Soluci on {c2∆r + c3∆s = −b1
c1∆r + c2∆s = −b0{−4.875∆r + 10.75∆s = 10.5
−16.375∆r − 4.875∆s = −11.375
Soluci on
∆r = 0.3558,
∆s = 1.1381,
r = −1 + 0.3558 = −0.6442,
s = −1 + 1.1381 = 0.1381,
εa,r =∣∣∣∣∆r
r
∣∣∣∣ 100% = 55.23%, εa,s =∣∣∣∣∆s
s
∣∣∣∣ 100% = 824.1%
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Ejemplo
Soluci on
b5 = 1, b4 = −4.1442, b3 = 5.5578, b2 = −2.0276,
b1 = −1.8013, b0 = 2.1304, c5 = 1, c4 = −4.7884,
c3 = 8.7806, c2 = −8.3454, c1 = 4.7874,{−8.3454∆r + 8.7806∆s = 1.80134.7874∆r − 8.3454∆s = −2.1304
Soluci on
∆r = 0.1331, ∆s = 0.3316,
r = −0.6442 + 0.1331 = −0.5111,
s = 0.1381 + 0.3316 = 0.4697,
εa,r = 26.0%, εa,s = 70.6%
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Ejemplo
Soluci onDespues de cuatro iteraciones:
r = −0.5, εa,r = 0.063%s = 0.5, εa,s = 0.040%
x =r ±
√r2 + 4s
2=−0.5±
√(−0.5)2 + 4(0.5)
2= 0.5,−1.0
Se queda el cociente:
f3 (x) = −2.5 + 5.25x− 4x2 + x3
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Ejemplo
Soluci onTomando r = −0.5 y s = 0.5 y despues de cinco iteraciones:
r = 2,
s = −1.249,
x =2±
√(2)2 + 4(−1.249)
2= 1± 0.499i.
Finalmente, el cociente es un polinomio de primer grado y laraız es:
x = −r
s= 2
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Topicos
1 INTRODUCCIONRaıces de polinomios
2 METODO DE BAIRSTOWPresentacion del metodoFactorizacion de un polinomioMetodo de BairstowEjemplo
3 Metodo de Bairstow con MATLABPrograma MATLAB
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Programa MATLAB
funct ion bai rs towv1 ( a , r0 , s0 ,EE)% fn ( x ) = a {n}∗x ˆ{n}+a {n−1}∗x ˆ{n−1}+.. .+ a {2}∗xˆ{2}+a {1}∗xˆ{1}+a {0}% a = [ a {n} a {n−1} . . . a {2} a {1} a {0}]% r0−−−Valor i n i c i a l de r% s0−−−Valor i n i c i a l de s% EE−−−Er ro r estimadon= length ( a ) ; % Grado de l po l inomio ( n−1)a=a ( n:−1:1) ;i f ( mod( n−1,2) ˜=0) % mod : Modulo despues de l a d i v i s i o n : mod(X,Y) =X−Y∗ f l o o r (X /Y)
m=(n−2) / 2 ; % Grado de l po l inomio ( n−1) es imparelse
m=(n−3) / 2 ; % Grado de l po l inomio ( n−1) es parendfor j j =1:m
r = r0 ; s = s0 ;Ear = 1 0 0 0 ; Eas = 1000 ;while Ear>EE && Eas>EE
b ( n ) = a ( n ) ; % Calculo de los bb ( n−1) = a ( n−1)+ r∗b ( n ) ;fo r j = n−2:−1:1
b ( j ) = a ( j ) + r∗b ( j +1)+s∗b ( j +2) ;endc ( n ) = b ( n ) ; % Calculo de los cc ( n−1) = b ( n−1)+ r∗c ( n ) ;fo r j = n−2:−1:2
c ( j ) = b ( j ) + r∗c ( j +1)+s ( 1 )∗c ( j +2) ;enddr = −(−c ( 3 )∗b ( 2 ) +b ( 1 )∗c ( 4 ) ) / ( c ( 2 )∗c ( 4 )−c ( 3 ) ˆ 2 ) ; % Solucion de l sistemads = (−c ( 2 )∗b ( 2 ) +c ( 3 )∗b ( 1 ) ) / ( c ( 2 )∗c ( 4 )−c ( 3 ) ˆ 2 ) ;
r = r +dr ; s = s+ds ;Ear = abs ( dr / r ) ∗100; Eas = abs ( ds / s ) ∗100;
end
x(2∗ j j −1) = ( r +sqrt ( r ˆ2+4∗s ) ) / 2 ;x (2∗ j j ) = ( r−sqrt ( r ˆ2+4∗s ) ) / 2 ;a = b ( 3 : n ) ;n = length ( a ) ;r0 = r ;s0 = s ;
endr = − a ( 2 ) ;s = −a ( 1 ) ;i f n==2
x(2∗ j j +1) = −s / r ;e l s e i f n==3
x(2∗ j j +1) = ( r +sqrt ( r ˆ2+4∗s ) ) / 2 ;x (2∗ j j +2) = ( r−sqrt ( r ˆ2+4∗s ) ) / 2 ;
elsedisp ( ’ e r r o r ’ )
ends a l i d a =[ x ’ ] ;disp ( s a l i d a )
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Programa MATLAB
x(2∗ j j −1) = ( r +sqrt ( r ˆ2+4∗s ) ) / 2 ;x (2∗ j j ) = ( r−sqrt ( r ˆ2+4∗s ) ) / 2 ;a = b ( 3 : n ) ;n = length ( a ) ;r0 = r ; s0 = s ;
endr = − a ( 2 ) ; s = −a ( 1 ) ;i f n==2
x(2∗ j j +1) = −s / r ;e l s e i f n==3
x(2∗ j j +1) = ( r +sqrt ( r ˆ2+4∗s ) ) / 2 ;x (2∗ j j +2) = ( r−sqrt ( r ˆ2+4∗s ) ) / 2 ;
elsedisp ( ’ e r r o r ’ )
ends a l i d a =[ x ’ ] ;disp ( s a l i d a )
INTRODUCCION METODO DE BAIRSTOW Metodo de Bairstow con MATLAB
Programa MATLAB
>> a=[1 −3.5 2.75 2.125 −3.875 1.25]a =
1.0000 −3.5000 2.7500 2.1250 −3.8750 1.2500
>> bai rs towv1 ( a,−1,−1,1)0.5000−1.0000
1.0000 − 0.4993 i1.0000 + 0.4993 i2.0071
>> bai rs towv1 ( a,−1 ,−1 ,0.1)0.5000−1.0000
1.0000 − 0.4994 i1.0000 + 0.4994 i1.9996
>> bai rs towv1 ( a,−1,−1,0.01)0.5000−1.0000
1.0000 − 0.5000 i1.0000 + 0.5000 i2.0000