声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1500|回复: 8

[工具箱] 约束函数返回复数

[复制链接]
发表于 2009-10-19 20:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
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=[];
处错误,说约束条件必须返回时数
怎么回事
帮助看下该怎么改
回复
分享到:

使用道具 举报

发表于 2009-10-19 20:23 | 显示全部楼层
w 究竟等于多少时出的错?
发表于 2009-10-19 23:42 | 显示全部楼层

回复 楼主 hudu11111 的帖子

如果返回的是复数,acos后面的值超出了[-1,1]的范围,请检查一下x的取值是否合适。

评分

1

查看全部评分

 楼主| 发表于 2009-10-20 13:18 | 显示全部楼层

回复 板凳 friendchj 的帖子

目标函数可以随便给,在ga工具箱中输入下面的边界值就会出错,可是我把上下边界带入都不返回复数,是程序在优化时自动取到了一些数使结果为复数吗?
A=[0 0 1 -1 0 0 0 0 0 0;0 0 1 0 -1 0 0 0 0 0] ;
b=[0;0];
lb=[150;150;100;100;200;1000;200;10;0;0] ;
ub=[600;900;340;950;500;2500;1500;200;pi/8;1.5];
 楼主| 发表于 2009-10-22 09:09 | 显示全部楼层

回复 板凳 friendchj 的帖子

你好,按照你所说的约束acos后面的范围,我在w=【】里面直接约束的,这样还是不行,是不是在约束函数约束的条件不能对其他的约束条件起到作用
发表于 2009-10-22 13:08 | 显示全部楼层

回复 5楼 hudu11111 的帖子

没有ga工具箱,不太清楚,你可以对acos取实部,看看程序能正确运行吗
 楼主| 发表于 2009-10-23 09:11 | 显示全部楼层

回复 6楼 friendchj 的帖子

你好,不用功工具箱用ga命令也可以,我试了,确定是acos后面的问题,现在我的问题就是怎么对约束函数的表达式在进行约束,和他并列在一起写约束表达式好像还是不行啊
发表于 2009-10-23 09:50 | 显示全部楼层
约束一般采用惩罚因子方法
 楼主| 发表于 2009-10-27 20:00 | 显示全部楼层
几天没来,沉了好久了,仍未解决,自己顶起,希望多多帮忙
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-16 22:29 , Processed in 0.073912 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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