0

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}

コードの最後の行に属しています。誰でもこの問題に向かって私を助けることができますか?

4

0 に答える 0