metodos numericos es - · pdf filecodigo para la creacion de una calculadora del metodo de...

14
Visita //http:nolorodrigue.wordpress.com/ para mayor información UNIVERSIDAD AUTONOMA DE SINALOA INGENIERIA EN PROCESOS INDUSTRIALES Metodos numericos Profesor Juan Manuel Mejia Camacho Examen B El método de Bairstow Alumno Jesús Manuel Rodríguez Valdez Grupo 2-1

Upload: trinhthuan

Post on 07-Feb-2018

304 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Metodos numericos ES -   · PDF fileCodigo para la creacion de una calculadora del metodo de bairstow (matlab)

Visita //http:nolorodrigue.wordpress.com/ para mayor información

UNIVERSIDAD AUTONOMA

DE SINALOA IN

GEN

IER

IA E

N P

RO

CES

OS

IND

UST

RIA

LES

Metodos numericos

Profesor

Juan Manuel Mejia Camacho

Examen B

El método de Bairstow

Alumno

Jesús Manuel Rodríguez Valdez

Grupo

2-1

Page 2: Metodos numericos ES -   · PDF fileCodigo para la creacion de una calculadora del metodo de bairstow (matlab)

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 .Si esto es hecho con la ecuación (7.29), el resultado

es un nuevo polinomio

con un residuo

Page 3: Metodos numericos ES -   · PDF fileCodigo para la creacion de una calculadora del metodo de bairstow (matlab)

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

Page 4: Metodos numericos ES -   · PDF fileCodigo para la creacion de una calculadora del metodo de bairstow (matlab)

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, , los

valores de las raíces pueden determinarse como

Page 5: Metodos numericos ES -   · PDF fileCodigo para la creacion de una calculadora del metodo de bairstow (matlab)

Visita //http:nolorodrigue.wordpress.com/ para mayor información

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

Page 6: Metodos numericos ES -   · PDF fileCodigo para la creacion de una calculadora del metodo de bairstow (matlab)

Visita //http:nolorodrigue.wordpress.com/ para mayor información

Las cuales pueden resolver y . por lo tanto, nuestros valores

iniciales pueden corregirse como

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 y , los cuales pueden usarse para estimar la raíz correcta

como

Page 7: Metodos numericos ES -   · PDF fileCodigo para la creacion de una calculadora del metodo de bairstow (matlab)

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.

Page 8: Metodos numericos ES -   · PDF fileCodigo para la creacion de una calculadora del metodo de bairstow (matlab)

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. Inicio.

2. Ingrese el coeficiente que quiera calcular (el grado)

3. Ingrese el valor de “p”

4. Ingrese el valor de “q”

5. Ingrese valor de error

6. Si se cumple la condición se repite hasta que no se cumpla

7. Se calcula x1 y x2

8. 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 3

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

Page 9: Metodos numericos ES -   · PDF fileCodigo para la creacion de una calculadora del metodo de bairstow (matlab)

Visita //http:nolorodrigue.wordpress.com/ para mayor información

Diagrama de flujo

inicio

a,p,q,n

b(n+1)=0; b(n+2)=0; b(k)=a(k)-p*b(k+1)-

q*b(k+2);

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);

Desde k=n,-1,1

Desde i=n,-1,1

Page 10: Metodos numericos ES -   · PDF fileCodigo para la creacion de una calculadora del metodo de bairstow (matlab)

Visita //http:nolorodrigue.wordpress.com/ para mayor información

P>E & Q>E

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;

p=p+P; q=q+Q;

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);

fin

no

Page 11: Metodos numericos ES -   · PDF fileCodigo para la creacion de una calculadora del metodo de bairstow (matlab)

Visita //http:nolorodrigue.wordpress.com/ para mayor información

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.

Page 12: Metodos numericos ES -   · PDF fileCodigo para la creacion de una calculadora del metodo de bairstow (matlab)

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.

Page 13: Metodos numericos ES -   · PDF fileCodigo para la creacion de una calculadora del metodo de bairstow (matlab)

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.

Page 14: Metodos numericos ES -   · PDF fileCodigo para la creacion de una calculadora del metodo de bairstow (matlab)

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.