How do I code for optimization of max volume of box?

7 views (last 30 days)
I want to perform an optimization to find the max volume for the box with the formulas V=w*h*l and w+h+l<=460. However, I have difficulties trying to make a line for optimization after the partial differentiation. This is what I have so far
syms V W H L
% the formula for volume of a box is;
V=W*H*L
% since the total sum of the width, W, height, H and length, L is equal to
% or lesser than 460cm;
W+H+L<=460
%rearrange for L in terms of W and H;
L=isolate(W+H+L==460,L)
%subsitute the formula for L into the formula for the volume of the box;
V=subs(V,lhs(L),rhs(L))
expand(V)
% to find maximum volume, differentiate V to the respect of W and H, and let dV/dW=0 and dV/dH=0;
dVdW=diff(V,W)==0
dVdH=diff(V,H)==0

Answers (1)

John D'Errico
John D'Errico on 26 May 2023
It would arguably be a good time to learn about something called Lagrange multipliers. They allow you to build constraints into an optimization problem. But I would also guess they are beyond your wage grade for now, so simplest is to do as you did, that is, assume the solution lies on the constraint plane. In that case, you essentially eliminated the variable L from the problem.
syms V W H L
% the formula for volume of a box is;
V=W*H*L
V = 
% the constraint plane
con = W+H+L == 460;
Lsol = solve(con,L)
Lsol = 
V = subs(V,L,Lsol)
V = 
L is now gone from this problem, though you will need it later. But now differentiate, and solve. We can differentiate by computing the gradient vector.
gradient(V)
ans = 
and then apply solve.
HWsol = solve(gradient(V),[H,W])
Finally, recover the value of L. Be careful though, because if any of those variables were less than zero in the final solution, it would suggest you have a problem.
  2 Comments
Nishaal
Nishaal on 26 May 2023
is there a reason it says
struct with fields:
H: [4×1 sym]
W: [4×1 sym]
when i input your code?
Torsten
Torsten on 26 May 2023
Edited: Torsten on 26 May 2023
You will have to exclude non-positive side lengths by looking closer at the solution.
The "solve" command will also give minimum instead of maximum volume solutions.
Add the lines
HWsol.H
HWsol.W
to your code and analyze the 4 solution pairs for H and W.

Sign in to comment.

Categories

Find more on Quadratic Programming and Cone Programming in Help Center and File Exchange

Products


Release

R2023a

Community Treasure Hunt

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

Start Hunting!