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