Matlab の cvx パッケージで幾何学的プログラミングの問題を解決しようとしています。目的関数は最大化ですが、その中に最小関数を定義する必要があります。コードを実行しようとすると、このエラーが発生しました
cvx/mtimes の使用エラー (41 行目) 内部行列の次元が一致する必要があります。
cvx/mrdivide のエラー (15 行目) z = mtimes( x, y, 'rdivide' );
コードは次のとおりです。
cvx_begin gp
variables P_1 P_2
maximize ((D * (log2(P_1 * min(G_1/(np + (P_2 * G_2)))))) + log2((P_2 * G_3)/(np + (P_1 * G_3))))
subject to
P_2 <= P_max_Cell;
P_1 <= P_max_D2D;
P_2 * (G_3/(np + (P_1 * G_3))) >= C_th;
min(G_1/(np + (P_2 * G_2))) * P_1 >= D_th;
((np + (P_2 * G_2)) * min(G_1/(np + (P_2 * G_2)))) <= G_1; cvx_end
以前の問題は解決しましたが、別のエラーが発生し、なぜそれが発生するのか、解決方法がわかりません。エラーは次のとおりです。
規則正しい凸プログラミング エラー: 操作を実行できません: {log-convex} .* {log-concave}
コードの最後の行に属しています。誰でもこの問題に向かって私を助けることができますか?