llw1006 发表于 2008-11-18 19:21:03

用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 编辑 ]

wanglei5201118 发表于 2009-3-31 21:25:16

A(a,b,c)是关于a,b,c的变量,有没有具体的函数关系呢?你应该把这个说明白,大家才能帮助你啊
页: [1]
查看完整版本: 用matlab实现最大值最小化的优化问题