我有一个幂级数,所有项都是非负的,我想将其评估为任意设置的精度p
(MPFR 浮点尾数的二进制数字长度)。结果应如实四舍五入。问题是我不知道什么时候应该停止向结果变量添加项,也就是说,我怎么知道我什么时候已经有了p + 32
系列的准确求和位?32
只是一个任意选择的小自然数,旨在促进更准确地舍入为p
二进制数字。
这是我的原创系列
0 <= h <= 1
series_orig(h) := sum(n = 0, +inf, a(n) * h^n)
但我实际上需要计算上述系列的任意导数(m
是导数的阶):
series(h, m) := sum(n = m, +inf, a(n) * (n - m + 1) * ... * n * h^(n - m))
有理数列a
定义如下:
a(n) := binomial(1/2, n)^2
= (((2*n)!/(n!)) / (n! * 4^n * (2*n - 1)))^2
那么我怎么知道什么时候停止总结条款series
呢?
以下可能是一个好的策略吗?
- 计算
p * 4
(假定大于p + 32
)。 - 在每一点都能够召回当前的部分和和前一个。
- 如果四舍五入到精度,则当先前和当前部分和相等时停止循环
p + 32
。 - 四舍五入到精确
p
并返回。
澄清
我正在用 MPFI 做这个,它是 MPFR 的区间算术插件。因此 [mpfi] 标签。
尝试获取相关公式和方程式
在 Eric 在评论中的指导下,我设法推导出了所需工作精度的公式和总和中所需的系列项数的方程式。
然而,一个问题是,对于所需的项数来说,一个好的公式是不可能的。
m
相反,数学上更有能力的人可能能够获得一个有用的上限的公式,但是对于所有可能的请求结果精度和(导数的阶数)的所有可能值来说,这似乎很难做到。请注意,公式需要易于计算,以便在我开始计算系列之前准备好。
另一个问题是,似乎有必要为h
( h = 1
) 假设最坏的情况,这样才有可能得到一个好的公式,但如果h
远离最坏的情况,即h
接近于零,这就是浪费。