📄 dimen.m
字号:
%----------坐标轮换法----------%
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -