📄 f618.asv
字号:
function [x,minf]=f618(precision,t0,h);
%用黄金分割法进行优化
%初始区间为a,b,相对精度precision 即为原始区间的几分之几,t0为初始值,h为步长
%初始化变量,其中初始步长系数为2,初始区间由进退法求的,每次区间缩短后的两端用 An,Bn表示,n为迭代次数
c=2;
[a,b]=areafind(t0,h,c);
An=a;
Bn=b;
n=1;
tic %主体程序运行时间
while 0.618^(n-1)>=precision | n>100000 %当精度满足或则迭代次数大于100000时停止算法
A=0.382.*(Bn-An)+An;
B=0.618.*(Bn-An)+An;
if g(A)<g(B)
Bn=B;
else
An=A;
end
n=n+1;
end
toc
x=(An+Bn)/2
minf=g(x)
%画出函数图像进行对比
fplot('x^4-2*x+4',[0,2,2.5,4]);
hold on
scatter(x,g(x),8,'r');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -