Filter löschen
Filter löschen

Setting linear constraints for fmincon,

4 Ansichten (letzte 30 Tage)
wasif
wasif am 3 Sep. 2024
Bearbeitet: Torsten am 3 Sep. 2024
I am setting the linear inequality constraints for my problem in fmincon.
My problem is min_(gamma,t) t s.t -t<=0; PS(gamma) - t <= 0; - PS(gamma) - t <= 0; i want to minimize t and my optimization variables are both t and gamma. gamma is comlex in nature so i am separating real and imaginary parts for fmincon in x_opt. A and B are not correct anyone can help ?
function [A, B] = linear_constraints(x_opt---)
real_gamma = x_opt(1:Nris+2); % Real part of gamma
imag_gamma = x_opt(Nris+3:length(x_opt)-1); % Imaginary part of gamma
gamma = real_gamma + 1i * imag_gamma; % Recombine gamma as complex vector
A = zeros(0, length(x_opt));
B = zeros(0, 1);
%% Constraint (a): -t <= 0
A_a = zeros(1, length(x_opt)); % Coefficients for all variables
A_a(end) = -1; % -t in the last column
B_a = 0; % Right-hand side of constraint
% Append to A and B
A = [A; A_a];
B = [B; B_a];
%% Constraint (b): PS(gamma) - t <= 0
% PS_term is a scalar real value based on gamma
PS_term = PS(gamma);
A_b = zeros(1, length(x_opt)); % Coefficients for all variables
%A_b(1:Nris+2) = (PS_term); % Include coefficients for gamma
A_b(end) = -1; % Coefficient for -t
B_b = -PS_term; % Right-hand side of constraint
% Append to A and B
A = [A; A_b];
B = [B; B_b];
%% Constraint (d): - PS(gamma) - t <= 0
PS_term_1 = -Ps(gamma)
A_d = zeros(1, length(x_opt));
%A_d(1:Nris+2) = ; % Coefficients for gamma
A_d(end) = -1; % Coefficient for -t
B_d = (TA_PS_term); % Right-hand side of constraint
% Append to A and B
A = [A; A_d];
B = [B; B_d];
end

Antworten (1)

Torsten
Torsten am 3 Sep. 2024
Bearbeitet: Torsten am 3 Sep. 2024
If real(gamma) and imag(gamma) are vectors of optimization variables, the constraints
PS(gamma) - t <= 0;
- PS(gamma) - t <= 0;
are nonlinear constraints. You will have to define them in function "nonlcon".

Kategorien

Mehr zu Gamma Functions finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by