⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chain.m

📁 很多matlab的源代码
💻 M
字号:
function [nn,dd] = chain(num,den,n)
%CHAIN 	Derivative of polynomial using chain rule
%	[N,D]=CHAIN(P,Q,M) returns Mth derivative (as N/D) of polynomial P/Q
%	Defaults: M=1, Q=1
%	N=CHAIN(U) returns the derivative of the polynomial P
%
%       CHAIN (with no input arguments) invokes the following example:
%
%        % Evaluate the 2nd derivative of s/(s*s+4) 
%        >>[a,b]=chain([1 0],[1 0 4],2)


% ADSP Toolbox: Version 2.0 
% For use with "Analog and Digital Signal Processing", 2nd Ed.
% Published by PWS Publishing Co.
%
% Ashok Ambardar, EE Dept. MTU, Houghton, MI 49931, USA
% http://www.ee.mtu/faculty/akambard.html
% e-mail: akambard@mtu.edu
% Copyright (c) 1998


if nargin==0,help chain,disp('Strike a key to see results of the example')
pause,[a,b]=chain([1 0],[1 0 4],2),return,end

if nargin<3,n=1;end
if n<0,error('n must be an integer >=0');return,end
if nargin<2, den=1;end  %polynomial case
num=num(:).';den=den(:).';
if n==0,nn=num;dd=den;return,end
while num(1)==0,num(1)=[];end
while den(1)==0,den(1)=[];end
ln=length(num);ld=length(den);
nn=num;dd=den;
%p=polyder(den);%Replace
if ld<2,pd=0;else,pd=den(1:ld-1).*(ld-1:-1:1);end %Derivative
for i=1:n
if ln<2,pn=0;else,pn=nn(1:ln-1).*(ln-1:-1:1);end %Derivative
n1=-i*conv(nn,pd);l1=length(n1);
n2=conv(den,pn);l2=length(n2);
nn=[zeros(1,l2-l1) n1]+[zeros(1,l1-l2) n2];ln=length(nn);
dd=conv(dd,den);
end
while nn(1)==0,nn(1)=[];end
while dd(1)==0,dd(1)=[];end

⌨️ 快捷键说明

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