I show the coding program in 3-part
3 part – 1.multiobj, 2.Constraints, 3.main
1.multiobj.m
function y = multiobj(x,w1,w2)y(1)=0.7531*pi*(3^2-2.6^2)*(cos(0)*(0.5*x(1)*x(1)+x(1)*x(2)+x(1)*x(3)) + cos(80*(pi/180))*(0.5*x(2)*x(2)+x(2)*x(3)) + cos(-90*(pi/180))*0.5*x(3)*x(3));y(2) = -sqrt((cos(0)*cos(80*(pi/180))+ (cos(0)*(-sin(80*(pi/180))) + (x(2)*cos(0)*cos(80*(pi/180)))+ (x(1)*cos(0) + 20)))^2 ...+ ((-sin(80*(pi/180)))*(x(3)*cos(-90*(pi/180))) + -cos(80*(pi/180))*(x(3)*sin(-90*(pi/180))) + x(2)*(-sin(80*(pi/180))))^2 ...+ (((x(3)*sin(0)*cos(80*(pi/180))*cos(-90*(pi/180)) + x(3)*sin(0)*(-sin(80*(pi/180)))*sin(-90*(pi/180)) +x(2)*cos(80*(pi/180))*sin(0)+0)*(-cos(0)) +x(1)*sin(0)+20)^2) );y=w1*y(1)+w2*y(2);
2.Constraints.m
%%Constraints function
function [c, c_eq] = Constraints(x)c = [-100 + x(1) + x(2) + x(3) ; ((-sin(x(5)))*(x(3)*cos(x(6))) + (-cos(x(5))*(x(3)*sin(x(6))))+ x(2)*(-sin(x(5))))-5; x(1)-x(2); x(2)-x(3) ];c_eq = [ ];end
3.main.m
%%initial guess
x0=[10 20 35]; LB=[5 20 35]; UB=[15 35 50]; %%Initiallize counter j
j=1; %%for loop that changers the weights. Each iteration of the for loop produces one Pareto point
for i= 0:0.02:1 w1=i; w2=1-i; %calling fmincon and passing weights to multiobj and Constraints
[x,fval] = fmincon(@multiobj, x0, [], [], [], [], LB, UB, @Constraints); end %Plotting the Pareto frontier
plot(solx, soly,'*'); xlabel('Objective 1'); ylabel('Objective 2'); When I operating, shows 3 problems. But I cannot find solution. So I help you.
Thank you for Reading. Good day!!
Best Answer