我是优化新手。fmin_slsqp
我正在尝试使用中的函数解决线性最小二乘问题scipy.optimize
。
我的目标函数是|q0_T*P-q1_T|
平方的 frobenius 范数,其中q0_T
是nX1
向量的转置,P
是nXn
矩阵,q1_T
是nX1
向量的转置。这基本上是一个马尔可夫过程,q
向量作为处于某个状态的概率并且P
是转移概率的矩阵。
目标函数将P
在以下约束条件下最小化:
1) 中的所有元素P
必须为非负数
2) 中的所有行P
必须总和为 1
我已经定义了这个我不确定是否正确的目标函数:
def func(P, q):
return (np.linalg.norm(np.dot(transpose(q[0,]),P)-transpose(q[1,])))**2
fmin_slsqp 中的第二个参数要求一个 1D ndarray x0,它是自变量的初始猜测。但是在这里,由于我的自变量是 P,所以我需要一个二维数组来进行初始猜测。我不确定我是否正确地构建了问题,或者我将不得不使用其他功能。谢谢。