0
是否有可能解決如下所示:
x = np.matrix([[8.3,-20.6],[-20.6,65.8]])
y是P的函數:
y = lambda P: np.matrix([[0.02P,-0.02P], [-0.02P,0.04P]])
我想找到給出P值條件:
P>0, det(x-y)==0;
有沒有方便的方法呢?
非常感謝! Shawn
是否有可能解決如下所示:
x = np.matrix([[8.3,-20.6],[-20.6,65.8]])
y是P的函數:
y = lambda P: np.matrix([[0.02P,-0.02P], [-0.02P,0.04P]])
我想找到給出P值條件:
P>0, det(x-y)==0;
有沒有方便的方法呢?
非常感謝! Shawn
如果您不介意使用額外的軟件包,scipy.optimize有許多完美的方法。否則,你可以implement your own zero finding function。
如果你想要去的SciPy的路線:
1)定義你的問題,因爲這需要你的未知參數(P)作爲第一個參數,並返回要最小化值的函數:
def zerofn(P, x, y):
return np.linalg.det(x - y(P))
2)使用scipy優化這個函數。這裏的例子使用一個簡單的Newton-Raphson零點搜索器,但有many other options,你可能想用它來指定參數邊界(例如P> 0)。
import scipy.optimize as opt
opt.newton(zerofn, x0=1, args=(x, y))
>> 160.25865914054651
這個零點查找的結果是你的最佳P.
的價值太感謝你了奧斯卡! –
不用擔心 - 樂意幫忙! – oscarbranson