【发布时间】:2015-10-09 23:15:00
【问题描述】:
如何求解以下 ODE:f'' + t*f' + 3*f = sin(3*t) 初始条件为 t=0、f=2 和 df/dt=1,并使用 (Dt)=0.1 间距绘制从 t =0 到 5 的解。还使用 Heun 方法求解值 f(5)。
这是我在下面尝试过的
time=(0:0.01:5);
Sol=[0];
f=[2];
df=[1];
for(mm=1:length(time)-1);
f(mm+1)=df(mm)*.01+f(mm);
df(mm+1)=(f(mm+1)-f(mm))/0.01;
end
ww=(1);
for(kk=0:0.01:5-0.02);
V=(f(ww+2)-2*f(ww+1)+f(ww))/(0.01)^2+kk*((f(ww+2)-f(ww+1))/0.01)+f(ww+1);
Sol=[Sol V];
ww=ww+1;
end
Sol=[Sol 0];
figure(5)
plot(time,Sol);
【问题讨论】:
-
我会将其更改为 $g' = F(t,g)$ 形式的一阶 ODE 系统,然后使用 Huen 的方法解决该问题。使用 MATLAB 求解二阶 ODE 有一些答案。
-
这是 Heun 的方法,说话像 Hoin。中点法的显式变体。
-
@LutzL Wikipedia 将其作为改进的欧拉方法给出,而不是明确的中点。
-
你说得对,我又把它们弄混了。 Heun 是显式梯形法。