2017-06-07 47 views
0

我正在使用qudratic編程問題來處理CVXOPT。要創建一個G矩陣,我需要區分方程並計算values.For區分我使用Sympy.mpmath和lambda函數如下所示。我以mpf格式獲得輸出。請建議我一種將mpf轉換爲支持CVXOPT的python float格式的方法。 三江源將mpma轉換爲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

如果我們使用sympy.mpmath.nstr(),我得到的字符串的形式輸出下面給出,0.681818,0.0,-0.89876,0.0]' – Manasaveena

回答

0

包裝你sp.mpmath.diff電話與float(...):「[0.0:

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