📄 opt11.m
字号:
% 最优化作业 第十一章 模式搜索法
% 08203-5班 王永亮 2008200383
clc;
clear all;
delta = 1; alpha = 1; beta = 0.25; epsilon = 0.11;
k = 1; j = 1;
e1 = [1 0]'; e2 = [0 1]';
% x1 = [0 0]'; %(1)
beta = 0.5; x1 = [1 1]'; %(2)
y1 = x1;
for i = 1 : 1 : 20
fy1 = myfx(y1)
p = y1 + delta * e1; fx = myfx(p)
if fx < fy1
disp('沿 y1 + delta * e1 方向成功!');
y2 = p
else
disp('沿 y1 + delta * e1 方向失败!');
p = y1 - delta * e1; fx = myfx(p)
if fx < fy1
disp('沿 y1 - delta * e1 方向成功!');
y2 = p
else
disp('沿 y1 - delta * e1 方向失败!');
y2 = y1
end
end
fy2 = myfx(y2)
p = y2 + delta * e2; fx = myfx(p)
if fx < fy2
disp('沿 y2 + delta * e2 方向成功!');
y3 = p
else
disp('沿 y2 + delta * e2 方向失败!');
p = y2 - delta * e2; fx = myfx(p)
if fx < fy2
disp('沿 y2 - delta * e2 方向成功!');
y3 = p
else
disp('沿 y2 - delta * e2 方向失败!');
y3 = y2
end
end
x0 = x1;
if myfx(y3) < myfx(x1)
disp('f(y3) < f(x?)');
x1 = y3
y1 = x1 + alpha * (x1 - x0)
else
disp('f(y3) >= f(x?)');
if delta <= epsilon
disp('delta <= epsilon');
x1
break;
else
disp('delta > epsilon');
delta = beta * delta
y1 = x0
x1 = x0
end
end
C = input('Continue?');
if C == 0
break;
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -