How do i plot the function as a mesh in the constraint area only?

6 ビュー (過去 30 日間)
Samson David Puthenpeedika
Samson David Puthenpeedika 2021 年 11 月 21 日
回答済み: yanqi liu 2021 年 11 月 22 日
Given is the following conditions:
Using linprog()
Maximize: f= 30*X1 + 10*X2;
subject to : 6*X1 + 3*X2 <= 40;
3*X1 - X2<=0 ;
X1 + 0.25*X2 <= 4;
X1>=0
X2>=0
Display the plot
-the function as a mesh in the constraint area only (using mesh())
below is my approach ...please correct me.
f = [-30 -10];
A=[6 3;3 -1;1 0.25];
b=[40 0 4];
lb = zeros(2,1);
ub = [];
Aeq = [];
beq = [];
tic
options = optimoptions('linprog','Algorithm','dual-simplex','Display','iter');
[sol,fval,exitflag,output] = linprog(f,A,b,Aeq,beq,lb,ub,options);
LP preprocessing removed 0 inequalities, 0 equalities, 0 variables, and added 0 non-zero elements. Iter Time Fval Primal Infeas Dual Infeas 0 0.037 0.000000e+00 0.000000e+00 1.335997e+01 2 0.06 -1.600000e+02 2.057442e+00 0.000000e+00 3 0.06 -1.466667e+02 0.000000e+00 0.000000e+00 Optimal solution found.
toc
Elapsed time is 1.673879 seconds.
[X1 X2]=meshgrid(0:0.2:50,0:0.2:50);
cons1= 6*X1 + 3*X2 <= 40;
cons2= 3*X1 - X2<=0 ;
cons3= X1 + 0.25*X2 <= 4;
X1(~cons1)= NaN;
X1(~cons2)= NaN;
X1(~cons3)= NaN;
X2(~cons1)= NaN;
X2(~cons2)= NaN;
X2(~cons3)= NaN;
f= 30*X1 + 10*X2;
mesh(X1,X2,f);

採用された回答

yanqi liu
yanqi liu 2021 年 11 月 22 日
sir,which is the question?
clc; clear all; close all;
f = [-30 -10];
A=[6 3;3 -1;1 0.25];
b=[40 0 4];
lb = zeros(2,1);
ub = [];
Aeq = [];
beq = [];
tic
options = optimoptions('linprog','Algorithm','dual-simplex','Display','iter');
[sol,fval,exitflag,output] = linprog(f,A,b,Aeq,beq,lb,ub,options);
LP preprocessing removed 0 inequalities, 0 equalities, 0 variables, and added 0 non-zero elements. Iter Time Fval Primal Infeas Dual Infeas 0 0.098 0.000000e+00 0.000000e+00 1.335997e+01 2 0.136 -1.600000e+02 2.057442e+00 0.000000e+00 3 0.137 -1.466667e+02 0.000000e+00 0.000000e+00 Optimal solution found.
toc
Elapsed time is 2.145769 seconds.
[X1, X2]=meshgrid(0:0.1:20,0:0.1:20);
cons1= 6*X1 + 3*X2 <= 40;
cons2= 3*X1 - X2<=0 ;
cons3= X1 + 0.25*X2 <= 4;
X1(~(cons1&cons2&cons1))= NaN;
X2(~(cons1&cons2&cons1))= NaN;
f= 30*X1 + 10*X2;
mesh(X1,X2,-f);
xlabel('X1')
ylabel('X2')
zlabel('f')
hold on;
plot3(sol(1),sol(2),fval,'ro','MarkerFaceColor', 'r');

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSurface and Mesh Plots についてさらに検索

製品


リリース

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by