% Práctica 10.6: Calcula, mediante el método de Bairstow, un par de % raíces (no necesariamente complejas) de un polinomio. Pide los % datos por pantalla. a=input('Vector de coeficientes del polinomio (de mayor a menor grado) '); n=length(a); disp('Valores iniciales: '); u=input(' u= '); v=input(' v= '); iter=input('Número máximo de iteraciones '); prec=input('Precision deseada '); disp(' ') b(n)=a(1); % c(n)=0; % no dependen de u ni de v c(n-1)=a(1); % sw=1; for it=1:iter b(n-1)=a(2)+u*b(n); for k=n-2:-1:1 b(k)=a(n-k+1)+u*b(k+1)+v*b(k+2); c(k)=b(k+1)+u*c(k+1)+v*c(k+2); end det=c(1)*c(3)-c(2)*c(2); % determinante deltau=(c(2)*b(2)-c(3)*b(1))/det; deltav=(c(2)*b(1)-c(1)*b(2))/det; u=u+deltau; v=v+deltav; disp(sprintf('iteración %i, u= %d, v= %d',it,u,v)) norma=norm([deltau,deltav]); if norma