ODE45 Matlab 的不同解决方案



我将解决以下非线性DE:

代码#1:

tspan1 =t0:0.05:TT;
[t1,y1] = ode45(@(t1,T) ((1-alpha)*Q-sigm*(T.^4))/R, tspan1, t0);
h1=(TT-t0)/(size(y1,1)-1);
Tspan1=t0:h1:TT;
figure(55);plot(Tspan1,y1,'b');

代码#2:

tspan=[t0 TT];
[t,y] = ode45(@(t,T) ((1-alpha)*Q-sigm*(T.^4))/R, tspan, t0);
h=(TT-t0)/(size(y,1)-1);
Tspan=t0:h:TT;
figure(5);plot(Tspan,y,'b');

其中:

R=2.912;          
Q = 342;          
alpha=0.3;
sigm=5.67*(10^(-8));  
TT=20;
t0=0;

为什么结果不同?

第二个结果的间距不相等。它在某种程度上是一组表示解曲线的最小点。因此,如果曲线相当线性,则只有几个点,而在高曲率区域,您将获得密集采样。您可以并且应该使用返回的时间数组,因为它包含解决方案点的时间,

figure(55);plot(t1,y1,'b');
figure(5);plot(t,y,'b');

最新更新