我想编写一个 C 程序来计算一系列:
1/x + 1/2*x^2 + 1/3*x^3 + 1/4*x^4 + ...
最多五位小数。
程序将采用x
作为输入,并打印f(x)
(系列值),最多可达小数点后五位。你能帮我吗?
最佳答案
对于评估多项式,霍纳形式通常比扩展形式具有更好的数值稳定性参见 http://reference.wolfram.com/legacy/v5/Add-onsLinks/StandardPackages/Algebra/Horner.html
如果第一项是拼写错误,请尝试 (((((1/4 )* x + 1/3) * x ) + 1/2) * x + 1) * x
< br/>
否则,如果第一项确实是 1/x (((((1/4 )* x + 1/3) * x ) + 1/2) * x*x + 1/x
当然,您仍然需要分析 Eric Postpischil 答案中开发的收敛性和数值稳定性。
最后一件事,您作为示例提交的系列是否真的收敛到某个 x 的有限值???
关于计算直至小数点后五位的序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12156796/