Você está na página 1de 4

Ejercicio 7.5 – Chapra 5 Ed.

– Método de Bairstow

Camilo Andrés Vanegas Verano – Cód: 2162637

7.5 Utilice el método de Bairstow para determinar las raíces de:


a) 𝑓 (𝑥 ) = −2 + 6.2𝑥 − 4𝑥 2 + 0.7𝑥 3
Inicialmente, se grafica el polinomio para determinar la posición posible de las raíces:

Después, mediante el uso del programa Matlab, se utiliza el siguiente pseudocódigo:


clc
clear all
close all
a=[0.7 -4 6.2 -2];
r=-1;
s=-1;
n=length(a);
Es=0.005;
Ear=100;
while Ear > Es
b(n)=a(n);
b(n-1)=a(n-1)+r*b(n);
for i = n-2:-1:1
b(i)=a(i)+r*b(i+1)+s*b(i+2);
end
c(n-1)=b(n);
c(n-2)=b(n-1)+ r*c(n-1);
for i = n-3:-1:1
c(i) = b(i+1) + r*c(i+1) + s*c(i+2);
end
A=[c(2) c(3); c(1) c(2)];
B=[-b(2);-b(1)];
X=A\B;
r1=r+X(1,1);
s1=s+X(2,1);
Ear=abs(X(1,1)/r1)*100;
Eas=abs(X(2,1)/s1)*100;
r=r1;
s=s1;
end
x1=(r+sqrt(r*r+4*s))/2;
x2=(r-sqrt(r*r+4*s))/2;
El cual define un vector a que contiene los coeficientes (en orden de mayor a menor grado) del
polinomio. Al ejecutar el código, utilizando valores de r =s = -1, se obtienen las raíces: 𝒙𝟏 = 𝟐 y
𝒙𝟐 = 𝟎. 𝟒𝟑𝟓𝟕. Posteriormente, para encontrar la tercera raíz del polinomio, se realiza una doble
división sintética:

0.7 -4 6.2 -2 2
1.4 -5.2 2
0.7 -2.6 1 0

0.7 -2.6 1 0.436


0.3052 -1
0.7 -2.295 0
Obteniendo el siguiente polinomio:
0.7𝑥 − 2.295
El cual, al igualarlo a cero, permite encontrar 𝒙𝟑 = 𝟑. 𝟐𝟕𝟖𝟔. Finalmente, se tiene que:
 𝑥1 = 2.2950
 𝑥2 = 0.5
 𝑥3 = 3.2786

b) 𝑓 (𝑥 ) = 9.34 − 21.97𝑥 + 16.3𝑥 2 − 3.704𝑥 3


Inicialmente, se grafica el polinomio para determinar la posición posible de las raíces:

Después, mediante el uso del programa Matlab, se utiliza el siguiente pseudocódigo:


clc
clear all
close all
a=[-3.704 16.3 -21.97 9.34];
r=-1;
s=-1;
n=length(a);
Es=0.005;
Ear=100;
while Ear > Es
b(n)=a(n);
b(n-1)=a(n-1)+r*b(n);
for i = n-2:-1:1
b(i)=a(i)+r*b(i+1)+s*b(i+2);
end
c(n-1)=b(n);
c(n-2)=b(n-1)+ r*c(n-1);
for i = n-3:-1:1
c(i) = b(i+1) + r*c(i+1) + s*c(i+2);
end
A=[c(2) c(3); c(1) c(2)];
B=[-b(2);-b(1)];
X=A\B;
r1=r+X(1,1);
s1=s+X(2,1);
Ear=abs(X(1,1)/r1)*100;
Eas=abs(X(2,1)/s1)*100;
r=r1;
s=s1;
end
x1=(r+sqrt(r*r+4*s))/2;
x2=(r-sqrt(r*r+4*s))/2;

El cual define un vector a que contiene los coeficientes (en orden de mayor a menor grado) del
polinomio. Al ejecutar el código, utilizando valores de r =s = -1, se obtienen las raíces: 𝒙𝟏 =
𝟎. 𝟖𝟔𝟕𝟕 y 𝒙𝟐 = 𝟎. 𝟒𝟑𝟓𝟖. Posteriormente, para encontrar la tercera raíz del polinomio, se realiza una
doble división sintética:
-3.704 16.300 -21.970 9.34 0.95
-3.519 12.142 -9.34
-3.704 12.781 -9.828 0

-3.704 12.781 -9.828 1.1566


-4.284 9.828
-3.704 8.497 0
Obteniendo el siguiente polinomio:
−3.704𝑥 + 8.947
El cual, al igualarlo a cero, permite encontrar 𝒙𝟑 = 𝟐. 𝟒𝟏𝟓𝟓. Finalmente, se tiene que:
 𝑥1 = 0.8677
 𝑥2 = 0.4358
 𝑥3 = 2.4155

c) 𝑓 (𝑥 ) = 𝑥 4 − 3𝑥 3 + 5𝑥 2 − 𝑥 − 10
Inicialmente, se grafica el polinomio para determinar la posición posible de las raíces:
Después, mediante el uso del programa Matlab, se utiliza el siguiente pseudocódigo:
clc
clear all
close all
a=[1 -3 5 -1 -10];
r=-1;
s=-1;
n=length(a);
Es=0.005;
Ear=100;
while Ear > Es
b(n)=a(n);
b(n-1)=a(n-1)+r*b(n);
for i=n-2:-1:1
b(i)=a(i)+r*b(i+1)+s*b(i+2);
end
c(n-1)=b(n);
c(n-2)=b(n-1)+ r*c(n-1);
for i = n-3:-1:1
c(i) = b(i+1) + r*c(i+1) + s*c(i+2);
end
A=[c(2) c(3); c(1) c(2)];
B=[-b(2);-b(1)];
X=A\B;
r1=r+X(1,1);
s1=s+X(2,1);
Ear=abs(X(1,1)/r1)*100;
Eas=abs(X(2,1)/s1)*100;
r=r1;
s=s1;
end
x1=(r+sqrt(r*r+4*s))/2;
x2=(r-sqrt(r*r+4*s))/2;
El cual define un vector a que contiene los coeficientes (en orden de mayor a menor grado) del
polinomio. Al ejecutar el código, utilizando valores de r =s = -1, se obtienen las raíces:
 𝑥1 = 2
 𝑥2 = −1

Você também pode gostar