0
私は多項式関数を書いたPythonプログラムを持っており、Sympyのsolve()
関数を使ってその逆を見つける。私は次のエラーを取得するプログラムの実行時にSympifyError解析多項式
x = Symbol('x')
y = Symbol('y')
for i in range(10):
p = Poly.create_random()
print("p orig " + str(p))
solve(p, x)
print("p in terms of x: " + str(p))
solve(p, y)
print("p in terms of y (inverse): " + str(p))
しかし、:Sympyについては
p orig y = 5*x**2 - 55*x**1 + 140
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/sympy/core/sympify.py", line 354, in sympify
expr = parse_expr(a, local_dict=locals, transformations=transformations, evaluate=evaluate)
File "/usr/local/lib/python3.5/dist-packages/sympy/parsing/sympy_parser.py", line 894, in parse_expr
return eval_expr(code, local_dict, global_dict)
File "/usr/local/lib/python3.5/dist-packages/sympy/parsing/sympy_parser.py", line 807, in eval_expr
code, global_dict, local_dict) # take local objects in preference
File "<string>", line 1
Symbol ('y')=Integer (5)*Symbol ('x')**Integer (2)-Integer (55)*Symbol ('x')**Integer (1)+Integer (140)
^
SyntaxError: invalid syntax
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "z.py", line 110, in <module>
solve(p, x)
File "/usr/local/lib/python3.5/dist-packages/sympy/solvers/solvers.py", line 833, in solve
f, symbols = (_sympified_list(w) for w in [f, symbols])
File "/usr/local/lib/python3.5/dist-packages/sympy/solvers/solvers.py", line 833, in <genexpr>
f, symbols = (_sympified_list(w) for w in [f, symbols])
File "/usr/local/lib/python3.5/dist-packages/sympy/solvers/solvers.py", line 824, in _sympified_list
return list(map(sympify, w if iterable(w) else [w]))
File "/usr/local/lib/python3.5/dist-packages/sympy/core/sympify.py", line 356, in sympify
raise SympifyError('could not parse %r' % a, exc)
sympy.core.sympify.SympifyError: Sympify of expression 'could not parse 'y = 5*x**2 - 55*x**1 + 140'' failed, because of exception being raised:
SyntaxError: invalid syntax (<string>, line 1)
を、あなたは**
と*
として乗算記号で指数を記述する必要があります。それ以外にも、私はSympy固有の構文が本当に分かりません。
は、私は2よりも高い指数でそれを行うことができます任意の方法はありますか? – Matt
はい、この部分の2をより大きな整数に変更してください: 'random_poly(x、2、-1000,1000)' – Brian