python - 如何处理 Python 3 中的大浮点数(循环函数)?
问题描述
我对 Python 中的浮点数太大有一个小问题。发生溢出错误。
函数如下所示:
N(t + 1) = (1 + c) N(t) - (c / d) * N(t)**2
其中 t 是时间,c 和 d 是常数。
我需要它最多计算一分钟(t = 60)。但是在 t= 8、9 或 10 之后,我得到了溢出错误。
def nValue(t):
n_calc = []
c = 2.3 # 0..3
d = 95 # 1..250
n_0 = 450 # 0..600
n_1 = (1 + c) * n_0 - c / d * n_0**2
n_calc.append(n_0)
n_calc.append(n_1)
for i in range(2, t+1):
n_curr = (1 + c) * n_calc[i- 1] - (c / d) * (n_calc[i- 1]**2)
n_calc.append(n_curr)
return n_calc
我应该使用 Decimal 类型、BigFloat 还是其他类型?
最后我必须绘制情节......(2D Matplotlib情节)。也许我应该以某种方式“缩放”这个方程?
解决方案
您可以使用这个先前的答案作为参考。 OverflowError: (34, 'Result too large') 十进制类没有限制,所以你应该使用 use。它与 GMP 和其他任意精度库具有相同的目的。
我希望这可以帮助你。 https://en.wikipedia.org/wiki/List_of_arbitrary-precision_arithmetic_software
推荐阅读
- mysql - 在 PowerShell 脚本中运行 MySQL 查询
- django - 在 Heroku 和 Django 应用程序上添加迁移的问题
- java - 在序列化 Spring Boot 应用程序中的任何响应时,如何让 Jackson 考虑 @JsonView?
- c# - 如何检查 MongoDB C# 中的索引(是否存在),因为 IndexExist 已从较新版本中弃用
- spring-boot - 使用 kotlin 时如何将 @RequestParams 传递给嵌套的 POJO
- c# - asp.net iis 要求登录两次
- html - 强制asp.net列表控件为空时生成html
- java - 由于 java.lang.NoClassDefFoundError: org.gradle.api.internal.ClosureBackedAction,带有 jdk 11 构建的 Gradle 5 失败
- android - 我们可以只为一个文本视图启用辅助功能吗?
- php - 无法使用 Microsoft 帐户登录