首页 > 解决方案 > 如何在 sympy 中处理对变量有数学约束的方程

问题描述

我尝试使用带有数学约束的 sympy 来简化和求解方程。我没有在网上的教程中找到如何通知 sympy 考虑这些限制。

我有一个示例方程(参见下一个代码),我希望 sympy 在处理这些变量时考虑到列出的这些变量的约束。但我没有成功找到如何告知 sympy 这些限制(限制/边界)。

import sympy
D1,D2,D3,A,B,C,d,e,f = sympy.symbols('D1 D2 D3 A B C d e f')
equation = (-A*e + e*(A*d + (1.0 - d)*(D1 + 0.5*D2 + 0.5*D3)) + (1.0 - e)*( D1*d - D1 + 0.5*D2*d - 0.5*D2 + 0.5*D3*d - 0.5*D3 + A**2*(1.0 - d) + 0.5*A*B*(2.0 - 2.0*d) + 0.5*A*C*(2.0 - 2.0*d)))**2

#constraints: my trouble: how to take them into account in simplify, collect, solve?
A+B+C=1
D1+0.5*D2+0.5D3 = f
0.<=D1,D2,D3,A,B,C,d,e,f<=1.

print(sympy.latex(sympy.collect(equation,[f,A]))

谢谢你启发我。

标签: sympy

解决方案


推荐阅读