Método de Bairstow

Anuncio
INGENIERIA EN PROCESOS INDUSTRIALES
UNIVERSIDAD AUTONOMA
DE SINALOA
Metodos numericos
Examen B
El método de Bairstow
Profesor
Juan Manuel Mejia Camacho
Alumno
Jesús Manuel Rodríguez Valdez
Grupo
2-1
Visita //http:nolorodrigue.wordpress.com/ para mayor información
Método de Bairstow
El método de Baristow es un proceso iterativo relacionado aproximadamente con
los métodos deMuller y Newton-Raphson. Antes de proceder a la descripción de la técnica
matemática, recuérdese la forma factorizada de un polinomio.
f5(x)=(x+1)(x-4)(x-5)(x+3)(x-2) (7.28)Si se divide entre un factor que no es una raíz (por
ejemplo, x+6), el coeficiente 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 x = t, 2) al dividir el polinomio entre el factor
x-t, y 3) determinando si existe un residuo. Si no, el valor es perfecto y la raíz es igual a t. Si
hay residuo, el valor puede ajustarse en forma sistemática y el procedimiento repetirse
hasta que el residuo desaparezca y la raíz sea localizada. Una vez hecho esto, el
procedimiento entero puede repetirse hasta que el coeficiente localice la raíz.
El método de Baristow se basa por lo ganeral en esta aproximación. Consecuentemente, el
proceso matemático depende de dividir el polinomio entre el factor. recuérdese la
discusión del polinomio de la deflación en la cual se concluye que la división sintética
implica la división del polinomio entre un factor x – t. Por ejemplo, el polinomio general.
puede dividirse entre el factor x – t para producir un segundo polinomio que de un orden
bajo
con un residuo R= bo, donde los coeficientes son calculados por la relacion de recurrencia.
Para i = n-1 a 0
Obsérvese que si t fue una raíz del polinomio original, el residuo bo seria igual a cero.
Para permitir la evaluación de raíces complejas, el método de Baristow divide el polinomio
entre el factor cuadratico
es un nuevo polinomio
.Si esto es hecho con la ecuación (7.29), el resultado
con un residuo
Visita //http:nolorodrigue.wordpress.com/ para mayor información
Como con una división sintética normal, la simple relación de recurrencia puede usarse
para realizar la división entre un factor cuadratico:
Para i = n-1 a 0
El factor cuadratico se introduce para permitir la determinación de las raíces complejas.
Esto se relaciona con el hecho de que, si los coeficientes del polinomio original son reales,
las raíces complejas se presentan en pares conjugados. Si
es un divisor exacto
del polinomio, las raíces complejas pueden determinarse por la formula cuadratica.
Entonces el método se reduce a determinar los valores de r y s que hacen que le factor
cuadratico sea un divisor exacto. En otras palabras, se busca los valores que hacen que el
residuo sea igual a cero.
La inspección de la ecuación (7.31) conduce a concluir que el residuo debe ser cero, bo y
b1 deben ser cero. Debido a que es improbable que los valores iniciales para evaluar r y s
conduzcan a este resultado debemos determinar un camino sistemático que modifica que
nuestros valores iniciales, de tal forma que bo y b1 tiendan a cero. Para hacer esto, El
método de Baristow usa una estrategia si1milar a la de aproximación de Newton-Raphson.
Ya que tanto bo como b1 son funciones de r y s, se pueden expandir usando la serie de
Taylor,
donde los valores del lado derecho son evaluados en r y s. Obsérvese que el segundo
termino y el termino de orden superior se han despreciado. Esto representa la
consideración implícita de que -r y -s son tan pequeños que los términos de orden
superior pueden despreciarse. Otro camino para expresar esta consideración es que los
valores iniciales son adecuadamente cercanos a los valores de r y s de las raíces.
Los cambios,
y
, necesarios para mejorar nuestros valores iniciales se pueden
estimar al poner la ecuación (7.33) igual a cero para dar
Visita //http:nolorodrigue.wordpress.com/ para mayor información
Si las derivadas parciales, de las b, pueden determinarse, hay un sistema de dos
ecuaciones que pueden resolverse simultáneamente para dos incógnitas, incremento r y
incremento s. Baristow muestra que las derivadas parciales pueden obtenerse por división
sintética de las b en forma similar al camino en el cual las b en si mismas fueron derivadas:
Para i = n-2 a 1
donde
Entonces, las derivadas parciales se
obtienen por división sintética de las b. Así, las derivadas parciales pueden sustituirse en
las ecuaciones (7.34) y (7.35) junto con las b para dar
Estas ecuaciones pueden resolverse para incremento de r y incremento de s, las cuales
pueden emplearse para mejorar los valores iniciales de r y s. En cada paso, el error
aproximado en r y s puede se estimado como en
y
Cuando ambos errores estimados fallan bajo un criterio especificado de paro,
valores de las raíces pueden determinarse como
Visita //http:nolorodrigue.wordpress.com/ para mayor información
, los
En este punto, existen tres posibilidades:
1.- El coeficiente es un polinomio de tercer orden o mayor. Para este caso, el método de
Baristow podría aplicarse al coeficiente para evaluar un nuevo valor de r y s. Los valores
anteriores de r y s pueden servir como valores iniciales para esta aplicación.
2.- El coeficiente es cuadratico. Para este caso, el residuo de las dos raíces puede
evaluarse directamente con la ecuación (7.39).
3.- El coeficiente es un polinomio de primer orden. Para este caso, el residuo es una sola
raíz que se puede evaluar simplemente como
Ejemplo Método de Baristow
Enunciado del problema. Emplee el método de Baristow para determinar las raíces del
polinomio
Use los valores iniciales de r = s = -1 e iterando a un nivel de
.
Solución.
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
Así las ecuaciones simultaneas para resolver
y
son
Visita //http:nolorodrigue.wordpress.com/ para mayor información
Las cuales pueden resolver
iniciales pueden corregirse como
y
. por lo tanto, nuestros valores
y el error aproximado es
El siguiente calculo es repetido 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
c5=1 c4=-4.7884 c3=8.7806 c2=-8.3454 c1=4.7874
por lo tanto se puede resolver
para
como
y
, los cuales pueden usarse para estimar la raíz correcta
Visita //http:nolorodrigue.wordpress.com/ para mayor información
El calculo puede continuar, con el resultado de que después de cuatro iteraciones el
método converge a los valores de
y
.
La siguiente ecuación puede emplearse para evaluar las raíces como
En este punto, el coeficiente es la ecuación cubica
El método de Baristow 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
En este punto, el coeficiente es un polinomio de primer orden para determinar la quinta
raíz: 2.
Visita //http:nolorodrigue.wordpress.com/ para mayor información
Obsérvese que en el fondo el método de Baristow es una evaluación de las b y c vía las
ecuaciones (7.32) y (7.36). Una de las fortalezas principales de este método radica en que
es una forma concisa en la cual estas relaciones de recurrencia pueden ser programadas.
Algoritmo del método de Bairstow
1.
2.
3.
4.
5.
6.
7.
8.
Inicio.
Ingrese el coeficiente que quiera calcular (el grado)
Ingrese el valor de “p”
Ingrese el valor de “q”
Ingrese valor de error
Si se cumple la condición se repite hasta que no se cumpla
Se calcula x1 y x2
fin
Seudocodigo
Leer el orden del polinomio (n)
Leer los coeficientes del polinomio (arreglo a)
obtener los factores cuadraticos hasta que el polinomio reducido sea de grado
WHILE (
)
Calcular r y s, para residuo de cero
Obtener las raíces del factor cuadrático
Determinar el polinomio reducido
actualizar el orden del polinomio ($n=n-2$)
END WHILE
IF (n==2) THEN
determinar las raíces del polinomio de grado 2
ELSE
determinar la raíz del polinomio de grado 1
END_IF
END
Visita //http:nolorodrigue.wordpress.com/ para mayor información
3
Diagrama de flujo
inicio
a,p,q,n
Desde k=n,-1,1
b(n+1)=0;
b(n+2)=0;
b(k)=a(k)-p*b(k+1)q*b(k+2);
Desde i=n,-1,1
c(n+1)=0;
c(n+2)=0;
c(i)=b(i)-p*c(i+1)-q*b(i+2);
P=(b(1)*c(4)-b(2)*c(3))/(c(2)*c(4)-(c(3))^2);
Q=(b(2)*c(2)-b(1)*c(3))/(c(2)*c(4)-(c(3))^2);
Visita //http:nolorodrigue.wordpress.com/ para mayor información
no
P>E & Q>E
p=p+P;
q=q+Q;
Desde k=n,-1,1
b(k)=a(k)-p*b(k+1)-q*b(k+2);
b(n+1)=0;
b(n+2)=0;
Desde i=n,-1,1
c(i)=b(i)-p*c(i+1)q*b(i+2);
c(n+1)=0;
c(n+2)=0;
P=(b(1)*c(4)-b(2)*c(3))/(c(2)*c(4)-(c(3))^2);
Q=(b(2)*c(2)-b(1)*c(3))/(c(2)*c(4)-(c(3))^2);
p=p+P;
q=q+Q;
x1=(-p+sqrt(p^2-4*q))/2;
x2=(-p-sqrt(p^2-4*q))/2;
set(handles.edit5,'string',x1);
set(handles.edit6,'string',x2);
Visita //http:nolorodrigue.wordpress.com/ para mayor información
fin
Calculadora del método de Bairstow (Matlab)
En el siguiente apartado se mostraran imagenes de la calculadora funcionando y
resolviendo los siguientes ejemplos.
Ejemplo 1)
Dado el polinomio f5(x) = x5 - 3.5x4 + 2.75x3 + 2.125x2 - 3.875x + 1.25, determinar
los valores de p y q que hacen el resido igual a cero. Considere p0 = -1 y q0 = -2.
Visita //http:nolorodrigue.wordpress.com/ para mayor información
Ejemplo 2)
Dado el polinomio f5(x) = 4x5 - 5.5x4 + 3.7x3 + 2.25x2 - 8.75x + 2.5, determinar los valores
de p y q que hacen el resido igual a cero. Considere p0 = 5 y q0 = 1.5.
Visita //http:nolorodrigue.wordpress.com/ para mayor información
Ejemplo 3)
Dado el polinomio f5(x) = 2x5 + 4x4 + 3x3 + 7x2 -5x + 1, determinar los valores de p y q que
hacen el resido igual a cero. Considere p0 = 1 y q0 = -1.
Visita //http:nolorodrigue.wordpress.com/ para mayor información
Codigo para la creacion de una calculadora del metodo de bairstow (matlab)
A continuacion se precenta el codigo necesario para crear una calculadora del metodo de
Bairstow funcional.
a=str2num(get(handles.edit1,'string'));%es nuestra funcion.(coeficientes)
p=str2double(get(handles.edit2,'string'));%nuestra costante para el valor p
q=str2double(get(handles.edit3,'string'));%nuestra cosntante para el valor q
E=str2double(get(handles.edit4,'string'));%nuestro error.
n=length(a);%dimension
for k=n:-1:1%se incrementa en 1 nuestra iteracion o funcion
b(n+1)=0;
b(n+2)=0;
b(k)=a(k)-p*b(k+1)-q*b(k+2);%valor del algoritmo
end
for i=n:-1:1%incremento de 1
c(n+1)=0;
c(n+2)=0;
c(i)=b(i)-p*c(i+1)-q*b(i+2);
end
P=(b(1)*c(4)-b(2)*c(3))/(c(2)*c(4)-(c(3))^2);
Q=(b(2)*c(2)-b(1)*c(3))/(c(2)*c(4)-(c(3))^2);
while P>E & Q>E%ciclo que requiere para evaluar las raices
p=p+P;
q=q+Q;
for k=n:-1:1
b(k)=a(k)-p*b(k+1)-q*b(k+2);
b(n+1)=0;
b(n+2)=0;
end
for i=n:-1:1
c(i)=b(i)-p*c(i+1)-q*b(i+2);
c(n+1)=0;
c(n+2)=0;
end
P=(b(1)*c(4)-b(2)*c(3))/(c(2)*c(4)-(c(3))^2);
Q=(b(2)*c(2)-b(1)*c(3))/(c(2)*c(4)-(c(3))^2);
end % si no se cumple nuestra condicien pasamos haciendo lo siguiente
p=p+P;
q=q+Q;
x1=(-p+sqrt(p^2-4*q))/2;%polinomio cuadratico
x2=(-p-sqrt(p^2-4*q))/2;%tolerancia entonces se calculara el volor de la raiz(pi)=x1;
set(handles.edit5,'string',x1);%imprimir el valor en x1
set(handles.edit6,'string',x2);%imprimir el valor en x2
El interfaz grafico se puede realizar a gusto propio.
Visita //http:nolorodrigue.wordpress.com/ para mayor información
Descargar