Azzera filtri
Azzera filtri

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

4 visualizzazioni (ultimi 30 giorni)
Nishaal
Nishaal il 26 Mag 2023
Modificato: Torsten il 26 Mag 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;
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

Risposte (1)

John D'Errico
John D'Errico il 26 Mag 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 Commenti
Nishaal
Nishaal il 26 Mag 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 il 26 Mag 2023
Modificato: Torsten il 26 Mag 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.

Accedi per commentare.

Categorie

Scopri di più su Quadratic Programming and Cone Programming in Help Center e File Exchange

Prodotti


Release

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by