Ошибка при использовании cvx/mtimes (строка 41) Размеры внутренней матрицы должны совпадать. Ошибка в cvx/mrdivide (строка 15) z = mtimes( x, y, 'rdivide');

Я пытаюсь решить проблему геометрического программирования с помощью пакета cvx в Matlab. Цель - это максимизация, но внутри я должен определить функцию min. Когда я пытаюсь запустить код, я получаю эту ошибку

Ошибка при использовании 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-выпуклый} .* {Log-concave}

Это относится к последней строке кода. Может ли кто-нибудь помочь мне решить эту проблему?

0 ответов

Другие вопросы по тегам