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