Python решить кубическое уравнение, используя sympy - PullRequest
0 голосов
/ 30 июня 2018

У меня возникла проблема при попытке решить уравнение с использованием 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

Чего мне не хватает?

Ответы [ 2 ]

0 голосов
/ 30 июня 2018

- МИНУС НЕТ. в Python интерпретирует их по-разному, первый кодирует u"\u002D", а второй кодирует u"\u2212" и, очевидно, они не будут делать то же самое. Чтобы быть уверенным, используйте вашу цифровую клавиатуру.

0 голосов
/ 30 июня 2018

Что-то не так с вашим - персонажем. По какой-то причине это не обычный символ, и 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 делает однако

...