Fortran Coder

查看: 6815|回复: 4
打印 上一主题 下一主题

[通用算法] 关于二分法出现的奇怪问题求助

[复制链接]

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

楼主
发表于 2015-10-6 21:00:10 | 显示全部楼层
所有的数值解法,都有一定的适用范围。
二分法是有这个问题的。当 deltaX 小到低于浮点数有效位数(单精度为6-7位),还不足以引起大于 zero 的 deltaY 变化时,就会导致 P 和 Q 的值相同。
所以一般二分法在实际应用时,会增加一个终止条件,也就是判断 P 和 Q 的差值,如果小到一定的程度就终止,或循环到一定次数终止。

如果只用一个 FR 做为终止条件,是很危险的。

在很多迭代法中,都存在相同的问题。

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2015-10-6 21:42:19 | 显示全部楼层
提高浮点数精度不一定能解决你的问题(我没试过,但是这主要跟你的函数【的导数】有关)。

降低 zero 的要求应该可以。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-4 07:33

Powered by Tencent X3.4

© 2013-2024 Tencent

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