python - 如何在 SymPy 中收集分数?

标签 python python-3.x sympy

在 SymPy 1.3 中,我有一些线性组合,例如

N1*(-sqrt(15)/36 + 5/36) - 5*N2/18 + N3*(sqrt(15)/36 + 5/36)

如何强制分数为 (5-sqrt(15))/36

最佳答案

申请together ,它可以作为函数 together(expr) 或方法 expr.together() 进行调用。如果将其应用于整个表达式,结果可能会过多收集:

N1, N2, N3 = symbols('N1 N2 N3')
expr = N1*(-sqrt(15)/36 + S(5)/36) - 5*N2/18 + N3*(sqrt(15)/36 + S(5)/36)
print(together(expr))

打印(N1*(-sqrt(15) + 5) - 10*N2 + N3*(sqrt(15) + 5))/36

这是一个有选择地一起应用于每个符号系数的版本。

for sym in expr.free_symbols:
    expr = expr.xreplace({expr.coeff(sym): together(expr.coeff(sym))})
print(expr)

打印 N1*(-sqrt(15) + 5)/36 - 5*N2/18 + N3*(sqrt(15) + 5)/36

关于python - 如何在 SymPy 中收集分数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52479112/

相关文章:

python - 在 Python 中使用 Nifi ExecuteScript 将附件上传到 Confluence

python - 使用 Selenium + Python 获取 text() 节点值

python - 使 numpy 数组 JSON 可序列化

python - sympy.plotting.plot 奇怪的 xlabel 位置

python-3.6 - 假设SymPy的符号在零和一之间?

python - 使用 SymPy 解析包含 N 的表达式

python - 如何将XML声明写入XML文件?

php - 防止 PHP 在运行并行实例时发送多封电子邮件

python - 使用 python 进行时间格式到关键字替换

python - 调试器差异 : VSCode/Terminal (Python)