声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2969|回复: 10

[综合讨论] ODE45的问题

[复制链接]
发表于 2008-12-15 06:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
错误代码是:Unable to meet integration tolerances without reducing the step size below the smallest value allowed (3.552714e-015) at time t
应该是常见错误

遇到这样的问题,是否能够通过把精度要求降低来避免?
此外,ODE45是否一定适合所有的微分方程?我目前所要解的是一个一阶微分方程,是否有更好的函数适合?
另外,所有的人都是用ODE系列的吗?有没有需要用到自己编程的问题?
回复
分享到:

使用道具 举报

发表于 2008-12-15 09:46 | 显示全部楼层
估计是你步长太小了,增大一些试试。

ODE45并不适用所有情况:
(1)刚性问题(stiff):方程组的解不同分量的数量级差别较大,对于数值求解是一大困难。Matlab既能解决非刚性问题,也能解决刚性问题。
(2)三个解决非刚性问题的函数:ode45,ode23,ode113
(3)两个解刚性问题的函数:ode15s和ode23s

评分

1

查看全部评分

 楼主| 发表于 2008-12-16 05:33 | 显示全部楼层
多谢阿,能不能教我怎么增大步长?linspace?
发表于 2008-12-16 20:39 | 显示全部楼层

回复 板凳 MichaelNCSU 的帖子

试试t = linspace(,,)
发表于 2009-5-19 22:25 | 显示全部楼层

如何增大步长啊?

如何增大步长啊?我也遇到过类似的问题,谢谢谢谢谢谢
发表于 2009-5-20 12:54 | 显示全部楼层
ode45是变步长计算的,为何还要修改步长哪

评分

1

查看全部评分

发表于 2009-5-20 17:09 | 显示全部楼层

是的,可是总出现这样的问题啊,你帮忙看看怎么解决下,

是的,可是总出现这样的问题啊,你帮忙看看怎么解决下,
Warning: Failure at t=1.000323e+000.  Unable to meet integration tolerances without reducing the step size
below the smallest value allowed (3.553861e-015) at time t.
发表于 2009-5-21 23:54 | 显示全部楼层
ode45是变步长的,建议楼主下一个程序ode4

评分

1

查看全部评分

发表于 2010-11-23 20:08 | 显示全部楼层
碰到与楼主同样的问题,纠结中,哪位高人指点下啊
发表于 2010-11-23 21:00 | 显示全部楼层
我也是啊 郁闷中解决不了 我刚才数学非线性中发了类似的帖子
发表于 2010-11-24 18:07 | 显示全部楼层
ode45是自适应步长的计算方法,但是其步长的自适应过程在一定程度上仍然是可控的
其步长是通过设置Options实现的
MaxStep:最大步长,默认为{0.1*abs(t0-tf)}
InitialStep:初始步长

不过一般情况下出现上述问题是,通过调整这些是指很少又能够解决的,主要是方程自身的性质决定的
建议采用ode15s或者ode23s

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-6-17 12:49 , Processed in 0.089412 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表