residue.m

来自「薛定宇高等应用数学问题的MATLAB求解例子源码」· M 代码 · 共 15 行

M
15
字号
   function f=residue(F,s)
   f=sym(0); if nargin==1, syms s; end
   [num,den]=numden(F); x0=solve(den); 
   [x,ii]=sort(double(x0)); x0=x0(ii); x=[x0;rand(1)];
   kvec=find(diff(double(x))~=0); ee=x(kvec);
   kvec=[kvec(1); diff(kvec(:,1))]; 
   a0=limit(den/s^length(x0),s,inf); % 求分母首项系数
   F1=num/(a0*prod(s-x0));   % 重组 f(x) 函数的分母,得出新函数 f_1(x)
   for i=1:length(kvec),
      for j=1:kvec(i), m=kvec(i); s0=ee(i);
         k=limit(diff(F1*(s-s0)^m,s,j-1),s,s0);   % 这里用 f_1(x)
         f=f+k/(s-s0)^(m-j+1)/factorial(j-1);
      end
   end

⌨️ 快捷键说明

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