各位大神请教个问题MATLAB解微分方程组的ode和desolve差别很大?

第一个ode45function dx=gh(t,x)
dx=zeros(2,1); dx(1)=x(2); dx(2)=(-4.5/200000)*(x(2)^2);endclear allclc y0=[0,140];%初始条件[t,xx]=ode45('gh',[0,200],y0);%参数区间p=xx(1:74,1);%水平速度plot([1:74],p)第二个[x]=dsolve('200000*D2x+4.5*(Dx)^2=0','Dx(0)=240,x(0)=0','t')m=diff(x)t=[1:74];v=(400000*log((27*t)/5000 + 1))/9;plot(t,v)想问一下为什结果差别很大?

第一个的t的步长可不是你后来写的以1为步进哦,所以就是你第一个图画的t和p其实不是对应的

clear;clc;
gh=@(t,x)[x(2);(-4.5/200000)*(x(2)^2)]
y0=[0,240];%初始条件
[t,xx]=ode45(gh,[0,200],y0);%参数区间
p=xx(:,1);%水平速度
plot(t,p)
ylim([0,15000]);
figure
[x]=dsolve('200000*D2x+4.5*(Dx)^2=0','Dx(0)=240,x(0)=0','t')
m=diff(x)
t=[1:74];
v=(400000*log((27*t)/5000 + 1))/9;
plot(t,v)
温馨提示:答案为网友推荐,仅供参考