ode45要解的微分方程,有一部分是数值的怎么办?
这个问题可以用matlab的插值函数,把数值函数变成“解析函数来解决”,这样就能直接套matlab的ode45代码了
[t,y] = ode45(@(t,y) 2*t, tspan, y0);
中有解析函数
2t
它可以用
x1=-2:0.01:7;
y1=2*x1;
interp1(x1,y1,t)
来代替
只要我的数值结果还比较完整的话
其中interp1是matlab自带的的插值函数,它可以根据不连续的点模拟一个完整的函数,得到连续x轴上任意一个点,对应这个函数的什么函数值
x1=-2:0.01:7;
y1=2*x1;
tspan = [0 5];
y0 = 0;
[t,y] = ode45(@(t,y) interp1(x1,y1,t), tspan, y0);
它的功能和真正的解析函数一致,都是给它一个值,返回一个值,用之替换解析函数,即可解决部分微分方程有一部分是数值函数,不能用ode45的问题