poly1.m

来自「科学运算语言 MATLAB 的程序设计有关的函数代码」· M 代码 · 共 22 行

M
22
字号
function c=poly1(A)
%POLY1 函数用 Fadeev-Faddeva 算法来取矩阵的特征多项式系数。
%   它完全可以取代 MATLAB 本身提供的 POLY 函数,且运算精度更高。

%Designed by Prof D Xue (c) 2000
[nr,nc]=size(A); 
if nc==nr
   R0=eye(nc); R=R0; c=[1 zeros(1,nc)]; 
   for k=1:nc 
      c(k+1)=-1/k*trace(A*R);  
      R=A*R+c(k+1)*R0;
   end
elseif (nr==1 | nc==1)
   A=A(isfinite(A)); n=length(A);
   c=[1 zeros(1,n)];
   for j=1:n
      c(2:(j+1))=c(2:(j+1))-A(j).*c(1:j);
   end
else   
   error('Argument must be a vector or a square matrix.')
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?