我是靠谱客的博主 优美蜜蜂,最近开发中收集的这篇文章主要介绍matlab计算不同时间步长,Matlab ODE求解器中的时间步长计算,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

您应该知道步长是动态调整的,没有“步长” .

获得一般简化的想法:总误差E由每个时间步的原子误差组成 . 在第一顺序中,它是求和,更确切地说,存在所涉及的原子误差的某种累积放大率 .

一种明智的方法是每个长度为h的步长都应该具有大约E·h / T的原子误差,其中T是积分区间的长度 . 阶数4方法具有C·h ^ 5的局部误差,其中C在零序中是ODE函数的前4个导数中的多项式 . 由于该方法计算顺序4和顺序5步骤,称它们为y4和y5,可以将y5作为更精确的一个,使得大约C·h ^ 5 = | y4-y5 | . 这允许计算C并调整步长a·h以获得所需的原子误差,因为可以求解C·(a·h)^ 5 = E / T·(a·h)得到

a = pow( E/T·h/norm(y4-y5), 1/4)

这不需要非常精确,因此如果原子误差不在很大范围之外,那么可以使用适应的步长用于下一步骤 .

另一种方法是比较局部误差| y4-y5 | / h是否落在所需局部误差E / T附近的括号内,并将步长增大/减小一个常数因子,如果步长重复步长需要减少 .

高级/实际实现还有更多内容,考虑到相对和绝对误差目标,检测刚度,即局部误差公式出现故障,......

最后

以上就是优美蜜蜂为你收集整理的matlab计算不同时间步长,Matlab ODE求解器中的时间步长计算的全部内容,希望文章能够帮你解决matlab计算不同时间步长,Matlab ODE求解器中的时间步长计算所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部