使用 SymPy 的二次方程
Quadratic equation with SymPy
当我尝试使用参数 a
:
求解二次方程时,SymPy 中 solve
命令的行为非常奇怪
from sympy import *
x, a = symbols("x a")
eq = Eq(0, (4 - 4*x + x**2)/(4*a**2))
print(solve(eq, x))
print(solve(simplify(eq), x))
输出:
[2 - sqrt(a**2 - 1)/a, 2 + sqrt(a**2 - 1)/a]
[2]
只是 solve
给出了两个 (!) 解决方案,这取决于 a
。简化后它只给出解 x=2
,这是正确的。发生什么了?命令 solveset
工作正常,但我对使用 solve
命令感兴趣。我的 SymPy 版本是 1.9.
这是 as_numer_denom
中的一个错误,它得到一个以 Add 开头但本质上是 Mul 的表达式。正在更正 this PR.
当我尝试使用参数 a
:
solve
命令的行为非常奇怪
from sympy import *
x, a = symbols("x a")
eq = Eq(0, (4 - 4*x + x**2)/(4*a**2))
print(solve(eq, x))
print(solve(simplify(eq), x))
输出:
[2 - sqrt(a**2 - 1)/a, 2 + sqrt(a**2 - 1)/a]
[2]
只是 solve
给出了两个 (!) 解决方案,这取决于 a
。简化后它只给出解 x=2
,这是正确的。发生什么了?命令 solveset
工作正常,但我对使用 solve
命令感兴趣。我的 SymPy 版本是 1.9.
这是 as_numer_denom
中的一个错误,它得到一个以 Add 开头但本质上是 Mul 的表达式。正在更正 this PR.