init
This commit is contained in:
31
FOTF Toolbox/fode_caputo9.m
Normal file
31
FOTF Toolbox/fode_caputo9.m
Normal file
@ -0,0 +1,31 @@
|
||||
function y=fode_caputo9(a,na,b,nb,y0,u,t,p)
|
||||
% fode_caputo9 - O(h^p) Caputo FODE solver with nonzero initial conditions
|
||||
%
|
||||
% y=fode_caputo9(a,na,b,nb,y0,u,t,p)
|
||||
%
|
||||
% a,na,b,nb - coefficients/order vectors of numerator and denominator
|
||||
% y0 - the initial vector of the output and its integer-order derivatives
|
||||
% u - the samples of the input signal
|
||||
% t - the time vector, corresponding to u
|
||||
% p - the precision O(h^p) setting
|
||||
% y - the solutions of the Caputo equation, with O(h^p)
|
||||
|
||||
% Copyright (c) Dingyu Xue, Northeastern University, China
|
||||
% Last modified 28 March, 2017
|
||||
% Last modified 18 May, 2022
|
||||
arguments
|
||||
a(1,:), na(1,:), b(1,:), nb(1,:), y0(:,1), u(:,1), t(:,1)
|
||||
p(1,1) {mustBePositiveInteger}=5
|
||||
end
|
||||
T=0; dT=0;
|
||||
if p>length(y0)
|
||||
yy0=caputo_ics(a,na,b,nb,y0,u(1:p),t(1:p));
|
||||
y0=yy0(1:p).*gamma(1:p)';
|
||||
elseif p==length(y0)
|
||||
yy0=caputo_ics(a,na,b,nb,y0,u(1:p+1),t(1:p+1));
|
||||
y0=yy0(1:p+1).*gamma(1:p+1)';
|
||||
end
|
||||
for i=1:length(y0), T=T+y0(i)/gamma(i)*t.^(i-1); end
|
||||
for i=1:length(na), dT=dT+a(i)*caputo9(T,t,na(i),p); end
|
||||
u=u-dT; y=fode_sol9(a,na,b,nb,u,t,p)+T;
|
||||
end
|
||||
Reference in New Issue
Block a user