用matlab的optimization工具箱遗传算法优化函数,被优化的函数和条件约束如下,请问为会有报错(图片)
用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”
最佳回答
你的约束函数有问题,x如果超出了反正切的默认范围,就会出现复数此时你的程序就没办法通过复数的ceq进行计算了 再问: 我都强调了 函数肯定没问题 肯定有相应实数解 再答: 你强调是你的事情,但是你ceq确实有可能出现复数
最新回答共有2条回答
-
2026-03-30 15:29:36朴素的冰淇淋
回复你的约束函数有问题,x如果超出了反正切的默认范围,就会出现复数此时你的程序就没办法通过复数的ceq进行计算了 再问: 我都强调了 函数肯定没问题 肯定有相应实数解 再答: 你强调是你的事情,但是你ceq确实有可能出现复数
热门文章
- 康达学院专转本五年制
- 高考一个考场分ab卷吗
- not only but also用法
- 某物体做自由落体运动,从释放开始计时,则物体在前2s内的平均速度为______m/s,物体下落2m时的速度大小为______m/s.
- 三角函数公式大全表格
- 地理中考必背知识点2022
- 2013-2014学年小学六年级科学上学期期末考试试卷及答案
- 人教版2014-2015学年小学五年级英语第二学期期中教学质量检测试卷及答案
- 【Linux驱动开发】设备树详解(二)设备树语法详解
- 别跟客户扯细节
- 在别的城市买房子能落户吗
- 卖房前要把装修贷还完吗
- 高中政治教学提高教学效果的方法探究
- “互联网+”背景下的初中英语课堂教学改革与创新策略研究
- 2022年终止合同范本
- 租房合同范本范文
- 如何挑选土豆
- 如何挑选土鸡
