Está en la página 1de 23

2015

MÉTODO DE BAIRSTOW

Raíces de Ecuaciones

Yamil Armando Cerquera Rojas


Universidad Surcolombiana
04/07/2015
Ing Yamil Armando Cerquera Rojas yacerque@gmail.com

RAÌCES DE POLINOMIOS
Método de BAIRSTOW
Ing Yamil Armando Cerquera Rojas – yacerque@gmail.com
Especialista en Sistemas Universidad Nacional
Neiva – Huila

Contenido

Preámbulo ...................................................................................................................................... 3
Leonard Bairstow .......................................................................................................................... 3
Método de Bairstow...................................................................................................................... 4
Definición.................................................................................................................................... 4
Tomando el polinomio en orden descendente y los coeficientes del mismo en con
subíndice ascendente:.............................................................................................................. 4
Resumiendo ................................................................................................................................ 5
Tomando el polinomio y coeficientes en Orden Ascendente:........................................... 7
Ejemplo expresando el polinomio en orden descendente: ............................................. 10
Código para MatLab. ............................................................................................................... 13
Ejemplo tomando el polinomio en el mismo orden los dos términos: .......................... 14
Código en lenguaje C .............................................................................................................. 18
Código en MatLAb .................................................................................................................... 19
Recursos Bibliográficos .............................................................................................................. 22
Bibliografia OnLine: ................................................................................................................... 22

Universidad Surcolombiana Pag 2 de 23


Ing Yamil Armando Cerquera Rojas yacerque@gmail.com

Preámbulo
En análisis numérico, el método de Bairstow es un algoritmo eficiente de búsqueda de
las raíces de un polinomio real de grado arbitrario. El algoritmo apareció por primera
vez en el apéndice del libro "Aerodinámica Aplicada", escrito por Leonard Bairstow y
publicado en 1920. El algoritmo se diferencia de otros métodos en que encuentra
tanto las raíces reales como las imaginarias (en parejas complejas conjugadas),
utilizando únicamente aritmética real.

Leonard Bairstow
Sir Leonard Bairstow (1880-1963), fue miembro de la Orden del Imperio
Británico y nació en 1880 en Halifax, West Yorkshire. Es recordado
principalmente por sus trabajos en aviación y por el Método de
Bairstow, mediante el cual se pueden encontrar las raíces enteras e
imaginarias de un polinomio de grado arbitrario.

Sir Leonard Bairstow fue hijo de Uriah Bairstow, hombre acaudalado de Halifax, West
Yorkshire y matemático entusiasta. De niño, Leonard asistió a la escuela Queens Road
y Moorside Council Schools, antes de ser inscrito en Heath Grammar School, en el cual
permaneció de manera breve para ser luego transferido a Council Secondary School -
conocida luego como Higher Grade School. Obtuvo una beca en el Royal College de
ciencias en donde obtuvo el patrocinio Whitworth Scholarship que le permitió realizar
investigaciones en explosión de gases.

Asistió luego al National Physical Laboratory (Reino Unido), en Bushy Park, en donde
fue puesto a cargo del área de investigación en aeronáutica. Mantuvo la Dirección de
la Oficina Zaharoff de Aviación en el Imperial College durante el período de 1920-1949
para ser nombrado luego por la monarquía como Sir Leonard Bairstow.

Fue también miembro de la Royal Society of London y de la Royal Aeronautical


Society.

Universidad Surcolombiana Pag 3 de 23


Ing Yamil Armando Cerquera Rojas yacerque@gmail.com

Método de Bairstow
Definición

El método de BAIRSTOW, Es un método iterativo relacionado con los métodos de


Muller y Newton Raphson.

El método consiste en el cálculo de las raíces de un polinomio buscando factores


cuadráticos x 2  rx  s del mismo, es decir, tales que:

p( x)  ( x 2  rx  s) p1 ( x)
Donde 𝑝(𝑥) es el polinomio al cual se le pretende encontrar sdus raíces, 𝑝1 (𝑥), es un
polinomio restante de dividir 𝑝(𝑥) entre el factor 𝑥 2 − 𝑟𝑥 − 𝑠

Evidentemente, si 𝑥 2 − 𝑟𝑥 − 𝑠 no es un factor cuadrático de 𝑝(𝑥), es decir 𝑥 2 − 𝑟𝑥 − 𝑠


no divide exactamente a 𝑝 𝑥 se tendrá entonces un residuo y se representará así:

p( x)  ( x 2  rx  s) p1 ( x)  Ax  B
Donde 𝐴𝑥 + 𝐵 es el residuo.

Tomando el polinomio en orden descendente y los coeficientes


del mismo en con subíndice ascendente:
Si en términos generales se tiene un polinomio descrito de la forma
p( x)  a0 x n  a1 x n1  ...  an1 x  an y para efectos del ejemplo se tiene
p( x)  x 5  2 x 3  x 2  x  5 , si se asume como valor inicial para 𝑟 = 1 y 𝑠 = 1, se tiene
que el polinomio factor cuadrático será: pc  x 2  x  1 . Si se divide p(x) entre el
polinomio factor pc dará como resultado p1 ( x) y como residuo resultará 𝐴𝑥 + 𝐵, tal
como se muestra en la Ilustración 1.
p ( x) pc
Ax  B p1 ( x)
Ilustración 1

Donde Ax  B es el residuo de la división. Siendo A y B funciones de r y de s, de forma


que el método consiste en encontrar los valores de r y s que hacen

Ecuación 1
A  A(r , s)  0
B  B(r , s )  0

Universidad Surcolombiana Pag 4 de 23


Ing Yamil Armando Cerquera Rojas yacerque@gmail.com

Para ello se aplica el método de Newton Raphson en la forma conocida, lo que


conlleva la evaluación de la matriz jacobiana 1 del sistema mostrado en la Ecuación 1,
así como de las funciones 𝐴 y 𝐵 , en cada iteración. Un modo de realizar estas
evaluaciones, ya que la forma explícita de las funciones A(r , s) y B(r , s) no es
conocida explícitamente, es construir el siguiente algoritmo:

Ecuación 2
As  A1 , Bs  B1
Ar  rA1  B1 , Br  sA1

Y encontrar los valores de 𝐴, 𝐵, A1 y B1 mediante el proceso similar al de Hörner2


siguiente que se obtiene al desarrollar los productos e identificar los coeficientes:

Sean
p( x)  a0 x n  a1 x n1  ...  an1 x  an  ( x 2  rx  s) p1 ( x)  Ax  B
p1 ( x)  b0 x n2  b1 x n3  ...  bn3 x  bn2  ( x 2  rx  s) p2 ( x)  A1 x  B1
p2 ( x)  c0 x n4  c1 x n5  ...  cn5 x  cn4 , donde
b0  a0
b1  a1  rb0
b2  a2  rb1  sb0
bk  ak  rbk 1  sbk 2 , k  2,3,..., n  2
A  an1  rbn2  sbn3
B  an   sbn2
c0  b0
c1  b1  rc0
c2  b2  rc1  sc0
ck  bk  rck 1  sck 2 , k  2,3,..., n  4
A1  bn3  rcn4  scn5
B1  bn2   scn4

Resumiendo

Dado un polinomio f n (x) se encuentran dos factores, un polinomio cuadrático


f 2 ( x)  x 2  rx  s y f n2 ( x) .

El procedimiento general para el método de Bairstow es:


1
La matriz Jacobiana es una matriz formada por las derivadas parciales de primer orden de una
función
2
El Algoritmo de Horner, llamado así por William George Horner, es un algoritmo para evaluar de
forma eficiente funciones polinómicas de una forma monomial.

Universidad Surcolombiana Pag 5 de 23


Ing Yamil Armando Cerquera Rojas yacerque@gmail.com

1. Dado f n (x) y r0 y s 0
2. Utilizando el método de Newton Raphson se calcula f 2 ( x)  x 2  r0 x  s0 y
f n2 ( x) , tal que, el residuo de f n ( x) / f 2 ( x) sea igual a cero.
3. Se determinan la raíces f 2 ( x) , utilizando la formula de la ecuación cuadrática
−𝑏± 𝑏 2 −4𝑎𝑐
general 𝑥 = .
2𝑎
4. Se calcula f n2 ( x)  f n ( x) / f 2 ( x)
5. Se hace f n ( x)  f n2 ( x)
6. Si el grado del polinomio es mayor que tres (3) se regresa al paso 2
7. Si no se termina

La principal diferencia de este método, respecto a otros, es que permite calcular


todas las raíces de un polinomio (reales e imaginarias).

Recuerde la forma factorizada de un polinomio por ejemplo:

f 5 ( x)  ( x  1)( x  4)( x  5)( x  3)( x  2)

Si se divide entre un factor que no es una raíz (por ejemplo, x  6 ), el cociente podría
ser un polinomio de cuarto orden. Sin embargo, en este caso, podría haber residuo.

Con estas bases se puede elaborar un algoritmo para determinar la raíz de un


polinomio:

1. Suponiendo que el valor inicial de la raíz es 𝑥 = 𝑡;


2. Al dividir el polinomio entre el factor 𝑥– 𝑡, y
3. Determinando si existe un residuo. Si no, el valor es perfecto y la raíz es igual
a 𝑡.

Si hay un residuo, el valor puede ser ajustado sistemáticamente y el procedimiento


repetirse hasta que el residuo desaparezca y la raíz sea localizada.

El método de Bairstow se basa por lo general en esta aproximación. El proceso


matemático depende de dividir el polinomio entre un factor.

Por ejemplo, Tomando el polinomio general con coeficientes iguales o sea


a0 x 0 , a1 x1 , a2 x 2 ,..., an x n se tiene el polinomio general así:

f n ( x)  a0  a1 x  a2 x 2  ...  an x n

Universidad Surcolombiana Pag 6 de 23


Ing Yamil Armando Cerquera Rojas yacerque@gmail.com

Consecuentemente el proceso matemático depende de dividir el polinomio f n (x)


entre un factor, tomando en cuenta la discusión del polinomio de deflación como
sigue a continuación:

Supóngase que se tiene la raíz de orden n-esimo, y teniendo un adecuado


procedimiento para eliminar la raíz encontrada, a este procedimiento de eliminar la
raíz se le llama deflación polinomial.

Tomando el polinomio y coeficientes en Orden Ascendente:


De la forma general de un polinomio de orden n:
Ecuación 3
f n ( x)  a0  a1 x  a2 x  ...  an x n
2

Se tiene un polinomio definido: f 5 ( x)  120  46 x  79 x 2  3x 3  7 x 4  x 5 factorizando


este polinomio resulta f 5 ( x)  ( x  1)( x  4)( x  5)( x  3)( x  2) .

Y es claro que x  1, 4, 5, 3, 2 son todas las raíces que representan a cada paréntesis
individual, ahora suponga que se divide la función polinomial de quinto orden por un
factor de manera que se elimine una de sus raíces por ejemplo el factor x  3 y se
tiene una función de cuarto orden:

f 4 ( x)  ( x  1)( x  4)( x  5)( x  2)  40  2 x  27 x 2  10 x 3  x 4 Con residuo cero para este


caso.

Así se tiene que la forma general f n ( x)  a0  a1x  a2 x  ...  an x


2 n
entre un
factor x  t dará un segundo polinomio de un orden más bajo:
Ecuación 4
f n1 ( x)  b1  b2 x  b3 x  ...  bn x n1
2

Con residuo R  b0 en donde los coeficientes son obtenidos por la relación de


recurrencia:

bn  an
bn1  an1  rbn
bi  ai  rbi1  sbi2 , para 𝑖 = 𝑛 − 2 hasta 0.

Para permitir la evaluación de raíces complejas este método divide la función entre el
factor cuadrático:

x 2  rx  s
Aplicándolo en la ecuación f n ( x)  a0  a1x  a2 x  ...  an x
2 n

Universidad Surcolombiana Pag 7 de 23


Ing Yamil Armando Cerquera Rojas yacerque@gmail.com

Resultando: f n2 ( x)  b2  b3 x  b4 x 2  ...  bn1 x n3  bn x n2

Con residuo:
Ecuación 5
R  b1 ( x  r )  b0

Y aplicando la relación de recurrencia se obtiene los siguientes coeficientes para la


ecuación anterior:
Ecuación 6
bn  an Ec. 4a
Ecuación 7
bn1  an1  rbn Ec.4b

Ecuación 8
bi  ai  rbi1  sbi2 , para i  n  2 hasta 0

Se introduce el factor cuadrático para la determinación de las raíces complejas,


porque si los coeficientes del polinomio original son reales, las raíces complejas se
presentan en pares conjugados.

Si x 2  rx  s es un divisor exacto del polinomio, las raíces complejas pueden ser


 b  b 2  4ac
determinadas con la fórmula cuadrática x  , por lo que el método se
2a
reduce solo a determinar r y s que provocan que el factor cuadrático sea un divisor
exacto y por consiguiente se obtiene un residuo igual a cero.

Entonces sí: R  b1 ( x  r )  b0  0 , b1 y b0 deben ser iguales a cero.

Esto para que los valores de inicio al evaluar r y s conduzcan a este resultado, se debe
de aplicar un camino para los valores iniciales o de inicio de manera que b1 y b0
tiendan a cero para ello se utiliza una técnica similar a la de Newton Raphson.

Pues b0 como b1 son funciones de 𝑟 y 𝑠 y se expanden utilizando la serie de Taylor:

b1 b
b1 (r  dr, s  ds)  b1  dr  1 ds
r s
Ecuación 9
b0 b
b0 (r  dr , s  ds)  b0 
dr  0 ds
r s
Los valores de la parte izquierda de la igualdad son evaluados en r y s. Obsérvese que
el segundo término y el término de orden superior se han despreciado. Ya que en
forma implícita – r y – s son muy pequeños y los términos de orden superior pueden

Universidad Surcolombiana Pag 8 de 23


Ing Yamil Armando Cerquera Rojas yacerque@gmail.com

ser despreciados, pero otra consideración es que los valores de inicio de son tan
cercanos a los valores de r y s de las raíces.

Para dar un valor inicial que se acerque a las raíces es el colocar la Ecuación 9 igual a
cero y que resulte:
Ecuación 10
b1 b
r  1 s  b1
r s
b0 b
r  0 s  b0
r s
Si las variables r y s forman un sistema de ecuaciones de dos incógnitas y el
método de Bairstow muestra que las derivadas parciales pueden resolverse por
división sintética de las b en forma similar al camino en que las b en sí mismas fueron
derivadas:

c n  bn
c n1  bn1  rc n Para i  n  2 a 0
ci  bi  rci 1  sci  2

Entonces las derivadas parciales se obtienen por división sintética de las 𝑏, y las 𝑏 con
las derivadas parciales son sustituidas en las fórmulas de la Ecuación 10 y se obtiene:
c 2 r  c3 s  b1
c1r  c 2 s  b0
Estas ecuaciones pueden ser resueltas para mejorar los valores de r y s, se podría
utilizar el error aproximado para cada paso pero no es para nuestro caso realmente
utilizado pero quedaría de la siguiente forma:
r
 a ,r  100 %
r
y

s
 a ,s  100 %
s
Cuando los dos valores fallan bajo un criterio especificado las raíces pueden
determinarse con la siguiente ecuación:

r  r 2  4s
x
2
Aquí pueden caber tres posibilidades:

Universidad Surcolombiana Pag 9 de 23


Ing Yamil Armando Cerquera Rojas yacerque@gmail.com

– El cociente es un polinomio de tercer orden o mayor. Para este caso, el método


de Bairstow podría aplicarse al cociente para evaluar un nuevo valor de r y s.
Los valores anteriores de r y s pueden servir como valores iniciales de para esta
aplicación.
– El cociente es cuadrático. Para este caso, el residuo de las raíces puede
evaluarse con la ecuación 11)
– El cociente es un polinomio de primer orden. Para este caso, el residuo es una
sola raíz que puede evaluarse simplemente como: X = - s/r

Ejemplo expresando el polinomio en orden


descendente:
Dado el polinomio f(x)  x  3.5x  2.75x  2.125x  3.875x  1.25, determinar los valores
5 4 3 2

de r y s que hacen el residuo igual a cero. Considere valores iniciales para r0  1 y s0  2. El


factor cuadrático fc  x  rx  s por ende será:
2

fc  x 2  (1) x  2  x 2  x  2

f ( x) fc
Solución. Teniendo que realizar
Ax  B f 1 ( x)

x5  3.5 x 4  2.75 x3  2.125 x 2  3.875 x  1.25 x2  x  2


30.750 61.75
 x5  x 4  2.00 x3 x3  4.5 x 2  9.25 x  16.125  
x x2
0 4.5 x 4  4.75 x3  2.125 x 2  3.875 x  1.25
4.5 x 4  4.5 x3  9.000 x 2
0 0 9.25 x3  6.875 x 2  3.875 x  1.25
9.25 x3 9.25 x 2 18.50 x
0 0 0  16.125 x 2  14.625 x  1.25
16.125 x 2  16.125 x  32.25
0 0 0 0 30.750 x  31 .00
30.750 x  30.75
0 0 0 0 0 61.75
61.75
0 0 0 0 0 0

Iteración 1 con:

f(x)  x 5  3.5x 4  2.75x 3  2.125x 2  3.875x  1.25,


fc  x 2  x  2
f1(x)  1x 3  4.5x 2  9.25x  16.125
Ax  B  30.75x  31

La división sintética con el polinomio fc  x 2  x  2 da como resultado

Universidad Surcolombiana Pag 10 de 23


Ing Yamil Armando Cerquera Rojas yacerque@gmail.com

f1(x)  x 3  4.5x 2  9.25x  16.125 y residuo Ax  B  30.75x  31 .

El vector b tendría los siguientes datos: b5  1 , b4  4.5 , b3  9.25 , b2  16.125 , y con un


residuo de Ax  B  30.75x  31 . Si se trata de eliminar dicho residuo se pueden conseguir los
valores para b1 , b0 . Se elimina Ax con el monomio 30.75 y una vez eliminado se elimina el ultimo
x
termino B’ con el monomio  61.75 2 , encontrando con esto los valores para
x
b1  30.75, y b0  61.75 .

Ahora realizando la división del polinomio resultado entre el polinomio factor fc  x 2  x  2 se tiene:

x 3  4.5 x 2  9.25 x  16.125  30.75 / x  61.75 / x 2 x2  x  2


16.75 43.875 108.125
 x3  x2  2 x x  5.5   
x x2 x3
0 5.5 x 2  11.25 x  16.125
 5.5 x 2  5.5 x 11 .000
0 0 16.75 x  27.125
 16.75 x 16.750  33.5
x
0  43.875  64.25
x
43.875  43.875  87.75 / x 2
x
0  108.125  149.50 / x 2
x
 108.125  108.125 / x 2
x
0  257.625 / x 2
El vector c tendría los siguientes datos: c5  1 , c4  5.5 , y con un residuo de
A' x  B'  16.75x  27.125 , ahora eliminando este residuo para calcular los restantes valores de ci
asi: c3  16.75 , c2  43.875 , c1  108.125 .
f1(x)  1x 3  4.5x 2  9.25x  16.125
fc  x 2  x  2
f 2 ( x)  x  5.5
A' x  B'  16.75x  27.125
Aplicando el método de Newton se tiene:

c2 r  c3 s  b1   43.875r  16.750s  30.75


c r  c s  b    108.125r  43.875s  61.75 
 1 2 0  

Universidad Surcolombiana Pag 11 de 23


Ing Yamil Armando Cerquera Rojas yacerque@gmail.com

Resolviendo el sistema se tiene que


r  2.7636812508572213
,
s  5.403374022767796
Como estos valores son diferentes de cero, se procede a calcular un nuevo valor para r y para s asi:

rn  r  r  1.0  2.7636812508572213  1.7636812508572213


sn  s  s  2.0  5.403374022767796  7.403374022767796
Con estos nuevos valores se realiza una segunda iteración.
Iteración 2.

La división sintética con el polinomio


f c(x)  x 2  1.7636812508572213x  7.403374022767796 , Da como resultado
f1(x)  x 3  1.7363187491427787 x 2  7.091061199392814 x  1.776754563401905

Residuo = {51.75640698828836, 105.68578319650365}

Aplicando el método de Newton se tiene

27.628006 14.542693 dr -51.75640


208.148405 27.62800 ds -105.68578

r  0.04728019113442016
s  3.469106187802152
De donde

r2 = 1.7636812508572213 - 0.04728019113442016 = 1.7164010597228012


s2 = 7.403374022767796 - 3.469106187802152 = 3.934267834965644

Iteración 3.

La división sintética con el polinomio:


f 2(x)  x 2 - 1.7164010597228012 x - 3.934267834965644 , da como resultado

f 3(x)  x 3  1.7835989402771988x 2  3.622896723753395x  1.3261878347051992

Residuo = {12.654716254544885, 28.1881465309956}

Aplicando el método de Newton se tiene:

13.83497 7.44182 dr -12.65471


65.679212 13.83497 ds -28.18814

De donde

r3 = 1.7164010597228012 - 0.11666951305731528 = 1.599731546665486


s3 = 3.934267834965644 - 1.4835870659929915 = 2.4506807689726524

Universidad Surcolombiana Pag 12 de 23


Ing Yamil Armando Cerquera Rojas yacerque@gmail.com

Código para MatLab.

clear all;clc;j=1;
%r(1)=input('Digite valor para r');
r(1)=-1;
%s(1)=input ('Digite valor para s');
s(1)=2;
while j<=8
a=[1 -3.5 2.75 2.125 -3.875 1.25];
n=length(a);
b(1)=a(1);
c(1)=b(1);
b(2)=a(2)+r(j)*b(1);
c(2)=b(2)+r(j)*c(1);
i=3;
while (i<=n)
b(i)=a(i)+r(j)*b(i-1)+s(j)*b(i-2);
c(i)=b(i)+r(j)*c(i-1)+s(j)*c(i-2);
i=i+1;
end
m=[c(4) c(3); c(5) c(4)];
B=[-b(5); -b(6)];
v=inv(m)*B;
dr=v(1); ds=v(2);
j=j+1;
r(j)=r(j-1)+dr; s(j)=s(j-1)+ds;
end
disp([r' s'])

En resumen, los datos obtenidos con el código anterior serán

En resumen

k r s Residuo
0 -1.000000 2.000000 30.750000 -61.75000
1 1.763680 7.403374 51.756406 105.68578
2 1.716400 3.934260 12.654710 28.188140
3 1.599731 2.450680 2.8995800 8.154670
4 1.333540 2.186660 0.7601220 2.522228
5 1.118260 2.113020 0.2719400 0.607688
6 1.027050 2.023170 0.0431300 0.111850
7 1.001650 2.001530 0.0027700 0.006340
8 1.000000 2.000000 1.13930E-5 2.67534E-5

La solución es:

f 3(x)  x 3  2.53x 2  2.25x  0.625 y f 2(x)  x 2  x  2

Las raíces de f 2(x)  x 2  x  2 , son

Universidad Surcolombiana Pag 13 de 23


Ing Yamil Armando Cerquera Rojas yacerque@gmail.com

x1 = 2
x2 = -1

Si se repite el ejemplo pero ahora considerando el polinomio:


f 3(x)  x 3  2.53x 2  2.25x  0.625 , se puede calcular el total de las raíces del polinomio
original.

Ejemplo tomando el polinomio en el mismo orden los dos términos:


Emplee el método de Bairstow para determinar las raíces del polinomio
f 5 ( x)  x 5  3.5x 4  2.75x 3  2.125x 2  3.875x  1.25 , Use los valores iniciales de
r  s  1 e iterando a un nivel de  s  1%
Tomando el polinomio en términos de a i se tiene:

f 5 ( x)  a5 x 5  a4 x 4  a3 x 3  a2 x 2  a1 x  a0 , donde

a5  1 , a4  3.5 , a3  2.75 , a2  2.125 , a1  3.875 y a0  1.25 .


Paso 1:
Una forma de encontrar los valores de bi , es procediendo a realizar la división
polinomial de la siguiente manera:
x 5  3.5 x 4  2.75 x 3  2.125 x 2  3.875 x  1.25 x2  x 1
10.5 11.375
 x5  x4  x3 x 3  4.5 x 2  6.25 x  0.375  
x x2
0 4.5 x 4  1.75 x 3  2.125 x 2  3.875 x  1.25 b5 b4 b3 b2 b1 b0
4.5 x  4.5 x  4.5 x
4 3 2

0 0 6.25 x 3  6.625 x 2  3.875 x  1.25


6.25 x 3  6.25 x 2 6.250 x
0 0 0 0.375 x 2  10.125 x  1.25
0.375 x 2  0.375 x  0.375
0 0 0 0 10.5 x  0.875
10.50 x  10.5
0 0 0 0 0 11.375
11.375
0 0 0 0 0 0

O aprovechando las fórmulas apropiadas para el cálculo anterior se puede realizar de


la siguiente manera:

Formulas apropiadas:

Universidad Surcolombiana Pag 14 de 23


Ing Yamil Armando Cerquera Rojas yacerque@gmail.com

bn  an
bn1  an1  rbn
bi  ai  rbi1  sbi2 , para i  n  2 hasta 0
Cálculos:
b5  a5  1
b4  a4  rb5  3.5   11  4.5
b3  a3  rb4  sb5  2.75  (1)(4.5)  (1)(1)  6.25
b2  a2  rb3  sb4  2.125  (1)(6.25)  (1)(4.5)  0.375
b1  a1  rb2  sb3  3.875  (1)(0.375)  (1)(6.25)  10.5
b0  a0  rb1  sb2  1.25  (1)(10.5)  (1)(0.375)  11.375

Luego se realizan los cálculos de c:


c n  bn
c n1  bn1  rc n
ci  bi  rci 1  sci  2

c5  b5  1
c 4  b4  rc5  4.5  (1)1  5.5
c3  b3  rc4  sc5  6.25  (1)(5.5)  (1)(1)  10.75
c 2  b2  rc3  sc4  0.375  (1)(10.75)  (1)(5.5)  4.875
c1  b1  rc2  sc3  10.5  (1)(4.875)  (1)(10.75)  16.375

Así, las ecuaciones simultáneas para resolver r y s son

c 2 r  c3 s  b1  4.875r  10.750s  10.500



c1r  c 2 s  b0  16.375r  4.875s  11.375

Resolviendo con MatLab y el siguiente código,

s=solve('-4.875*dr+10.75*ds=10.5','-16.375*dr-4.875*ds=-11.375')
» s.dr
ans =0.35583013998592320325330413701416
» s.ds
ans =1.1381090169703605224055681551576

Se tiene para r =0.3558 y s =1.1381. Por lo tanto, los valores supuestos


inicialmente para r y s, pueden corregirse así:

Universidad Surcolombiana Pag 15 de 23


Ing Yamil Armando Cerquera Rojas yacerque@gmail.com

r = -1 + 0.3558 = -0.6442
s = -1 + 1.1381 = 0.1381

Y el error aproximado puede ser calculado así:

0.3558
 a ,r  100%  55.23%
 0.6442
y
1.1381
 a,s  100%  824.1%
0.1381

Como el error es demasiado grande entonces se realiza de nuevo el cálculo usando los
nuevos valores encontrados para s y r.

El siguiente cálculo es repetir usando los valores revisados para r y s.

b5  1
b4  4.1442
b3  5.5578
b2  2.0276
b1  1.8013
b0  2.1304

Y luego:

c5  1
c4  4.7884
c3  8.7806
c2  8.3454
c1  4.7874

Por lo tanto se debe resolver

 8.3454r  8.7806s  1.8013


4.7874r  8.3454s  2.1304

Para r  0.1331 y s  0.3316 , los cuales pueden usarse para estimar la raíz correcta
como

r = -0.6442 + 0.1331 = - 0.5111

Universidad Surcolombiana Pag 16 de 23


Ing Yamil Armando Cerquera Rojas yacerque@gmail.com

s = 0.1381 + 0.3316 = - 2.1304

 a ,r  26 .0%
y
 a ,s  70 .6%

El cálculo debe continuar, por los valores tan altos en el error que se calcula. Con los
resultados después de cuatro iteraciones, el método converge a los valores de r = -0.5
(  a ,r  0.063% ) y s = 0.5 (  a , s  0.040% ). La fórmula general puede emplearse para
evaluar las raíces como

 0.5  (0.5) 2  4(0.5)


x  0.5, 1.0
2

En este punto, el cociente es la ecuación cúbica

f ( x)  x 3  4 x 2  5.25x  2.5

El método de Bairstow puede aplicarse a este polinomio usando resultados del paso
anterior, r = -0.5 y s = 0.5, como valores iniciales. Cinco iteraciones dan un estimado
de r = 2 y s = -1.249, el cual puede usarse para calcular

2  (2) 2  4(1.249)
x  1  0.499i
2

En este punto, el cociente es un polinomio de primer orden que puede ser


directamente evaluado para determinar la quinta raíz 2.

Resumen del ejemplo anterior

Dado el polinomio f 5(x)  x 5  3.5x 4  2.75x 3  2.125x 2  3.875x  1.25 , determinar las
raíces de este polinomio. Considere r0 = -1 y s0 = -1.

Paso 1. En este paso partiendo de dos supuestos valores de s y r para el polinomio


factor, se encuentran dos valores tal que dicho polinomio divida exactamente al
original.

f 5(x)  x 5  3.5x 4  2.75x 3  2.125x 2  3.875x  1.25 Polinomio Original

f 5(x)  ( x 3  4 x 2  5.25x  2.5 )*( x 2  0.5x  0.5 ) Pol Resultado * Pol Factor

Universidad Surcolombiana Pag 17 de 23


Ing Yamil Armando Cerquera Rojas yacerque@gmail.com

Las raíces del polinomio factor del Paso 1, dado por x 2  0.5x  0.5  0 son:
x1  0.5 y x2  1.0

Paso 2. Se repite el proceso anterior tomando como polinomio original el polinomio


resultado del paso anterior.

f 3(x)  x 3  4 x 2  5.25x  2.5 Polinomio Original


f 3(x)  (x  2 )*(x  2 x  1.25 ) Polinomio Resultado * Polinomio Factor
2

Las raíces de x 2  2 x  1.25  0 son

x3  1  0.5 j
x4  1  0.5 j

Paso 3. Acá no se realiza ninguna operación porque el polinomio original para este
paso es de orden 1. Es decir se trata de una recta.

f1 ( x)  ( x  2)

La raíz de este polinomio es

x5  2 ;

Todas la raíces de f 5 ( x) son x = [0.5, 1.0, (1.0 + j0.5), (1 - j0.5), 2]

Código en lenguaje C
Aquí el código de una función que saca los factores cuadráticos y lineales en los que
se debe dividir el polinomio:

void find_poly_roots(int n)
{ double r,s,dn,dr,ds,drn,dsn,eps;
int i,iter;
r = s = 0;
dr = 1.0;
ds = 0;
eps = 1e-14;
iter = 1;
while ((fabs(dr)+fabs(ds)) > eps)
{ if ((iter % 200) == 0)
{ r=(double)rand()/16000.;
}
if ((iter % 500) == 0)
{ eps*=10.0;
precision_error_flag=1;
printf("Perdida de Precisión \n");
}

Universidad Surcolombiana Pag 18 de 23


Ing Yamil Armando Cerquera Rojas yacerque@gmail.com

b[1] = a[1] - r;
c[1] = b[1] - r;
for (i=2;i<=n;i++)
{ b[i] = a[i] - r * b[i-1] - s * b[i-2];
c[i] = b[i] - r * c[i-1] - s * c[i-2];
}
dn=c[n-1] * c[n-3] - c[n-2] * c[n-2];
drn=b[n] * c[n-3] - b[n-1] * c[n-2];
dsn=b[n-1] * c[n-1] - b[n] * c[n-2];
if (fabs(dn) < 1e-16)
{ dn = 1;
drn = 1;
dsn = 1;
}
dr = drn / dn;
ds = dsn / dn;
r += dr;
s += ds;
iter++;
}
for (i=0;i<n-1;i++)
a[i] = b[i];
a[n] = s;
a[n-1] = r;
}

Código en MatLAb
clear
clc
z=input ('TECLEE LOS COEFICIENTES DEL POLINOMIO ENTRE CORCHETES:\n');
%z=[1 -3.5 2.75 2.125 -3.875 1.25];
n=length(z); % Se define la longitud de la ecuación
it=0; % Se inicia el contador de iteraciones
limit_it=1000; % Se define el límite en el numero de iteraciones
tol=0.0001; % Se define la tolerancia de la estimación
raiz(1:n-1)=0;
ri=0;
r=2; % Se supone el valor de r que es el coeficiente de primer grado
s=2; % Se supone el valor de s que es el termino independiente
err=1; % Se inicializa el valor del error en r igual a 1
ers=1; % Se inicializa el valor del error en s igual a 1
if z(1)==0
fprintf('EL PRIMER COEFICIENTE NO DEBE SER CERO:\n\n')
break
end
while 1 % Ciclo que nos permitirá ir evaluando las raíces del polinomio
if (n-1>=3);
else break,end % Condición si el grado de la raíz es mayor a 3
t=[1 r s]; % Esta es el polinomio cuadrático de inicio
it=it+1; % Se incrementa en 1 la iteración
[x,y]=deconv(z,t); % Se divide la ecuación entre el polinomio de inicio
length(x); % Se define la longitud del polinomio resultante
length(y); % Se define la longitud del residuo resultante
x=[x,0,0]; % Se ajusta la variable x para poder sumarla al residuo

Universidad Surcolombiana Pag 19 de 23


Ing Yamil Armando Cerquera Rojas yacerque@gmail.com

x=[x+y]; % Suma del cociente mas residuo


c(1)=z(1); % Valor de los coeficientes de la función a
c(2)=z(2)+(-r*c(1)); % Evaluar, en virtud de que el coeficiente de mayor
for i=3:n % Grado será equivalente al coeficiente de menor grado
m=n-i; % Y en este ciclo se realiza la inversión de ellos
c(n-m)=z(i)+(-r*x(n-m-1))+(-s*x(n-m-2));%algoritmo de inversión
end
d(1)=c(1); %valor de los coeficientes de las derivadas parciales
d(2)=c(2)+(-r*d(1)); %valor de los coeficientes de las derivadas parciales
for i=3:(n-1); %se realizan los cálculos de los coeficientes
m=n-i; %hasta el grado máximo del polinomio
d(n-m)=c(i)+(-r*d(n-m-1))+(-s*d(n-m-2));%algoritmo de calculo
end
e=[d(n-2),d(n-3);d(n-1),d(n-2)]\[-c(n-1);-c(n)];%calculo del
d_r=e(1); %nuevo valor del coeficientes de primer grado
d_s=e(2); %nuevo valor del término independiente
if r==0
else
err=d_r/r; % cálculo del error para coeficiente de primer grado
end
if s==0
else
ers=d_s/s; % cálculo del error para termino independiente
end
r=r-d_r; %valor del coeficiente de primer grado
s=s-d_s; %valor del término independiente
if ((abs (err))&(abs(ers))<=tol) %si se cumple la condición de
ri=ri+1;
x1=(-r+sqrt(r^2-4*s))/2; % tolerancia entonces se calcula el valor del
raiz(ri)=x1;
ri=ri+1;
x2=(-r-sqrt(r^2-4*s))/2; % polinomio cuadrático.
raiz(ri)=x2;
xx=[x1,x2]'; %valor del polinomio que divide exactamente a la ecuación
tt=poly(xx); %cambio de variable para efectuar nuevamente la división
[x3,y]=deconv(z,tt); %se efectúa la división
z=x3; %se hace cambio de variable
n=length(x3-1); %se determina el grado del polinomio
r=tt(1);
s=tt(2);
end
if (it>limit_it) % condición de iteraciones
fprintf ('Exceso en el límite de iteraciones. \n');break
end %si hay exceso en el numero de iteraciones se termina el programa
end
if (n-1)==2 %si la ecuación que se introduce es de segundo grado
ri=ri+1;
x1=(-z(2)+sqrt(z(2).^2-4*z(1)*z(3)))/(2*z(1));%se calcula normalmente por
raiz(ri)=x1;
x2=(-z(2)-sqrt(z(2).^2-4*z(1)*z(3)))/(2*z(1));%medio de la fórmula tradicional
ri=ri+1;
raiz(ri)=x2;
end
if (n-1)==1 %si el valor de la ecuación que se introduce es de primer
if (abs(z(2))>=tol)
ri=ri+1;

Universidad Surcolombiana Pag 20 de 23


Ing Yamil Armando Cerquera Rojas yacerque@gmail.com

x1=-z(2)/z(1); %grado solamente se hace la sustitución.


else
x1=0;
end
raiz(ri)=x1;
x1;
end
if (n-1)==0 %si el valor de la ecuación que se introduce es una constante
fprintf('El valor que introdujo es una constante igual a:\n\n')
constante=z
end
raices=raiz';
sort raices;
raíces

Universidad Surcolombiana Pag 21 de 23


Ing Yamil Armando Cerquera Rojas yacerque@gmail.com

Recursos Bibliográficos
 MATHEUS. John H. Fink Kurtis D. Métodos Numéricos con MATLAB. Editorial Prentice Hall
 ALTZ, Franz L. Electronic. Digital. computers: Their use in science and
Engineering. 1958 Academic Press inc. New York.
 BURDEN Richard L., J. Douglas Faires; Análisis numérico. tr. Efrén Alatorre Miguel; Revisión
Técnica. Ildefonso. 1998 (Biblioteca USCO. Nro Topográfico: 515 / B949a.)
 CHAPRA Steven C., CANALE Raymond P, Numerical Methods for engineers. McGraw Hill, Inc.
1988. 839p. ISBN 0-07-909944-0.
 CHAPRA Steven C., CANALE Raymond P. Métodos numéricos para ingenieros: con aplicaciones
en computadoras personales. 1988 (Biblioteca USCO Nro Topográfico: 519.5 / C467m)
 CONDE S. D, Carl de Boor. Análisis numérico elemental: Un enfoque algorítmico. Mc. Graw-Hill
1972, (Biblioteca USCO Nro Topográfico: 511.8 / C761 Biblioteca).
 CORMICK MC., John M. and SALVADOR M.C. Numerical Methods in FORTRAN. 1964. Prentice-
Hall Inc Englewood Cliffs N:J.
 CURTIS, F. Gerald, WHEATLEY, O. Patrick. Análisis numérico con aplicaciones. Tr. Hugo
Villagomez Vasquez. 6 Ed. Pearson Educación. 2000, 698p. ISBN 968-444-393-5
 FADDEEVA, V.N. Computacional methods of linear algebra, Dover Publications. 1969, New
York.
 GASTINEL Noél; Análisis numérico lineal. tr. Javier Ruiz Fernández de Pinedo. 1975. (Biblioteca
USCO Nro Topográfico: 511.7 / G255).
 GREENSPAN, D. Theory and solutions of Ordinary Differencial Equations. 1960 The. Mc Millan
Co. New York.
 KINCAID David y Ward Cheney; Análisis numérico: Las matemáticas del cálculo científico. tr.
Rafael. 1994 (Biblioteca USCO Nro Topográfico: 515 / K51a).
 LUTHE. Rodolfo, OLIVERA Antonio, SCHUTZ Fernando, Métodos numéricos. 1986 (Biblioteca
USCO Nro Topográfico: 511.7 / L973m).
 McCRACKEN, Daniel D., Métodos numéricos y programación fortran: con aplicaciones en
ingeniería y ciencias. 1986. Editorial Limusa. México. (Biblioteca USCO Nro. Topográfico:
001.6424 / M117).
 NAKAMURA Shoichiro; Análisis numérico y visualización gráfica con MATLAB. tr. Roberto
Escalona García. 1998 (Biblioteca USCO N ro Topográfico: 515.1 / N163a).
 NAKAMURA Shoichiro; Métodos numéricos aplicados con software. tr. Oscar Alfredo Palmas
Velasco. Prentice Hall Hispanoamericana S.A. 1995. 570p. (Biblioteca USCO. Nro. Topográfico:
511.8 / N163m) ISBN 968-880-263-8
 NIETO RAMIREZ José A., Métodos numéricos en computadoras digitales. Editorial Limusa
1980. (Biblioteca USCO Nro Topográfico: 001.64042 / N677).
 RALSTON Anthony; Introducción al análisis numérico. tr. Carlos E. Cervantes de Gortari.
Editorial Limusa. Mexico. 1978. 629p. (Biblioteca USCO Nro Topográfico: 511.7 / R164.)
 SCARBOROUGH, J.B Numerical mathematics analysis
 SIERRA ROMERO, Alberto. Manual de Métodos Numéricos. Universidad Tecnológica de Pereira.
 SMITH, W. Allen; Análisis numérico. tr. Francisco Javier Sánchez Bernabe; Rev. Téc. José Luis
Turriza Pinto. Prentice Hall Hispanoamericana S.A. 1988. 608p. (Biblioteca USCO Nro
Topográfico: 515 / S664a) ISBN 968-880-119-4.
 STANTON, Ralp G. Numerical Methods for Science and Engineering. 1967. Prentice-Hall
Inc. Englewood Cliffs N.J

Bibliografia OnLine:
http://sai.uam.mx/apoyodidactico/mn/
http://www.unalmed.edu.co/~ifasmar/libro.shtml
http://www.iesrodeira.com/metodos_numericos/index-2.htm
http://uprhmate01.upr.clu.edu/~pnm/notas4061/index.htm
http://mailweb.udlap.mx/~ccastane/Analisis_Numerico_html/Lindley.html#RegresaGral1

Universidad Surcolombiana Pag 22 de 23


Ing Yamil Armando Cerquera Rojas yacerque@gmail.com

http://www.ii.uam.es/~pedro/ccii/teoria/
http://webdiee.cem.itesm.mx/web/servicios/archivo/tutoriales/metodos/algoritmos/index.html
http://www.ucsc.cl/~kdt/numerico/index.htm
http://luda.azc.uam.mx/curso2/cp2indic.html
http://www.geocities.com/SiliconValley/Pines/7894/metodos/
http://www.uv.es/~diaz/mn/fmn.html
http://proton.ucting.udg.mx/posgrado/cursos/metodos/temario.html
http://webdiee.cem.itesm.mx/web/servicios/archivo/tutoriales/metodos/algoritmos/index.html
http://www.damtp.cam.ac.uk/user/fdl/people/sd/lectures/nummeth98/contents.htm
http://anamat1.csi.ull.es/anamat_p/Titulaciones/matematicas.htm
http://www.cnice.mecd.es/Descartes/
http://mathworld.wolfram.com/
http://www.elprisma.com/
http://www-gap.dcs.st-and.ac.uk/~history/index.html
http://www.ciencia-hoy.retina.ar/indice.htm
http://omega.ilce.edu.mx:3000/sites/ciencia/html/fisica.htm
http://books.pdox.net/
http://arxiv.org/
http://pessoal.sercomtel.com.br/matematica/resumos.htm
http://www.itlp.edu.mx/publica/tutors.htm
http://www.rinconmatematico.com/libros.htm

Universidad Surcolombiana Pag 23 de 23

También podría gustarte