在sympy中解决表达式列表

时间:2017-03-29 14:23:09

标签: python sympy

我有表格中的表达列表。

f1 = q1 * f2 + r1
f2 = q2 * r1 + r2
r1 = q3 * r2 + r3
r2 = q4 * r3 + r4

我想用r4f1f2(即q1,q2,...)来表达qn。我该如何在同意中执行此操作?

1 个答案:

答案 0 :(得分:3)

sympy.solve可以传递一个表达式列表(等于零)和一个要解决的符号列表。如果有解决方案,则在dict中返回。 由于您根据fq s寻求解决方案,因此请求解所有r个变量。

f1, f2, r1, r2, r3, r4, q1, q2, q3, q4 = sy.symbols('f1,f2,r1,r2,r3,r4,q1,q2,q3,q4')
ans = sy.solve([
    f1 - q1 * f2 - r1,
    f2 - q2 * r1 - r2,
    r1 - q3 * r2 - r3,
    r2 - q4 * r3 - r4], [r4, r3, r2, r1])
print(ans[r4])

打印

f2*(q3*q4 + 1) - (f1 - f2*q1)*(q2*q3*q4 + q2 + q4)