首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MatLab ode45最小时间步长

MatLab ode45最小时间步长
EN

Stack Overflow用户
提问于 2017-05-03 20:35:58
回答 2查看 1.9K关注 0票数 1

我试图用MatLab和ode45函数来求解微分方程。问题是如何更改最小步长?我想把它做大一点,避免太小的步子。我试着这样做:

代码语言:javascript
复制
tspan = [3, 4]; (boundaries of time line)
[t, q] = ode45('dqdt2', tspan, q0);
  • T-时间
  • Q-解查找
  • dqdt2 -我的文件有函数
  • q0 -初始条件
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-03 20:47:44

你不能.

在Matlab中,变步长的求解器不能给出最小步长,可能是因为这样做没有多大意义。如果您希望降低您的解决方案的准确性,以加快解决方案,增加AbsTol。随着公差的增加,求解者通常会采取更大的步骤,但仍然没有具体的最小步长。

票数 1
EN

Stack Overflow用户

发布于 2017-05-04 17:08:54

有一种方法可以为ode45和其他步骤求解器设置步长。在定义TSPAN时,可以指定一组您想要解决方案的值。这将不会影响求解者采取的内部步骤,但将有助于解决者在有效的内存管理。您可以查看文档这里 (感谢埃德温克斯指出它)。

代码语言:javascript
复制
%Your Code
tspan = [3, 4]; %MATLAB here uses the in built step size

%Set Step size. Say you want a step size of 0.1
tspan = 3:0.1:4;
%This will run over only those values of t that are defined by tspan
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43769537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档