2

R で quadprog プログラムを使用して、次の単純な目的関数を最適化しようとしています。

max_{x} x' A x

私が目にするほとんどの最適化問題は最小化を使用していますが、単純に A の代わりに -A を使用すると、A が正定値ではなくなったというエラーが発生します。私はこの種のことに非常に慣れていません。単純な二次最大化問題を解く方法を知っている人はいますか?

エラーを再現するサンプル コードを次に示します。

if (!require(quadprog)) install.packages('quadprog')
library(quadprog)
set.seed(144)
mat <- abs(cor(matrix(rnorm(25),5,5)))
solve.QP(Dmat = -mat, dvec = rep(0,5), Amat = diag(5), bvec = rep(0,5), meq=0, factorized=FALSE)

結果のエラーは次のとおりです。

solve.QP(Dmat = -mat, dvec = rep(0, 5), Amat = diag(5), bvec = rep(0, : 二次関数の行列 D は正定値ではありません!

4

0 に答える 0