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