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

4 ビュー (過去 30 日間)
Nishaal 2023 年 5 月 26 日
編集済み: Torsten 2023 年 5 月 26 日
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;

回答 (1 件)

John D'Errico
John D'Errico 2023 年 5 月 26 日
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 件のコメント
Torsten 2023 年 5 月 26 日
編集済み: Torsten 2023 年 5 月 26 日
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.



Help Center および File ExchangeSolver Outputs and Iterative Display についてさらに検索




Community Treasure Hunt

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

Start Hunting!

Translated by