Hi, I'm trying to optimize a function which I know the results but matlab is giving me weird results. Here's what I'm trying to do:
max: f(x)= 1815x1+379x2
subject to: -1475x1-112013x2 >= -700000
x1,,x2<=80
x1,x2>=0
How would you do it?

댓글 수: 3

Gimpy
Gimpy 2014년 8월 11일
maybe I would like to do it with simplex method(My benchmark in Excel) or wahatever method is the best... thank you!
Yu Jiang
Yu Jiang 2014년 8월 11일
편집: Yu Jiang 2014년 8월 11일
Can you share your code? Which built-in function are you using?
Bear in mind that both functions fminsearch and fmincon search for the minimum not the maximum.
-Yu
Gimpy
Gimpy 2014년 8월 11일
f = [1815;379]
A = [-1475 -11203]
b = [-700000]
ub= (ones(1,2)*80)'
lb = zeros(2,1)
x = linprog(f,A,b,[],[],lb,ub)

댓글을 달려면 로그인하십시오.

 채택된 답변

Yu Jiang
Yu Jiang 2014년 8월 11일
편집: Yu Jiang 2014년 8월 11일

1 개 추천

Hi Gimpy
Since linprog finds the minimum for the function f(x) but the problem you are trying to solve is a maximization problem, I suggest you change f = [1815;379] to f = -[1815;379]. That is to say, you solve the following problem instead
min: f(x)= - 1815x1 -379x2
subject to: -1475x1-112013x2 >= -700000
x1,,x2<=80
x1,x2>=0
There will only be a sign difference on the objective function. The optimal solutions x will be the same.
-Yu

댓글 수: 6

Gimpy
Gimpy 2014년 8월 11일
tried that option, still not working
Yu Jiang
Yu Jiang 2014년 8월 11일
What is the expected answer?
Gimpy
Gimpy 2014년 8월 11일
x1=40 and x2 =80
Gimpy
Gimpy 2014년 8월 11일
Excel results.
Yu Jiang
Yu Jiang 2014년 8월 11일
Hi Gimpy
The answer seems not correct, since -1475*40 -11203*80 = -955240 <=700000, meaning the first inequality constraint is not satisfied.
Also, linprog treats inequality constraints as "<=" by default, not ">=". So your A and b matrices should be A = [1475 11203] and b = 700000
-Yu
Gimpy
Gimpy 2014년 8월 11일
Yes after a double check I realized it's my model that was mispecification not the matlab function that I don't understand. My understanding was correct. thank you

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

태그

질문:

2014년 8월 11일

댓글:

2014년 8월 11일

Community Treasure Hunt

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

Start Hunting!

Translated by