首页 > 解决方案 > 如何从 Matlab 中的 ode45 获取特定 t 值的 y 和 y' 值?

问题描述

我必须求解一个二阶微分方程,并且我特别需要 y 在最后时间点的一阶导数的值。我的代码如下:

[T Y]=ode45(@(t y)vdp4(t,y,0.3),[0 1],[0.3/4,((3*0.3)^0.5)/2]);

我知道输出将包含 ode45 评估函数的值。要获得特定时间值的 y 值,建议在MATLAB 文档中给出两个以上的时间点。我也这样做了。

tspan=[0:0.01:1]
[T Y]=ode45(@(t y)vdp4(t,y,0.3),tspan,[0.3/4,((3*0.3)^0.5)/2]);

T 向量仍然没有从 0 到 1 的所有值(最后一个值为 0.39)。尤其是在多次执行 ode45 函数之后会发生这种情况。我在MATLAB 文档中发现了其他内容:使用“sol”结构来定义特定 t 值的值。这是正确的方法吗?作为参考,我的微分方程在以下函数中。

function dy = vdp4(t,y,k)

dy = zeros(2,1);    % a column vector

dy(1)=y(2);
dy(2)=(y(2)^2-2*t*y(2)+2*y(1))/k+2;

end

编辑:我提供了参数值。它现在应该是可执行的。

标签: matlabode

解决方案


尝试绘制你的解决方案,你会找到答案


推荐阅读