matlab GA函数的调用问题 20
这是函数f1functions=f1(x,y,z)s=0.5*x*y*sin(z+asin(y/x*sin(z)))+0.5*(1000-x)*y*sin(2*pi/3-...
这是函数f1
function s = f1( x,y,z )
s=0.5*x*y*sin(z+asin(y/x*sin(z)))+0.5*(1000-x)*y*sin(2*pi/3-z+asin((y/(1000-x))*sin(2*pi/3-z)));
end
然后在命令窗口:
clear all
>> A=[];b=[];lb=zeros(3,1);
ub=[1000;1000;2*pi/3];
[x,fval]=ga(@f1,3,A,b,[],[],lb,ub);
求问这时为什么错啊。。。感谢大神 展开
function s = f1( x,y,z )
s=0.5*x*y*sin(z+asin(y/x*sin(z)))+0.5*(1000-x)*y*sin(2*pi/3-z+asin((y/(1000-x))*sin(2*pi/3-z)));
end
然后在命令窗口:
clear all
>> A=[];b=[];lb=zeros(3,1);
ub=[1000;1000;2*pi/3];
[x,fval]=ga(@f1,3,A,b,[],[],lb,ub);
求问这时为什么错啊。。。感谢大神 展开
2个回答
展开全部
ga的自变量需要写成向量的形式
function s = f1( x )
s=0.5*x(1)*x(2)*sin(x(3)+asin(x(2)/x(1)*sin(x(3))))+0.5*(1000-x(1))*x(2)*sin(2*pi/3-x(3)+asin((x(2)/(1000-x(1)))*sin(2*pi/3-x(3))));
个人推荐使用句柄函数简化
f1=@(x)0.5*x(1)*x(2)*sin(x(3)+asin(x(2)/x(1)*sin(x(3))))+0.5*(1000-x(1))*x(2)*sin(2*pi/3-x(3)+asin((x(2)/(1000-x(1)))*sin(2*pi/3-x(3))));
function s = f1( x )
s=0.5*x(1)*x(2)*sin(x(3)+asin(x(2)/x(1)*sin(x(3))))+0.5*(1000-x(1))*x(2)*sin(2*pi/3-x(3)+asin((x(2)/(1000-x(1)))*sin(2*pi/3-x(3))));
个人推荐使用句柄函数简化
f1=@(x)0.5*x(1)*x(2)*sin(x(3)+asin(x(2)/x(1)*sin(x(3))))+0.5*(1000-x(1))*x(2)*sin(2*pi/3-x(3)+asin((x(2)/(1000-x(1)))*sin(2*pi/3-x(3))));
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询