sympyでxの逆関数を求めるために、y =(x + 1)** 3 -2を解いてみたいと思います。 solve
を使ってみましたが、期待したものが得られませんでした。
sympyでxに対してy =(x + 1)** 3 -2をどのように解くことができますか?
In [1]: from sympy import *
In [2]: x, y = symbols('x y')
In [3]: n = Eq(y,(x+1)**3 - 2)
In [4]: solve(n,x)
Out [4]:
[-(-1/2 - sqrt(3)*I/2)*(-27*y/2 + sqrt((-27*y - 54)**2)/2 - 27)**(1/3)/3 - 1,
-(-1/2 + sqrt(3)*I/2)*(-27*y/2 + sqrt((-27*y - 54)**2)/2 - 27)**(1/3)/3 - 1,
-(-27*y/2 + sqrt((-27*y - 54)**2)/2 - 27)**(1/3)/3 - 1]
私はOut [4]
で、リストの最後の要素を見ていたが、それは等しくないX =:
は、ここで私は(Pythonの3.5.2に1.0 sympy)CMDにIPythonコンソールに書いたものです(y + 2)**(1/3)-1(私が期待していた)。
なぜsympyが間違った結果を出力したのですか?
と私が探していた解決策をsympy出力にするにはどうしたらいいですか?
solveset
を使ってみましたが、solve
と同じ結果が得られました。
In [13]: solveset(n,x)
Out[13]: {-(-1/2 - sqrt(3)*I/2)*(-27*y/2 + sqrt((-27*y - 54)**2)/2 - 27)**(1/3)/
3 - 1, -(-1/2 + sqrt(3)*I/2)*(-27*y/2 + sqrt((-27*y - 54)**2)/2 - 27)**(1/3)/3 -
1, -(-27*y/2 + sqrt((-27*y - 54)**2)/2 - 27)**(1/3)/3 - 1}
これは(n = Eq(y、(x + 1)のような別の多項式に拡張しようとすると、 ** 5) '、私は空のセットを取得します。あなたは私が期待していたx = y **(1/5)-1を得るために何ができるか知っていますか? (もし私がそうしたら別の質問でこれを聞くことができます) – DragonautX
@DragonautX:申し訳ありませんが、私はあなたの一般的な質問には良い答えがありません。 – unutbu
それは大丈夫です。結局、私はいつも手でそれを行い、そこから作業するか、別のツールを試すことができます。 – DragonautX