Info
This question is closed. Reopen it to edit or answer.
Hello guys, please help me to solve the below mentioned prograame. it is not running
2 views (last 30 days)
Show older comments
D1=2;
D2=3;
D3=5;
Q1=4;
Q2=5;
Q3=6;
V1=4*Q1/(3.14*D1^2);
V2=4*Q2/(3.14*D2^2);
V3=4*Q3/(3.14*D3^2);
P1=5*D1^2;
P2=5*D2^2;
P3=0.5*D3^2;
if Vi<=10
Cpv=0;
else
for i=1:3
Cpv=(1/15)*(Vi^2-100);
end
end
%%%%
if Pj>=18
Cpp=0;
else
for j=1:3
Cpp=Cpp+18-Pj;
end
end
Comment on this Answer
Answers (2)
Image Analyst
on 19 Jan 2018
You need to define Vi and Pj. For example:
Vi = 5
Pj = 22
or whatever. If you do that, it runs.
7 Comments
Walter Roberson
on 20 Jan 2018
Your objective function is going to receive a vector of values in a single variable. Extract portions of that vector into variables inside the function. Use vectors and index them as needed.
Walter Roberson
on 20 Jan 2018
function cost = obj(x)
P = x(1:10) ;
V = x(11:18);
cost = sum((P-7).^2) + sum((V-100).^2) ;
6 Comments
Jan
on 22 Feb 2018
@adarsh: Do not let the expression "Q1,Q2,Q3, ..." confuse you. Later in the document Q is an array and an index is used: Q(1), Q(2), ... Using vectors is the right way to go.
This question is closed.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!