尝试使用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
我想念什么?
答案 0 :(得分:4)
您的-
字符有问题。由于某种原因,它不是常规字符,而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
可以
答案 1 :(得分:1)
-
不是减号−
。在Python中,它们的解释有所不同,第一个编码为u"\u002D"
,但第二个编码为u"\u2212"
,显然它们不会做同样的事情。确保使用数字键盘。