用matlab的optimization工具箱遗传算法优化函数,被优化的函数和条件约束如下,请问为会有报错(图片)
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/10 19:34:32
用matlab的optimization工具箱遗传算法优化函数,被优化的函数和条件约束如下,请问为会有报错(图片)
以下是要优化的目标函数的m文件
function F=f1(x)
F=500*x(1)*sin(atan(x(5)/x(7))+acos((x(5)^2+x(7)^2+x(3)^2+x(4)^2-x(6)^2)/(2*sqrt((x(5)^2+x(7)^2)*(x(3)^2+x(4)^2))))-atan(x(3)/x(4))+acos((x(1)*cos(atan(x(5)/x(7))+acos((x(5)^2+x(7)^2+x(3)^2+x(4)^2-x(6)^2)/(2*sqrt((x(5)^2+x(7)^2)*(x(3)^2+x(4)^2))))-atan(x(3)/x(4)))+x(8)-x(9))/x(2)))/(3*sin(acos((x(1)*cos(atan(x(5)/x(7))+acos((x(5)^2+x(7)^2+x(3)^2+x(4)^2-x(6)^2)/(2*sqrt((x(5)^2+x(7)^2)*(x(3)^2+x(4)^2))))-atan(x(3)/x(4)))+x(8)-x(9))/x(2)))*sqrt(x(3)^2+x(4)^2-((x(3)^2+x(4)^2+x(6)^2-x(5)^2-x(7)^2)/(2*x(6)))^2));
end
以下是约束方程的m文件
function [c,ceq]=f2(x)
c=[];
ceq=x(1)*(sin(atan(x(5)/x(7))+acos((x(5)^2+x(7)^2+x(3)^2+x(4)^2-(1.492*x(6))^2)/(2*sqrt((x(5)^2+x(7)^2)*(x(3)^2+x(4)^2))))-atan(x(3)/x(4)))-sin(atan(x(5)/x(7))+acos((x(5)^2+x(7)^2+x(3)^2+x(4)^2-x(6)^2)/(2*sqrt((x(5)^2+x(7)^2)*(x(3)^2+x(4)^2))))-atan(x(3)/x(4))))+x(2)*(sin(acos((x(1)*cos(atan(x(5)/x(7))+acos((x(5)^2+x(7)^2+x(3)^2+x(4)^2-(1.492*x(6))^2)/(2*sqrt((x(5)^2+x(7)^2)*(x(3)^2+x(4)^2))))-atan(x(3)/x(4)))+x(8)-x(9))/x(2)))-sin(acos((x(1)*cos(atan(x(5)/x(7))+acos((x(5)^2+x(7)^2+x(3)^2+x(4)^2-x(6)^2)/(2*sqrt((x(5)^2+x(7)^2)*(x(3)^2+x(4)^2))))-atan(x(3)/x(4)))+x(8)-x(9))/x(2))))-471;
end
补充:我的函数和约束方程都是没问题的,肯定有相应的实数解满足约束方程,可偏偏提示“Constraint function must return real value”
以下是要优化的目标函数的m文件
function F=f1(x)
F=500*x(1)*sin(atan(x(5)/x(7))+acos((x(5)^2+x(7)^2+x(3)^2+x(4)^2-x(6)^2)/(2*sqrt((x(5)^2+x(7)^2)*(x(3)^2+x(4)^2))))-atan(x(3)/x(4))+acos((x(1)*cos(atan(x(5)/x(7))+acos((x(5)^2+x(7)^2+x(3)^2+x(4)^2-x(6)^2)/(2*sqrt((x(5)^2+x(7)^2)*(x(3)^2+x(4)^2))))-atan(x(3)/x(4)))+x(8)-x(9))/x(2)))/(3*sin(acos((x(1)*cos(atan(x(5)/x(7))+acos((x(5)^2+x(7)^2+x(3)^2+x(4)^2-x(6)^2)/(2*sqrt((x(5)^2+x(7)^2)*(x(3)^2+x(4)^2))))-atan(x(3)/x(4)))+x(8)-x(9))/x(2)))*sqrt(x(3)^2+x(4)^2-((x(3)^2+x(4)^2+x(6)^2-x(5)^2-x(7)^2)/(2*x(6)))^2));
end
以下是约束方程的m文件
function [c,ceq]=f2(x)
c=[];
ceq=x(1)*(sin(atan(x(5)/x(7))+acos((x(5)^2+x(7)^2+x(3)^2+x(4)^2-(1.492*x(6))^2)/(2*sqrt((x(5)^2+x(7)^2)*(x(3)^2+x(4)^2))))-atan(x(3)/x(4)))-sin(atan(x(5)/x(7))+acos((x(5)^2+x(7)^2+x(3)^2+x(4)^2-x(6)^2)/(2*sqrt((x(5)^2+x(7)^2)*(x(3)^2+x(4)^2))))-atan(x(3)/x(4))))+x(2)*(sin(acos((x(1)*cos(atan(x(5)/x(7))+acos((x(5)^2+x(7)^2+x(3)^2+x(4)^2-(1.492*x(6))^2)/(2*sqrt((x(5)^2+x(7)^2)*(x(3)^2+x(4)^2))))-atan(x(3)/x(4)))+x(8)-x(9))/x(2)))-sin(acos((x(1)*cos(atan(x(5)/x(7))+acos((x(5)^2+x(7)^2+x(3)^2+x(4)^2-x(6)^2)/(2*sqrt((x(5)^2+x(7)^2)*(x(3)^2+x(4)^2))))-atan(x(3)/x(4)))+x(8)-x(9))/x(2))))-471;
end
补充:我的函数和约束方程都是没问题的,肯定有相应的实数解满足约束方程,可偏偏提示“Constraint function must return real value”
你的约束函数有问题,x如果超出了反正切的默认范围,就会出现复数
此时你的程序就没办法通过复数的ceq进行计算了
再问: 我都强调了 函数肯定没问题 肯定有相应实数解
再答: 你强调是你的事情,但是你ceq确实有可能出现复数
此时你的程序就没办法通过复数的ceq进行计算了
再问: 我都强调了 函数肯定没问题 肯定有相应实数解
再答: 你强调是你的事情,但是你ceq确实有可能出现复数
用matlab的optimization工具箱遗传算法优化函数,被优化的函数和条件约束如下,请问为会有报错(图片)
用matlab的optimization工具箱遗传算法做函数优化问题:
matlab的遗传算法优化工具箱怎么用?
用matlab遗传算法解决函数优化问题
用matlab的optimization工具箱遗传算法,添加约束条件的问题.
matlab遗传算法工具箱函数的参数问题
运用MATLAB遗传算法工具箱求解非线性多目标优化问题,
各位谁擅长遗传算法呀,我这有个函数得用遗传算法编一下,进行最优化求解的过程,最好是用Matlab.
如何用Matlab求有限制条件的目标函数的最小值求解一个优化问题(目标函数非线性,约束函数线性)?
matlab 遗传算法优化 怎样处理变量约束
请问怎么不使用matlab的遗传算法工具箱用matlab遗传算法求极值?
matlab遗传算法工具箱里用的是哪种遗传算法