首页 文章

MatLab ode45最小时间步

提问于
浏览
1

我正在尝试用MatLab和ode45函数求解微分方程 . 问题是我如何改变最小步长?我想让它更大,以避免太小的步骤 . 我试着这样做:

tspan = [3, 4]; (boundaries of time line)
[t, q] = ode45('dqdt2', tspan, q0);
  • 时间

  • q - 寻找解决方案

  • dqdt2 - 我的文件有功能

  • q0 - 初始条件

2 回答

  • 0

    You can't.

    在Matlab中,可变步长求解器不能给出最小步长,可能是因为它没有那么多意义 . 如果您希望降低解决方案的准确性以加快解决方案,请增加RelTol and AbsTol . 随着公差的增加,求解器通常会采取更大的步长,但仍然没有特定的最小步长 .

  • 1

    有一种方法可以为ode45和其他步骤求解器设置步长 . 在定义TSPAN时,可以指定要为其提供解决方案的一组值 . 这不会影响求解器采取的内部步骤,但会帮助求解器进行有效的内存管理 . 您可以查看文档here(感谢edwinksl指出) .

    %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
    

相关问题