How to solve a linear programing in matlab in cano

2019-02-27 21:53发布

问题:

Is it possible to enter matlab a string like that:

MAX  140 x1 + 160 x2 +x3

SUBJECT TO

2 x1 + 4 x2 <= 28

5x1 + 5.333x2 -500X3 = 0

x1 <= 8

x2 <= 6

END

The toolbox I have installed:

v = ver; setdiff({v.Name}, 'MATLAB')'

ans =

'Aerospace Blockset'
'Aerospace Toolbox'
'Bioinformatics Toolbox'
'Communications System Toolbox'
'Computer Vision System Toolbox'
'Control System Toolbox'
'Curve Fitting Toolbox'
'DSP System Toolbox'
'Database Toolbox'
'Datafeed Toolbox'
'Econometrics Toolbox'
'Embedded Coder'
'Filter Design HDL Coder'
'Financial Derivatives Toolbox'
'Financial Toolbox'
'Fixed-Income Toolbox'
'Fixed-Point Toolbox'
'Fuzzy Logic Toolbox'
'Global Optimization Toolbox'
'IEC Certification Kit'
'Image Acquisition Toolbox'
'Image Processing Toolbox'
'Instrument Control Toolbox'
'MATLAB Builder JA'
'MATLAB Coder'
'MATLAB Compiler'
'MATLAB Distributed Computing Server'
'MATLAB Report Generator'
'Mapping Toolbox'
'Model Predictive Control Toolbox'
'Neural Network Toolbox'
'Optimization Toolbox'
'Parallel Computing Toolbox'
'Partial Differential Equation Toolbox'
'Phased Array System Toolbox'
'RF Toolbox'
'Robust Control Toolbox'
'Signal Processing Toolbox'
'SimBiology'
'SimDriveline'
'SimElectronics'
'SimEvents'
'SimHydraulics'
'SimMechanics'
'SimPowerSystems'
'SimRF'
'Simscape'
'Simulink'
'Simulink 3D Animation'
'Simulink Coder'
'Simulink Control Design'
'Simulink Design Optimization'
'Simulink Fixed Point'
'Simulink Report Generator'
'Simulink Verification and Validation'
'Stateflow'
'Statistics Toolbox'
'Symbolic Math Toolbox'
'System Identification Toolbox'
'SystemTest'
'Wavelet Toolbox'

回答1:

check out linprog:

f = [140, 160, 1]'; %'
A = [2 4 0];
b = 28;
Aeq = [5 5.3333 -500]
beq = 0
lb = -inf*ones(3,1);
ub = [8, 6, inf]';

x = linprog( f, A, b, Aeq, beq, lb, ub );


回答2:

YALMIP will get you closer to what you want. You might also want to look into CVX.