2^x 的数值近似
Numerical approximation of 2^x
我正在编写一个用于任意精度算术的库。我面临的最后一个问题是幂函数。我想出计算 2 ^ (y log2(x))
而不是 x ^ y
并且仍然存在一个子问题:我如何有效地计算 2 ^ x
with x
在 (0,1)
范围内(零并排除一个)。
因为我显然存储有理数,所以 x
的形式为 p/q
(p < q
)。因此我可以计算 2
的第 q
个根(维基百科的第 n 个根算法 https://en.wikipedia.org/wiki/Nth_root_algorithm),然后用 p
.
对结果求幂
但是,这似乎效率很低。有没有更高级的算法?感谢您的帮助。
因为 2 ^ x = e ^ (x ln 2)
和 e ^ x = 1 + x + x^2/2! + x^3/3! + ...
这可能是一个可行的方法。 e ^ x
的级数展开对于有限的 x(如您的情况)快速收敛。
我正在编写一个用于任意精度算术的库。我面临的最后一个问题是幂函数。我想出计算 2 ^ (y log2(x))
而不是 x ^ y
并且仍然存在一个子问题:我如何有效地计算 2 ^ x
with x
在 (0,1)
范围内(零并排除一个)。
因为我显然存储有理数,所以 x
的形式为 p/q
(p < q
)。因此我可以计算 2
的第 q
个根(维基百科的第 n 个根算法 https://en.wikipedia.org/wiki/Nth_root_algorithm),然后用 p
.
但是,这似乎效率很低。有没有更高级的算法?感谢您的帮助。
因为 2 ^ x = e ^ (x ln 2)
和 e ^ x = 1 + x + x^2/2! + x^3/3! + ...
这可能是一个可行的方法。 e ^ x
的级数展开对于有限的 x(如您的情况)快速收敛。