用matlab实现最大值最小化的优化问题
本帖最后由 ljelly 于 2009-4-1 09:06 编辑题设:A(a,b,c)是关于a,b,c的变量,b,c的范围均在【0,1】之间 ,a在【amin,amax】之间,对于一组b,c的取值在a的区间上都有条曲线,通过改变b,c的取值得到一系列的曲线中,
要求:得到的A的极值最大,并且曲线和横坐标围成的面积最小,
求出:满足此条件下的b,c的特定值。
本人编写了一组程序,但是始终不对,请高手指点下,谢谢
k=1
for c= minc:numc:maxc
j = 1;
for b = minb:numb:maxb
i = 1;
fora = mina:numa:maxa
A(i) = (A_numer/A_denom)^0.5;
Area(i) = A(i)*numa;
i = i+1;
end
o = 1;
for n = 1:(maxa-mina)/numa-1
if (A(n+1)>A(n))&&(A(n+1)>A(n+2))
AA(j,o) = A(n+1);
elseif (A(n+1)<A(n))||(A(n+1)<A(n+2))
AA(j,o) = 0;
o = o+1;
end
end
totleArea = sum(Area);
Ab(j) = sum(AA(j,:))+totleArea;
j = j+1;
end
= min(Ab);
findb(k) = minb+numb*(Nb-1);
k = k+1;
end
= min(Abc);
finalb = finde(Nb);
finalc = minc+numc*(Nc-1);
[ 本帖最后由 bainhome 于 2008-11-18 20:32 编辑 ] A(a,b,c)是关于a,b,c的变量,有没有具体的函数关系呢?你应该把这个说明白,大家才能帮助你啊
页:
[1]