import sympy from sympy.abc import x, y, z, a, b
我想找到以下方程的 x 和 y 的根:f(x,y) = 2(x - a) + (y - b),其根为 x=a, y=b。使用 sympy 我得到
sym.solve((x - a)*2 + (y - b), [x, y])
$\left[ \left( a + \frac{b}{2} - \frac{y}{2}, y\right)\right]$
换句话说,即使我要求 sympy 也求解 y,sympy 也会将 y 视为符号(或标量)而不是变量。我怎样才能克服这个问题?
您遇到的问题是 sympy 将 y 视为常数而不是变量。要解决这个问题,您可以使用 symbols 函数显式地将 y 声明为变量,而不是从 sympy.abc 中导入。这样做可以确保 sympy 将 y 视为待解变量。以下是修改后的代码:
symbols
sympy.abc
import sympy as sym # 显式声明 x 和 y 为变量 x, y = sym.symbols('x y') # 给定的方程 f = 2 * (x - a) + (y - b) # 解方程 roots = sym.solve(f, [x, y]) print(roots)
现在,您应该能够得到正确的解 {x: a, y: b}。
{x: a, y: b}