私は解決しようとしている方程式を持っています。私はSymPyライブコンソールで適切な結果を得ています。これはウェブサイトで入手できます。しかし、私のローカルコンピュータで同じ結果を再現しようとしているとき、私はConditionSet
を得ています。私は方程式を解くことができません。ローカルとSymPyのライブ結果が異なる - 部門の問題?
正確に同じ方程式を局所的に解くことはできません。私はdiv(もし私が__future__.division
をインポートしています)、LaTexライブラリの欠如、またはいくつかの他の設定が何か間違っているかどうか確かではありませんか?ラテックスで印刷
Python console for SymPy 1.0 (Python 2.7.12)
These commands were executed:
>>> from __future__ import division
>>> from sympy import *
>>> x, y, z, t = symbols('x y z t')
>>> k, m, n = symbols('k m n', integer=True)
>>> f, g, h = symbols('f g h', cls=Function)
Warning: this shell runs with SymPy 1.0 and so examples pulled from other documentation may provide unexpected results.
Documentation can be found at http://docs.sympy.org/1.0.
>>> a = Eq(309.07*(1+x)**(-1/12) + 309.07*(1+x)**(-2/12)+309.07*(1+x)**(-3/12) + 309.07*(1+x)**(-4/12) + 309.07*(1+x)**(-5/12) + 309.07*(1+x)**(-6/12) + 309.07*(1+x)**(-7/12), 1500)
>>> solveset(a, x, domain=S.Reals)
結果:
{2.17102109654962}
そして、ここで地元のPythonスクリプト:ASCIIテキストで印刷
from __future__ import division
from sympy import *
init_printing()
x, y, z, t = symbols('x y z t')
k, m, n = symbols('k m n', integer=True)
f, g, h = symbols('f g h', cls=Function)
a = Eq(309.07*(1+x)**(-1/12) + 309.07*(1+x)**(-2/12)+309.07*(1+x)**(-3/12) + 309.07*(1+x)**(-4/12) + 309.07*(1+x)**(-5/12) + 309.07*(1+x)**(-6/12) + 309.07*(1+x)**(-7/12), 1500)
b = solveset(a, x, S.Reals)
print b
の検索結果をここで
はSymPyからのコマンドが住んでいます:
ConditionSet(x, Eq(309.07*(x + 1)**(-0.583333333333333) + 309.07*(x + 1)**(-0.5) + 309.07*(x + 1)**(-0.416666666666667) + 309.07*(x + 1)**(-0.333333333333333) + 309.07*(x + 1)**(-0.25) + 309.07*(x + 1)**(-0.166666666666667) + 309.07*(x + 1)**(-0.0833333333333333) - 1500, 0), (-oo, oo))
私はその後、私は違う行動を起こすかわからないですが、あなたはsympy整数として、あなたの指数を治療するためのsympyを言うならば...私はこの上の任意の助けをいただければ幸いです
おそらく、Sympy Liveは、Sympyの開発版を使用していますか?どちらの場合でも、 'solveset'の代わりに' solve'を使うと、必要な答えが得られます。しかし、数値解を探しているときには、(同じ)結果をより速く与えるので、 'nsolve'を使うのが最良の選択肢です。 – Stelios