matlab - 如何从 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
编辑:我提供了参数值。它现在应该是可执行的。
解决方案
尝试绘制你的解决方案,你会找到答案
推荐阅读
- azure - Azure Front Door、应用服务访问限制和 AD 身份验证
- smartcard - 在其他类型的集成电路而不是智能卡上安装 Java Card OS
- java - 获取混音器可以支持的最大剪辑数量?
- java - 带有 Quartz 作业的 XSL 样式表路径
- javascript - 如何随机加载无限滚动的图像和文本?
- switch-statement - Ada - 案例/切换无效令牌
- android - react-native-firebase:compileDebugRenderscript 失败
- blazor - Blazor WASM 在生产环境和本地/开发中的不同行为
- algorithm - 如何遍历圆的左外边界?
- r - 如何将字符串转换为允许使用二元运算符的“公式”