init
This commit is contained in:
19
FOTF Toolbox/nlfode_vec1.m
Normal file
19
FOTF Toolbox/nlfode_vec1.m
Normal file
@ -0,0 +1,19 @@
|
||||
function [x,t]=nlfode_vec1(f,alpha,x0,h,tn,L0)
|
||||
% nlfode_vec - another version of nlfode_vec, not recommended
|
||||
|
||||
% Copyright (c) Dingyu Xue, Northeastern University, China
|
||||
% Last modified 28 March, 2017
|
||||
% Last modified 18 May, 2022
|
||||
arguments
|
||||
f, alpha(1,:), x0(:,1), h(1,1), tn(1,1), L0(1,1)=1e20;
|
||||
end
|
||||
n=length(x0); m=round(tn/h)+1; t=0; g=double(genfunc(1));
|
||||
x1=x0; ha=h.^alpha(:); z=zeros(n,m); tk=0;
|
||||
for i=1:n, W(i,:)=get_vecw(alpha(i),min(m,L0+1),g); end
|
||||
for k=2:m, tk=(k-1)*h; L=min(k-1,L0);
|
||||
for i=1:n, F0(i,1)=W(i,2:L+1)*z(i,k-1:-1:k-L).'-x0(i); end
|
||||
F=@(x)x-f(tk,x).*ha+F0;
|
||||
x1=fsolve(F,x1); t=[t; tk]; z(:,k)=x1-x0;
|
||||
end
|
||||
x=(z+repmat(x0,[1,m])).';
|
||||
end
|
||||
Reference in New Issue
Block a user