MATLAB 中的ODE45ode45的初始条件是否必须是在x=0处
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/16 15:24:22
MATLAB 中的ODE45ode45的初始条件是否必须是在x=0处
MATLAB 中的ODE45
ode45的初始条件是否必须是在x=0处
MATLAB 中的ODE45ode45的初始条件是否必须是在x=0处
没有必要 只要是选取的初值对应的t等于tspan(1)
我们看下面一个例子,对于dx/dt=2t来说吧 我们知道精确解是x=t^2
下面我们给出数值解法,编写代码
%
%选取状态变量
%x1=x
%
%则各个状态变量的一阶导数为
%x1'=x'=2*t
%
%by dynamic
%2009.2.19
%
odefun=@(t,x)2*t;
%给出初值,注意我们这里不给出t=0时的初值,我们给出t=2时的初值
%初值是指各个状态变量的在t=t0=2时的值
%t=2时,状态变量x1的初值x1=t^2=4,故初值为
x0=4;
%注意下面的t0必须等于2,因为我们的选择的初值条件是t=2,ode45默认将t0作为初值条件对应的t值
t0=2;
t1=10;
[t,y]=ode45(odefun,[t0,t1],x0);
%根据计算数据绘图
plot(t,y,'-.k','LineWidth',3)
%根据解析解精确绘图
t=0:0.1:10;
x=t.^2;
hold on
plot(t,x,'r')
我们可以看到两个图像重合 说明现在的ode45求解出完全正确的数值解 换句话说初值的条件不一定需要t=0
换句话说 只要那个初值中的t可以任意选,但是必须满足,选取的t和ode45(odefun,[t0,t1],x0)中的t0相等
里面对微分方程的Matlab求解分析的比较透彻
不一定
不必要的,根据你的需要设置初始值.