2016-04-25 6 views
1

太陽風の1次元定常状態モデルの方程式を解くのにsympyを使用しようとしています。私は以下のコードを持っていますSympyの解答は答えを返しません

from sympy import Eq, var, solve 
var('r',real=True) 
eq = Eq((1./2.)*((CF**2)/(r))+CT*r**(gamma)+bm/(2.*muo) - CM) 
a = solve(eq,r) 

ここで、CF、CT、CM、ガンマ、ムー、およびbmは単なる実数です。私はbmの値の範囲でrの方程式を解こうとしていますが、数値は返されません。コードブロックを実行すると、私のpythonノートブックはコードが実行されていることを表示しますが、値を返さず、停止もしません。代わりの機能やsympyに与えるべきコマンドの種類がありますか?

答えて

3

この式には、r ** gammaを含むrの2乗の和が含まれます。ガンマが非常に小さい整数(-4と4の間)でない限り、これを象徴的に解決することは期待できません(これはsympyのためのものです)。

数値的に解決するには、sympyではなくscipyが必要です。たとえば、

from scipy.optimize import fsolve 
func = lambda r : (1./2.)*((CF**2)/(r))+CT*r**(gamma)+bm/(2.*muo) - CM 
# assign some numeric values to CF, CT, gamma, bm, muo, CM 
sol = fsolve(func, 1) # 1 is the initial guess for the solver 
+0

あなたは男です。 –

関連する問題