计算多项式根的正弦值接近ππ

计算科学 数值分析
2021-12-06 18:57:21

考虑多项式

p(x)=514462x+359x2+1129x3+165x4+490x5418x6+497x7227x8+60x910x10,
谁的根A3.14非常接近π
|Aπ|=2.0746×1033.

假设我输入了上面的 11 个整数系数,仅此而已。有没有办法计算sinA使用多精度浮点运算,只使用常规双精度运算?(对于多精度算术,这是微不足道的,所以我想知道是否有任何方法或想法可以在这里应用这个限制。)

1个回答

这可能取决于您想要多少准确度。

称呼πA=d. 如果你知道的话d,那么你可以使用sin(πx)=sin(x), 并评估sin(d). 它非常接近于零,并且一阶泰勒级数产生sin(d)d. (Pythonmath.sin(2e-33)产生 2 \times 10^{-33} 到至少 10 个有效数字。)泰勒级数中的附加项可以忽略不计,但任意精度算术会更准确。

计算d, 你可以替换x在你的多项式中πd并使用标准的根查找器解决它;我使用牛顿法得到大约-2.075e-33。当然,这种方法利用了原始多项式的兴趣根接近于π,但这是数值分析中的一种标准技巧。