找回密码
 注册
Simdroid-非首页
查看: 92|回复: 2

ga(遗传算法)优化计算中,计算结果显示“返回非实数”(return real value.)

[复制链接]
发表于 2009-10-21 08:38:29 | 显示全部楼层 |阅读模式 来自 河北唐山
本帖最后由 messenger 于 2009-10-26 23:08 编辑

帮忙看下这个,谢谢
function [w,weq]=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=[];
可以随便输入一个目标函数;
在ga中显示约束条件必须返回实数(Constraint function must return real value.),请帮忙解决下
发表于 2009-10-21 15:46:35 | 显示全部楼层 来自 浙江杭州
Simdroid开发平台
试了一下,当x=[1 0 0 0 0]时,
>> isreal((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))))
ans=0
所以,你这个问题应该是Matlab运算返回了的非实数标志,还是要注意优化参数的取值范围,不能取值使表达式无意义。

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2009-10-22 08:47:49 | 显示全部楼层 来自 河北唐山
你好,我的这个表达式是根据三角形余弦定理设定角度的范围,因为它本身就是约束条件,怎么对他在进行约束?我试了试直接约束acos后面的范围是【-1,1】还是出错,matlab里面能对约束条件在进行约束吗?另外是对目标函数优化,即使限定了各个x的范围,也有可能在软件随即取值时出现不合理的x值匹配把?
谢谢 2# messenger
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-7 05:20 , Processed in 0.037661 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表