Metodo de Bairstow.
Enviado por ecjose1488 • 16 de Febrero de 2016 • Informe • 726 Palabras (3 Páginas) • 355 Visitas
Método de Bairstow
En análisis numérico, Método de Bairstow es un eficiente algoritmo para encontrar raíces de un verdadero polinómico del grado arbitrario. El algoritmo primero apareció en el apéndice de los 1920 que el libro “aplicó la aerodinámica” cerca Leonard Bairstow. El algoritmo encuentra las raíces adentro conjugación del complejo pares usando solamente aritmética verdadera.
Vea algoritmo de la búsqueda del radical para otros algoritmos.
Descripción del método
El acercamiento de Bairstow es utilizar Método del neutonio para ajustar los coeficientes u y v en cuadrático x2 + ux + v hasta que sus raíces son también raíces del polinómico que son solucionadas. Las raíces de la ecuación cuadrática pueden entonces ser determinadas, y el polinomio se puede dividir por la ecuación cuadrática para eliminar esas raíces. Este proceso entonces se itera hasta que el polinomio llega a ser cuadrático o linear, y se han determinado todas las raíces.
División larga de un polinomio
por x2 + ux + v rinde un cociente
y un resto cx + d tales que
Las variables c, d, y {bi} son las funciones de u y v. Pueden ser encontrados recurrentemente como sigue.
La ecuación cuadrática divide uniformemente el polinomio cuando
Valores de u y v para cuál ocurre el puede ser descubierto escogiendo valores que comienzan e iterando el método del neutonio en dos dimensiones hasta convergencia ocurre.
Funcionamiento
El algoritmo de Bairstow hereda la convergencia cuadrática del método del neutonio, excepto en el caso de factores cuadráticos de la multiplicidad más arriba de 1, cuando la convergencia puede ser algo lenta.
Ejemplo en MATLAB
% METODO DE BAIRSTOW
% JUAN CARLOS ALDAZ ROSAS (CREDITOS)
% UNIVERSIDAD DE GUADALAJARA
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 limite en el numero de iteraciones
tol=.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 permitira ir evaluando las raíces del polinomio
if (n-1>=3);else break,end%condicion si el grado de la raiz es mayor a 3
t=[1 r s];%esta es el polinomio cuadratico de inicio
it=it+1;%se incrementa en 1 la iteracion
[x,y]=deconv(z,t);%se divide la ecuacion entre el polinomio de inicio
...