Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Topic: how to plot a function subject to constraints.
Replies: 14   Last Post: Jan 7, 2013 1:15 PM

 Messages: [ Previous | Next ]
 Emrah Posts: 8 Registered: 12/30/12
Re: how to plot a function subject to constraints.
Posted: Jan 7, 2013 9:33 AM

> On Monday, January 7, 2013 9:25:09 AM UTC+13, Emrah wrote:
> > isn't there anyone to answer this?
>
> I don't see a question, just a statement of the problem, which looks awfully like homework.
> What have you tried?
> In what way did it not work?
> Show us the code you've developed so far.

ok mate, dont get angry :)
here is the code i have developed so far

function objFuncPlot
[x2, x3] = meshgrid(0.1:.1:10, 0.1:.1:10);
%x1 and x4 is constant
x1=0.1996;
x4=0.2107;
%calculating constraints
[g1,g2,g3,g4,g5,g6,g7]=constraints(x1,x2,x3,x4);
%objective function
f=1.10471.*x1^2.*x2+0.04811.*x3.*x4.*(14.0+x2);
%constraints are applied to f(x) (the problem point)
f=f*mod_neg_step(g1)*mod_neg_step(g2)*mod_neg_step(g3)*mod_neg_step(g4)...
*mod_neg_step(g5)*mod_neg_step(g6)*mod_neg_step(g7);
%plotting surf
surf(x2,x3,f,'LineStyle','none');
view(68,20)
hold on
plot3(4.7550, 9.3584, 1.988,'x','MarkerEdgeColor','b', ...
'MarkerSize',8); % best point
xlabel('x');ylabel('y');zlabel('z');
hold off

%Constraints & Constants & Equations
function [g1,g2,g3,g4,g5,g6,g7]=constraints(x1,x2,x3,x4)
P=6000;
L=14;
E=30.*10^6;
G=12.*10^6;
tau_max=13600;
sigma_max=30000;
delta_max=0.25;
M=P*(14+x2./2);
R=sqrt(x2^2./4+(x1+x3)^2./4);
J=2.*(x1.*x2.*sqrt(2).*(x2^2/12+(x1+x3)^2/4));
tau_one=P./(sqrt(2).*x1.*x2);
tau_two=(M.*R)./J;
tau=sqrt(tau_one^2+2.*tau_one.*tau_two.*x2./(2.*R)+tau_two^2);
sigma=(6.*P.*L)./(x4.*x3^2);
delta=(4.*P.*L^3)./(30.*10^6.*x4.*x3^3);
PcX=4.013.*E./L^2.*sqrt(x3^2.*x4^6./36).*(1-x3.*sqrt(E./(4.*G))./(2.*L));
g1=tau-tau_max;
g2=sigma-sigma_max;
g3=x1-x4;
g4=0.10471.*x1^2+0.04811.*x3.*x4.*(14+x2)-5.0;
g5=0.125-x1;
g6=delta-delta_max;
g7=P-PcX;
function H = mod_neg_step(argument)
H = zeros(size(argument));
H(argument<= 0) = 1;
H(argument> 0) = NaN;

My aim is to determine which type of optimization algorithm i have to use to solve this problem by checking the plot of the f(x) function. (local search or swarm or etc..) the answer is swarm and PSO is the best for this problem. but i have to show to my teacher the way how i discovered.

In my code, the problem is when I apply the penalty function to f(x), the plot returns none. also honestly i dont know if this is the true way. so i need something like a pseucode for the true way and have to know how to read the results.

Date Subject Author
12/30/12 Emrah
1/6/13 Emrah
1/6/13 Derek Goring
1/7/13 Emrah
1/7/13 Matt J
1/7/13 Emrah
1/7/13 Matt J
1/7/13 Emrah
1/7/13 Matt J
1/7/13 Emrah
1/7/13 Matt J
1/7/13 Emrah
1/7/13 Matt J
1/7/13 Matt J
1/7/13 Emrah