필터 지우기
필터 지우기

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

조회 수: 4 (최근 30일)
Nishaal
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;
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

답변 (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=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
Nishaal
Nishaal 2023년 5월 26일
is there a reason it says
struct with fields:
H: [4×1 sym]
W: [4×1 sym]
when i input your code?
Torsten
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
HWsol.H
HWsol.W
to your code and analyze the 4 solution pairs for H and W.

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

카테고리

Help CenterFile Exchange에서 Quadratic Programming and Cone Programming에 대해 자세히 알아보기

제품


릴리스

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by