2017-06-07 11 views
0

私はCVXOPTを使っています.G行列を作成するには、方程式を区別して計算する必要があります。分化にはSympy.mpmathとlambda関数私はmpf形式で出力を取得しています。私はCVXOPTをサポートするpython float形式にmpfを変換する方法を提案してください。 ありがとうmpmathのmpfをpython floatに変換して、cvxoptをサポートするようにしました。

dg1 = np.array([sp.mpmath.diff(lambda x1,x2,x3,x4,x5:0.75*x2/x4,(0.3,1.45,5,1.1,0.25),ft[i]) for i in range(n)])     
>>>array([mpf('0.0'), mpf('0.68181818181818177'), mpf('0.0'), 
    mpf('-0.89876033057851223'), mpf('0.0')], dtype=object) 
+0

)を、私は文字列の形式で出力を取得しています: '[0.0 、0.681818、0.0、-0.89876、0.0] ' – Manasaveena

答えて

0

float(...)であなたのsp.mpmath.diffコールラップ:下記の通り、我々はsympy.mpmath.nstrを(使用している場合

dg1 = np.array([float(sp.mpmath.diff(lambda x1,x2,x3,x4,x5:0.75*x2/x4, 
            (0.3,1.45,5,1.1,0.25),ft[i])) for i in range(n)]) 

>>>array([0.  , 0.68181818, 0.  , -0.89876033, 0.  ]) 
+0

Dekinさん、ありがとうございました。 – Manasaveena

+0

素晴らしい!私はあなたを助けてくれて本当に嬉しいです。あなたが私の答えを受け入れたものとしてマークしていただければ幸いです。 – dekin

関連する問題