回答:
CVXPYを発見する前に、完全な回答(行の下)を書きました。これは(MATLABのCVXのように)あなたのためにすべての難しいことを行い、ここであなたとほとんど同じ非常に短い例を持っています 関連する行を置き換えるだけです
p = program(minimize(norm2(A*x-b)),[equals(sum(x),1),geq(x,0)])
私の古い答え、CVXOPTでそれをより困難な方法で行う:
目的関数を二乗するGeoffの提案に従って
もちろん、すべての項はスカラーであるため、3番目の項を転置し、最後の項をドロップできます(依存しないため、どのxが最小値を与えるかは変更しませんが、再度追加する必要があります)目的の正しい値を取得するために解いた後)x T A T A x − b T(A + A T)xを得るために ( これは(制約を含む))二次プログラムの形式を持ち、 CVXOPTのドキュメントはこちら(このような問題を解決するためのサンプルコードもあります)。
解決した問題の代わりに、解決します
この問題は、CVXOPT、IPOPT、または他の任意の凸最適化ソルバーで解決できる微分可能な凸状の非線形最適化問題です。