[英]Minimizing norm subject to linear constraint, using quadratic programming/minimization in Python
cvxopt.solvers.qp
好像能解決
1/2 x T P x + q T x
受制於
斧頭≤B
對於你的情況,
||ξ|| 2 = ξ 2 = ξ T I ξ = 1/2 ξ T (2 × I) ξ + 0 x ξ
其中 I 是一個單位矩陣。 所以你的 P 和 q 是 (2 × I) 和0並且 A = -z_k, b = l_k。
使用給定的z_k
和l_k
(λ),您可以通過以下方式解決矩陣不等式
import numpy
from cvxopt import matrix
P = matrix([
[2., 0., 0.],
[0., 2., 0.],
[0., 0., 2.]
])
q = matrix([[0., 0., 0.]])
z_k = matrix([
[1.],
[2.],
[3.]
])
l_k = matrix([4.])
from cvxopt import solvers
sol = solvers.qp(P, q, -z_k, l_k)
print(sol['x']) # argmin ξ
print(sol['primal objective']) # min ξ^2
檢查這個。
如果你需要min ||ξ||
,規范:
import math
print(math.sqrt(sol['primal objective']))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.