约束函数返回复数
function =myconfun(x)w=-(3*pi/4)+acos((x(4)^2+x(5)^2-(x(3)+((-x(1))^2+x(2)^2)^ (1/2))^2)/(2*x(4)*x(5)));
weq=[];
处错误,说约束条件必须返回时数
怎么回事
帮助看下该怎么改 w 究竟等于多少时出的错?
回复 楼主 hudu11111 的帖子
如果返回的是复数,acos后面的值超出了[-1,1]的范围,请检查一下x的取值是否合适。回复 板凳 friendchj 的帖子
目标函数可以随便给,在ga工具箱中输入下面的边界值就会出错,可是我把上下边界带入都不返回复数,是程序在优化时自动取到了一些数使结果为复数吗?A= ;
b=;
lb= ;
ub=;
回复 板凳 friendchj 的帖子
你好,按照你所说的约束acos后面的范围,我在w=【】里面直接约束的,这样还是不行,是不是在约束函数约束的条件不能对其他的约束条件起到作用回复 5楼 hudu11111 的帖子
没有ga工具箱,不太清楚,你可以对acos取实部,看看程序能正确运行吗回复 6楼 friendchj 的帖子
你好,不用功工具箱用ga命令也可以,我试了,确定是acos后面的问题,现在我的问题就是怎么对约束函数的表达式在进行约束,和他并列在一起写约束表达式好像还是不行啊 约束一般采用惩罚因子方法 几天没来,沉了好久了,仍未解决,自己顶起,希望多多帮忙
页:
[1]