Python法求解三次方程

Python法求解三次方程,python,math,sympy,equation,Python,Math,Sympy,Equation,我在尝试使用sympy解方程时遇到了问题。 一些变量指定了特定的值。 我正在尝试求解b,c和d的方程。 这是我的尝试: from random import randint import sympy from sympy.abc import b,c,d,B,C,r,x B=10 C=20 r=123 # Equation: x^3+b*x^2+c*x+d=x^3+(B−r)x^2+(C−B*r)x−C*r equation = sympy.Eq(x**3+b*x**2+c*x+d,x**3

我在尝试使用
sympy
解方程时遇到了问题。 一些变量指定了特定的值。 我正在尝试求解
b
c
d
的方程。 这是我的尝试:

from random import randint
import sympy
from sympy.abc import b,c,d,B,C,r,x

B=10
C=20
r=123

# Equation: x^3+b*x^2+c*x+d=x^3+(B−r)x^2+(C−B*r)x−C*r
equation = sympy.Eq(x**3+b*x**2+c*x+d,x**3+(B−r)*x**2+(C−B*r)*x−C*r)

print(sympy.solve(equation,"b"))
print(sympy.solve(equation,"c"))    
print(sympy.solve(equation,"d"))
Python向我显示以下错误:

    [user@user Python Scripts]$ python polygen.py 
  File "polygen.py", line 10
    equation = sympy.Eq(x**3+b*x**2+c*x+d,x**3+(B−r)*x**2+(C−B*r)*x−C*r)
                                                  ^
SyntaxError: invalid character in identifier

我遗漏了什么?

您的
-
字符有问题。由于某种原因,它不是一个常规字符,python无法识别它。我在我的机器上用连字符替换了所有减号,它可以工作:

from random import randint
import sympy
from sympy.abc import b,c,d,B,C,r,x

B=10
C=20
r=123

# Equation: x^3+b*x^2+c*x+d=x^3+(B−r)x^2+(C−B*r)x−C*r
equation = sympy.Eq(x**3+b*x**2+c*x+d,x**3+(B-r)*x**2+(C-B*r)*x-C*r)

print(sympy.solve(equation,"b"))
print(sympy.solve(equation,"c"))
print(sympy.solve(equation,"d"))
我不确定错误的
-
符号是什么类型的字符:

a=2−2
在我的机器中不工作


a=2-2
是负的
不可用。在Python中,对它们的解释是不同的,第一个编码为
u“\u002D”
,而第二个编码为
u“\u2212”
,显然它们不会做同样的事情。请务必使用数字键盘。

(B-r)
之后是否缺少一个
*
?我添加了
*
,但错误完全相同。也可以尝试在(C-B*r)之后添加一个
*
,python不会处理带parenthesis@Tissuebox我在任何地方都添加了它(参见更新后的开始文章)。我也尝试了这两种方法,
**
^
来获得力量,因为表达不会改变任何东西。哦,我的天。。这一定是通过从pdf文件复制方程式实现的。这是一个愚蠢的错误:谢谢@Kyu96错误的符号是U+2212,一个Unicode减号。