dimen.m

来自「线性规划 包括单纯形法」· M 代码 · 共 37 行

M
37
字号
%----------坐标轮换法----------%
function dimen = dimen(N)
S = eye(N);
dinum = 0;
J = 0;
delta = 1/10^6;
eps = 1/10^9;
x = zeros(N,N+1);%初始值
f_now = 10;
f_pre = 0;
while(abs(f_now - f_pre) >eps)
    f_pre = fun(x(:,N+1));
    x(:,1) = x(:,N+1);
    for i = 2:N+1
            x_try1 = x(:,i-1)+delta*S(:,i-1);
            f1 = fun(x_try1);
            if( f1 < fun(x(:,i-1)))
                [fmin xinla] = Golden([-1,1],x(:,i-1),S(:,i-1));
                x(:,i) = x(:,i-1) + xinla*S(:,i-1);
            else
                x_try2 = x(:,1)-delta*S(:,i-1);
                f2 = fun(x_try2);
                if (f2 < fun(x(:,i-1)))
                    [fmin xinla] = Golden([-1,1],x(:,i-1),-S(:,i-1));
                    x(:,i) = x(:,i-1) - xinla*S(:,i-1);
                else
                    x(:,i) = x(:,i-1);
                end
            end
      end
      f_now = fun(x(:,N+1));
end

x = x(:,N)'
fmin = f_now

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?