mn clase 13 raices polinomio

27
Curso de M ´ etodos Num ´ ericos. Ra´ ıces de Polinomios Curso: M´ etodos Num ´ ericos en Ingenier´ ıa Profesor: Dr. Jos´ e A. Otero Hern ´ andez Universidad: ITESM CEM Fecha: Lunes, 29 de septiembre de 2014

Upload: jesus-alberto-zuniga-yustres

Post on 24-Jan-2016

233 views

Category:

Documents


0 download

DESCRIPTION

matlab

TRANSCRIPT

Page 1: Mn Clase 13 Raices Polinomio

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

Page 2: Mn Clase 13 Raices Polinomio

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

Page 3: Mn Clase 13 Raices Polinomio

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

Page 4: Mn Clase 13 Raices Polinomio

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

)

Page 5: Mn Clase 13 Raices Polinomio

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

)

Page 6: Mn Clase 13 Raices Polinomio

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

Page 7: Mn Clase 13 Raices Polinomio

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

Page 8: Mn Clase 13 Raices Polinomio

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

Page 9: Mn Clase 13 Raices Polinomio

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

Page 10: Mn Clase 13 Raices Polinomio

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

Page 11: Mn Clase 13 Raices Polinomio

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

Page 12: Mn Clase 13 Raices Polinomio

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.

Page 13: Mn Clase 13 Raices Polinomio

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

Page 14: Mn Clase 13 Raices Polinomio

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.

Page 15: Mn Clase 13 Raices Polinomio

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

Page 16: Mn Clase 13 Raices Polinomio

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

Page 17: Mn Clase 13 Raices Polinomio

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

Page 18: Mn Clase 13 Raices Polinomio

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%

Page 19: Mn Clase 13 Raices Polinomio

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,

Page 20: Mn Clase 13 Raices Polinomio

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%

Page 21: Mn Clase 13 Raices Polinomio

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%

Page 22: Mn Clase 13 Raices Polinomio

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

Page 23: Mn Clase 13 Raices Polinomio

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

Page 24: Mn Clase 13 Raices Polinomio

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

Page 25: Mn Clase 13 Raices Polinomio

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 )

Page 26: Mn Clase 13 Raices Polinomio

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 )

Page 27: Mn Clase 13 Raices Polinomio

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