解析收敛序列和数值发散序列

计算科学 收敛 数字 精确 调理
2021-11-26 08:54:32

是否有可能构造一个理论上收敛但用计算机程序进行数值计算时却发散的序列。

我觉得今天我们的计算机程序不允许这种病理情况,所以我想我可能会发现这种病理序列以简单的精度工作。

当然我想避免溢出的情况。

最后,什么是病态序列?我有一些关于 ode、matrix 的例子......但是是否存在序列的病态概念(由递归关系定义)?

2个回答

让-米歇尔·穆勒等。al.,“Handbook of Floating-Point Arithmetic 2nd ed.”,Birkhäuser 2018,给出了 Muller 的以下示例,专门用于通过浮点计算提供不正确的结果:

u0=2,u1=4,un=1111130un1+3000un1un2,n2.

在数学上,这个序列收敛到6. 然而,从数值上评估它似乎接近100.

保罗齐默尔曼等。人。“SageMath 的计算数学”,SIAM 2018,由于 Marc Deléglise 给出了以下示例:

u0=13,un+1=4un1

在数学上,这个序列是平稳的,但在浮点算术中它会发散到.

在我看来,一个例子可以是计算三项递归关系(TTRR)的最小解

yn+1+anyn+bnyn1=0,n=1,2,3,
.

例如,贝塞尔Jn(x)固定函数x满足 TTRR

yn+12nxyn+yn1=0
假设你知道y0=J0(1)y1=J1(1)你想计算y100=J100(1)只需在正向应用 TTRR(即增加n),您将看到在有限精度算术中,您的解决方案将受到最小舍入误差的干扰,而不是递减函数,您会注意到递增函数。之间的相对误差见下图Jn(1)使用增加的 TTRR 和使用最先进算法的精确值计算。即使您使用非常高的精度以固定精度执行此操作,您也总会遇到高n.

这会是您正在寻找的一个例子吗?

在此处输入图像描述