📄 0.618.m
字号:
a=-1;b=1;epsilon=0.16;
s=a+0.382*(b-a);
t=a+0.618*(b-a);
for times=0:1000
if b-a<epsilon
answer=(b+a)/2;
break;
else
if f(s)>f(t)
a=s;s=t;
t=a+0.618*(b-a);
else
b=t;t=s;
s=a+0.382*(b-a);
end
end
end
fprintf('经过%d次迭代,满足精度要求,问题的最优解为%f',times,answer);
clear a b epsilon s t times answer
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -