我正在尝试求解具有以下形式的可变系数的一阶微分方程:
xdot(1)=a(t)*x(1)+b;
其中b =一个常数,而a(t)=一个与时间有关的函数。我知道我可以手动求解此方程,但是a(t)是一个非常复杂的函数。 因此,我的问题如下。 a(t)是一个函数,我从实验中知道了它的值(我已经将所有结果保存在文件中)-> a(t)是向量(nx 1),这是一个问题,因为x(1) = xdot(1)=标量那么,我怎么用lsode求解这个方程?
答案 0 :(得分:0)
可能我低估了您的问题,但是按照我的阅读方式,您要求集成一阶ODE。通常,有两种处理方式,隐式方法和显式方法。这是我能想到的最粗略但最容易理解的方法:
nt=101;a=-ones(1,nt);b=1/2;x=NaN*ones(1,nt);x(1)=pi;dt=0.01;
for kt=2:nt
dxdt=a(kt-1)*x(kt-1)+b;
x(kt)=x(kt-1)+dxdt*dt;
endfor
plot(x)
我假设a <0,所以没有爆炸的趋势。您将需要将其设置为等于您的观察值。