Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2008-08-20, 02:20   #3
pslpsl
普通会员
 
注册日期: 2008-08-17
年龄: 36
帖子: 70
声望力: 20
pslpsl 是一个将要出名的人pslpsl 是一个将要出名的人
默认 回复: [求助]帮忙解决一个约束问题

当 x1+x2>=Max 时 对适应度值进行惩罚


代码:
    for s=1:1:M
    N=G(s,:);
    y1=0;y2=0;
    N1=N(1:1:CL); %对x1进行解码,
        for i=1:1:CL 
        y1=y1+N1(i)*2^(i-1);
        end
    x1=(Max-Min)*y1/(2^CL-1)+Min;
    x1_G(k)=x1; %为了便于最后图形输出,而引进的类似指针型变量
    N2=N(CL+1:1:2*CL); %对x2进行解码
        for i=1:1:CL
        y2=y2+N2(i)*2^(i-1);
        end
    x2=(Max-Min)*y2/(2^CL-1)+Min; 
    x2_G(k)=x2; %为了便于最后图形输出,而引进的类似指针型变量
    F(s)=814.1*(x2+10)^2/(x1+x2+10)+1456.38*(x2+10)/(x1+x2+10)-19173154*x1/(x1+x2+10)^2+531.675*(x1+10)^2/(x1+x2+10)+956.25*(x1+10)/(x1+x2+10)- 12831767*x2/(x1+x2+10)^2; %目标函数表达式
    %%%%%%%%%%%%%%
        if(x1+x2>=Max)
            F(s)=F(s)-99999;
        end
    %F(s)=x1.^2+x2.^2;
    end

在目标函数表达式后加入
代码:
        if(x1+x2>=Max)
            F(s)=F(s)-99999;
        end
即可
pslpsl 当前离线   回复时引用此帖
 

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
[分享]很好的GUI开发经验 dishengpiao MATLAB论坛 136 2020-04-05 07:16
[求助]请问simulink仿真有没有两个输入两个输出的运算放大器? seasky MATLAB论坛 0 2008-04-21 16:34
【求助】Laplace 滤波 s7401543 MATLAB论坛 0 2008-02-13 08:37
【讨论】Matlab动态显示的问题讨论 tqr591513792 MATLAB论坛 0 2007-12-20 14:50
【文章】仿真动画软件设计作品--电路开闭 yesman MATLAB论坛 0 2007-12-11 16:21


所有时间均为北京时间。现在的时间是 12:25


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.