sympy - 计算具有不同结束索引的产品
问题描述
我正在尝试使用不同的结束索引来计算产品,但我没有得到我期望的结果:
from sympy.abc import n, k
from sympy import IndexedBase, Product
g = IndexedBase('g')
gg = {g[0]: 1, g[1]: 2, g[2]: 3, g[3]: 4, g[4]: 5, g[5]: 6}
my_product = Product(g[n]**-1, (n, 0, k-1))
result = list()
for i in range(len(gg)):
s = {k: i, **gg} # substitions
result.append(my_product.evalf(subs=s))
print(result)
结果是:
[1.00000000000000, 1.00000000000000, 1.00000000000000, 1.00000000000000, 1.00000000000000, 1.00000000000000]
预期结果是:
[1.00000000000000, 1.00000000000000, 0.500000000000000, 0.166666666666667, 0.0416666666666667, 0.00833333333333333]
解决方案
我不确定 evalf 应该在这里做什么,但你可以得到我认为你想要的结果
result.append(my_product.subs(k, i).doit().subs(gg))
有了这个,我得到:
[1, 1, 1/2, 1/6, 1/24, 1/120]
推荐阅读
- apache-spark - BROADCASTJOIN 提示在 PySpark SQL 中不起作用
- python - 为什么函数不适用于数据框?系列对象没有称为查询的属性(熊猫)
- uber-api - uber cadence :: 想要在工作流中存储一个对象
- ios - 将 MVC 之类的设计模式与 SwiftUI 结合使用
- c - C 程序被检测为恶意软件
- sql - PostgreSQL 找不到函数
- r - 如何根据R中的另一个向量位置向向量添加元素
- python-3.x - GLM 和带有 statsmodels 的 Logit 模型有什么区别?
- excel - 导入 CSV,而不将数据格式化为日期和数字
- sql - Postgesql:计数包含项目的标签