function [k0] = polschur(a,dega) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % [k0]=polschur(a,dega) % % % % MATLAB FUNCTION stabpol IS STABILITY TEST % % FOR POLYNOMIAL a. % % THE NONZERO POLYNOMIAL a IS STABLE IF AND % % ONLY IF k0=0. % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % S. Pejchova, May 9th, 1994 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % preliminary steps and initialization % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% k=dega; k0=0; if k== -inf error('stabpol: Input is zero polynomial'); end AR=a; ALF=zeros(2,k+1); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % computing k0 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% for i=1:k n=length(AR); ALF(1,:)=AR; ALF(2,:)=AR(1,n:-1:1); al=ALF(1,n)/(ALF(2,n)); AR=ALF(1,:)-al*(ALF(2,:)); if AR(1,n) > 1e-15 error('stabpol: computing error'); end if AR == zeros(1,n) break end AR=AR(1,1:n-1); ALF=ALF(:,1:n-1); if abs(al) >= 1 k0=k0+1; end end