现在想求一个多元函数,但是想加个限定条件,就是各个 变量的和为1,已有多元函数求极值的程序,但是不知道这个各个变量和为1的条件如何添加,请各位大侠赐教。(因为我实际做的时候并不是针对多元函数,而是有多个变量的过程,所以没有办法用ga函数)
多元函数求极值程序主要部分如下:
NIND=40; %个体数目(Number of individuals)
MAXGEN=50; %最大遗传代数(Maximum number of generations)
NVAR=2; %变量的维数
PRECI=25; %变量的二进制位数(Precision of variables)
GGAP=0.9; %代沟(Generation gap)
trace=zeros(MAXGEN,2); %寻优结果的初始值
FieldD=[rep([PRECI],[1,NVAR]);rep([-3;3],[1,NVAR]);rep([1;0;1;1],[1,NVAR])];%区域描述器(Build field descriptor)
Chrom=crtbp(NIND, NVAR*PRECI); %初始种群
gen=0; %代计数器
x=bs2rv(Chrom,FieldD); %初始种群的目标函数值
ObjV=Shubert(x(:,1),x(:,2)); %计算目标函数值
while gen
FitnV=ranking(ObjV);