jintuifa.m
来自「黄金分割法」· M 代码 · 共 30 行
M
30 行
%单谷区间
%宋斌
%进退法求函数极小值
a0=5; %初始点的位置
h0=1.0e-5; %初识步长
c_jingdu=1.0e-6; %精度
x=a0;
h=h0;
f1=x^4-4*x^3-6*x^2-16*x+4; %计算f(a0)
x1=x+h;
f2=x1^4-4*x1^3-6*x1^2-16*x1+4; %计算f(a0+h0)
while(1)
if f2<=f1
f1=f2;
x=x+h;
f2=x^4-4*x^3-6*x^2-16*x+4; %如果f(a0)>f(a0+h0),则继续
else
if f2>=f1
if abs(h)<=c_jingdu
break
else
f1=f1;
h=-h/4;
x=x+h;
f2=x^4-4*x^3-6*x^2-16*x+4;%如果f(a0)<f(a0+h0),则反方向增加步长
end
end
end
end
x,f1
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?