Fortran Coder

查看: 6986|回复: 3
打印 上一主题 下一主题

[数值问题] 拉格朗日插值法,跑Aitken算法时出现NaN与Infinity

[复制链接]

3

帖子

1

主题

0

精华

新人

F 币
24 元
贡献
14 点
跳转到指定楼层
楼主
发表于 2020-2-22 13:50:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
aitken.txt (388 Bytes, 下载次数: 2)   
  如附件和图1,我编了aitken算法后,人工验证后觉得原理没有问题,运行也没有bug。
  但如图2,跑完后发现,无论n,l,x,y怎么取值, i=2 k=1 时算出的 y(k+i) 总会出现nan或infinity 。
  图2是拿了个简单的线性插值验证下,发现没有除零问题。到底是为什么呢?实在想不通,请问有大佬解惑吗?

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

1958

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1339 元
贡献
565 点

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

沙发
发表于 2020-2-22 14:27:14 | 只看该作者
y(k+i)=(l-x(k+i))*y(i)/(x(i)-x(k+i))+(l-x(i))*y(k+i)/(x(k+1)-x(i))
                                                                                    ^
确定这里是1??
如果是1的话。当 k=1,i=2 时,分母 (x(k+1)-x(i)) 为 0

3

帖子

1

主题

0

精华

新人

F 币
24 元
贡献
14 点
板凳
 楼主| 发表于 2020-2-22 16:03:55 | 只看该作者
fcode 发表于 2020-2-22 14:27
y(k+i)=(l-x(k+i))*y(i)/(x(i)-x(k+i))+(l-x(i))*y(k+i)/(x(k+1)-x(i))
                                  ...

非常感谢!是我看久眼花没看出来了的问题了,诶人工验证时都是算成k+i,没想到我这个怎么手残写成了k+1.

3

帖子

1

主题

0

精华

新人

F 币
24 元
贡献
14 点
地板
 楼主| 发表于 2020-2-22 16:14:22 | 只看该作者
幼红月 发表于 2020-2-22 16:03
非常感谢!是我看久眼花没看出来了的问题了,诶人工验证时都是算成k+i,没想到我这个怎么手残写成了k+1. ...

问题已解决
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-4-20 11:47

Powered by Tencent X3.4

© 2013-2024 Tencent

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