N = 8;
wmin = .1; wmax = 100;
hmin = .1; hmax = 6;
Smin = 1/5; Smax = 5;
sigma_max = 1;
ymax = 10;
E = 1; F = 1;
cvx_begin gp
variables w(N) h(N)
v = cvx( zeros(N+1,1) );
y = cvx( zeros(N+1,1) );
for i = N:-1:1
fprintf(1,'Building recursive relations for index: %d\n',i);
v(i) = 12*(i-1/2)*F/(E*w(i)*h(i)^3) + v(i+1);
y(i) = 6*(i-1/3)*F/(E*w(i)*h(i)^3) + v(i+1) + y(i+1);
end
minimize( w'*h )
subject to
wmin <= w <= wmax;
hmin <= h <= hmax;
Smin <= h./w <= Smax;
6*F*[1:N]'./(w.*(h.^2)) <= sigma_max;
y(1) <= ymax;
cvx_end
disp('The optimal widths and heights are: ');
w, h
fprintf(1,'The optimal minimum volume of the beam is %3.4f.\n', sum(w.*h))
figure, clf
cantilever_beam_plot([h; w])
Building recursive relations for index: 8
Building recursive relations for index: 7
Building recursive relations for index: 6
Building recursive relations for index: 5
Building recursive relations for index: 4
Building recursive relations for index: 3
Building recursive relations for index: 2
Building recursive relations for index: 1
Successive approximation method to be employed.
sedumi will be called several times to refine the solution.
Original size: 127 variables, 88 equality constraints
23 exponentials add 184 variables, 115 equality constraints
-----------------------------------------------------------------
Cones | Errors |
Mov/Act | Centering Exp cone Poly cone | Status
--------+---------------------------------+---------
8/ 8 | 2.949e+00 6.560e-01 7.202e-08 | Solved
8/ 8 | 2.417e-01 4.179e-03 1.569e-07 | Solved
8/ 8 | 1.641e-02 1.922e-05 1.253e-08 | Solved
8/ 8 | 1.033e-03 8.954e-08 1.041e-08 | Solved
0/ 8 | 6.465e-05 1.084e-08 1.031e-08 | Solved
-----------------------------------------------------------------
Status: Solved
Optimal value (cvx_optval): +40.9668
The optimal widths and heights are:
w =
0.6214
0.7830
0.8963
0.9865
1.0627
1.1292
1.1888
1.3333
h =
3.1072
3.9149
4.4814
4.9324
5.3133
5.6462
5.9439
6.0000
The optimal minimum volume of the beam is 40.9668.