我听说python可以做无限的总和.例如,如果我想评估无限和:
1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ...
Run Code Online (Sandbox Code Playgroud)
我该怎么办?我是python的新手.所以如果有人可以写出整个代码并且我需要包含/导入某些内容,我将不胜感激.
例如,在wolfram alpha中,如果我输入Summation (-1)^(n-1)/(2*n-1) from n=1 to infinity它给出答案为0.785395.我想要计算出所需精度的答案,例如wolfram alpha最多6位数.
此外,我在这里看了这篇文章并试图模仿,但它给了我以下错误:
`NameError: name 'Infinity' is not defined`
`NameError: name 'Inf' is not defined`
Run Code Online (Sandbox Code Playgroud)
谢谢,Adhvaitha
虽然它仍然是有限的,但您可以使用fractions和decimal模块来近似该系列:
from fractions import Fraction
from decimal import Decimal
repetitions = 100
d = 1
r = Fraction(1, d)
for n in range(repetitions):
r += Fraction(1, d) - Fraction(1, d + 2)
d += 4
print(Decimal(r.numerator)/Decimal(r.denominator))
Run Code Online (Sandbox Code Playgroud)
我认为这最接近你想做的事情.
Python具有无限精度整数,但不具有无限精度浮点数.但是,您可以使用提供的包.
没有什么能够"完成"无限的总和,因为它涉及无数个步骤.您需要找到总和的封闭形式,然后对其进行评估,或者接受通过在满足精度标准时终止无限和来实现的近似.
| 归档时间: |
|
| 查看次数: |
11791 次 |
| 最近记录: |