题目:
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求解分析的比较透彻
1.《ode45 MATLAB 中的ODE45》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《ode45 MATLAB 中的ODE45》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/jiaoyu/546521.html