(1) 您应该访问ask.sagemath.org,这是 Sage 用户、专家和开发人员的类似 Stack Overflow 的论坛! </plug>
(2) 如果您想在某事中使用 solve() 调用的值,那么使用 solution_dict 标志可能是最简单的:
sage: x,y = var("x, y")
sage: eqn = x**4+5*x*y+3*x-y==17
sage: solve(eqn,y)
[y == -(x^4 + 3*x - 17)/(5*x - 1)]
sage: solve(eqn,y,solution_dict=True)
[{y: -(x^4 + 3*x - 17)/(5*x - 1)}]
此选项以字典列表而不是方程式列表的形式提供解决方案。我们可以像访问任何其他字典一样访问结果:
sage: sols = solve(eqn,y,solution_dict=True)
sage: sols[0][y]
-(x^4 + 3*x - 17)/(5*x - 1)
然后如果我们愿意,我们可以将其分配给其他东西:
sage: z = sols[0][y]
sage: z
-(x^4 + 3*x - 17)/(5*x - 1)
并替代:
sage: eqn2 = y*(5*x-1)
sage: eqn2.subs(y=z)
-x^4 - 3*x + 17
等等。虽然恕我直言,上面更方便,但您也可以通过 .rhs() 在没有 solution_dict 的情况下访问相同的结果:
sage: solve(eqn,y)[0].rhs()
-(x^4 + 3*x - 17)/(5*x - 1)