Python使用sympy求解三次方程

标签 python math sympy equation

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

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使用sympy求解三次方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51110217/

相关文章:

php - & 作为 PHP 中的算术运算符

JavaScript:高效的整数运算

python - Sympy 对实数分数返回零

Python空计数器比较

python - 如何让Mypy按预期处理函数中的子类

python - Python3 中字典的空间复杂度

python - 为什么我不能迭代(多处理)管理器列表?

c - Opencl 数学 opencl 的新手尝试将 Octave 转换为 opencl 或 c 得到不同的结果

sympy 的 atan2 不是完整的数值评估

python - 如何集成 sympy 表达式和 Latex 格式