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

7 vues (au cours des 30 derniers jours)
Nishaal le 26 Mai 2023
Modifié(e) : Torsten le 26 Mai 2023
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;
% since the total sum of the width, W, height, H and length, L is equal to
% or lesser than 460cm;
%rearrange for L in terms of W and H;
%subsitute the formula for L into the formula for the volume of the box;
% to find maximum volume, differentiate V to the respect of W and H, and let dV/dW=0 and dV/dH=0;

Réponses (1)

John D'Errico
John D'Errico le 26 Mai 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 = 
% 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.
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 commentaires
Torsten le 26 Mai 2023
Modifié(e) : Torsten le 26 Mai 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
to your code and analyze the 4 solution pairs for H and W.

Connectez-vous pour commenter.




Community Treasure Hunt

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

Start Hunting!

Translated by