25 lines
973 B
Matlab
25 lines
973 B
Matlab
function [y,z]=fode_caputo0(a,na,b,nb,y0,u,t)
|
|
% fode_caputo0 - simple Caputo FODE solver with nonzero initial conditions
|
|
%
|
|
% [y,z]=fode_caputo0(a,na,b,nb,y0,u,t)
|
|
%
|
|
% 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
|
|
% y - the solutions of the Caputo equation, with O(h)
|
|
% z - the solution portion for zero initial condition ones
|
|
|
|
% 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)
|
|
end
|
|
h=t(2)-t(1); T=0; P=0; U=0;
|
|
for i=1:length(y0), T=T+y0(i)*t.^(i-1)/gamma(i); end
|
|
for i=1:length(na), P=P+a(i)*caputo9(T,t,na(i),5); end
|
|
for i=1:length(nb), U=U+b(i)*caputo9(u,t,nb(i),5); end
|
|
z=fode_sol(a,na,1,0,U-P.',t); y=z+T;
|
|
end
|