Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-10, 16:49   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 寻找对派生精度具有宽松态度的ODE积分器/求解器

我有一个(一阶)ODE系统,其计算导数相当昂贵。

但是,导数可以在给定的误差范围内便宜得多,这是因为导数是从收敛序列计算得出的,并且可以将范围放在掉项的最大贡献上,或者可以使用存储在kd-tree中的预先计算的范围信息/ octree查找表。

不幸的是,我找不到能够从中受益的通用ODE求解器。他们似乎都只是给您坐标,并希望得到准确的结果。 (请记住,我不是ODE的专家;我对Runge-Kutta(《数值食谱》一书的材料,LSODE和Gnu科学图书馆的求解器很熟悉)。

例如,对于我见过的所有求解器,您提供一个derivs回调函数,该函数接受t和x数组,并返回dx/dt数组;但理想情况下,我正在寻找一种能够给回调t , x s 和可接受的错误的数组 ,并接收回dx/dt_min和dx/dt_max数组,并保证派生范围在所需的精度内。 (可能存在许多同样有用的变体)。

任何考虑到此类问题而设计的求解器的指针,或解决问题的替代方法(我无法相信我是第一个想要这样的东西的人)将不胜感激。


回答:
再三考虑之后,我想到间隔算法可能是关键。我的derivs函数基本上返回间隔。使用间隔算术的积分器将保持x为间隔。我感兴趣的是在最后的t处获得x上的足够小的误差。一种明显的方法是迭代地重新整合,提高样本的质量,每次迭代引入最多的错误,直到最终获得可接受的范围的结果(尽管听起来这可能会“治愈得比疾病还糟”)。整体效率)。我怀疑自适应步长控制可以很好地适合这种方案,选择步长以使“隐式”离散化误差可与“显式误差”(即区间范围)相提并论。

无论如何,谷歌搜索“节点求解器间隔算术”或仅仅是“间隔节点”都会增加很多有趣的新内容和相关内容(尤其是VNODE及其参考)。



更多&回答...
poster 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 03:24


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.