我想编写一个计算系列的C程序:
1/x + 1/2*x^2 + 1/3*x^3 + 1/4*x^4 + ...
最多五位小数。
该程序将x
作为输入并打印f(x)
(系列的值)最多五位小数。你能救我吗?
答案 0 :(得分:1)
为了评估多项式,Horner形式通常具有比扩展形式更好的数值稳定性参见http://reference.wolfram.com/legacy/v5/Add-onsLinks/StandardPackages/Algebra/Horner.html
如果第一个词是拼写错误,请尝试(((((1/4 )* x + 1/3) * x ) + 1/2) * x + 1) * x
否则,如果第一个术语真的是1 / x (((((1/4 )* x + 1/3) * x ) + 1/2) * x*x + 1/x
当然,你仍然需要分析在Eric Postpischil回答中发展的收敛和数值稳定性。
最后一件事,你作为例子提交的系列真的会收敛到某个x的有限值
答案 1 :(得分:0)
为了知道您计算的总和在与系列极限之间的所需距离内,您需要证明误差源小于所需距离。
在以数字方式评估系列时,有两个错误来源。一个是数值计算的局限性,例如浮点舍入。另一个是剩余条款的总和,这些条款尚未添加到部分金额中。
数值误差取决于完成的计算。对于要评估的每个系列,必须执行错误的自定义分析。对于您展示的样本系列,可以在不费力的情况下计算数值误差的粗略但足够的界限。这是您主要感兴趣的系列,还是其他人?
剩余术语的总和还需要自定义分析。通常,给定一个系列,我们可以找到一个表达式,该表达式可以证明至少与所有剩余项的总和一样大,但更容易计算。
在您对这两个错误建立了界限后,您可以对该系列的术语求和,直到两个边界的总和小于所需的距离。