matlab遗传算法工具箱实例

ycfun1.m:

%适应度函数
function y=ycfun1(x);%x为行向量
c1=[2 3 1];
c2=[3 1 0];
y=c1*x'+c2*x'.^2; 
y=-y; %因为非线性约束中求的是min,所以加“—”号

ycfun2.m:

%非线性约束
function [f,g]=ycfun2(x);%x为行向量
f=[x(1)+2*x(1)^2+x(2)+2*x(2)^2+x(3)-10
    x(1)+x(1)^2+x(2)+x(2)^2-x(3)-50
    2*x(1)+x(1)^2+2*x(2)+x(3)-40];
g=x(1)^2+x(3)-2

main.m:

clc,clear;
a=[-1 -2 0;-1 0 0];%线性约束
b=[-1;0];%线性约束
[x,y]=ga(@ycfun1,3,a,b,[],[],[],[],@ycfun2);
x,y=-y  %令y=-y,输出x,y
posted @ 2021-10-06 09:34  py佐料  阅读(494)  评论(0编辑  收藏  举报