求二维数组最大值最小值所在位置2.定义一个二维数组\x05int[][] arra = {\x05\x05{1 ,3 ,

1个回答

  • 用Matlab!

    可以调用 fmincon函数.

    具体代码如下.

    function y = fmin(x )

    x11=x(1);x12=x(2);x13=x(3);y1=x(4);x21=x(5);x22=x(6);x23=x(7);y2=x(8);x31=x(9);x32=x(10);x33=x(11);y3=x(12);

    y=1.5.*x11+0.7.*x12+1.6.*x13+0.85.*y1+0.8.*x21+1.5.*x22+2.2.*x23+1.00.*y2+1.2.*x31+2.3.*x32+1.1.*x33+0.90.*y3;

    end %创建最小值函数

    function [c ceq] = mycon( x )

    c=0;

    ceq(1)=x(4).*(x(4)-1);

    ceq(2)=x(8).*(x(8)-1);

    ceq(3)=x(12).*(x(12)-1);

    end %创建非线性约束条件函数.

    >> A=[1 1 1 -1.7 0 0 0 0 0 0 0 0;0 0 0 0 1 1 1 -2.9 0 0 0 0;0 0 0 0 0 0 0 0 1 1 1 -2.1;-1 -1 -1 0 0 0 0 0 0 0 0 0;0 0 0 0 -1 -1 -1 0 0 0 0 0;0 0 0 0 0 0 0 0 -1 -1 -1 0];

    b=[0;0;0;-1.2;-0.8;-1.5]

    >> lb=zeros(1,12);

    >> x0=zeros(1,12);

    >> fmincon('fmin',x0,A,b,[],[],lb)

    结果如下.ans =

    0.2056 0.2056 0.2056 0 0.0722 0.0722 0.0722 0 0.3056

    0.3056 0.3056 0

    顺序是 x11,x12,x13,y1,x21,x22, .y3

    >> fmin(ans)

    ans =

    2.5119

    可能有点晚了.不过还是希望能够帮助你.

    若满意请采纳! ^.^