一维搜索进退法
function f=getvalue(t)
f=t^3-2*t+1;
function [a,b]=myfun(t,h,alpha)
t0=t;
k=0;
fi0=getvalue(t0);
for count=1:1:100
t1=t0+h;
fi1=getvalue(t1);
if(fi1<fi0)
h=alpha*h;
t=t0;
t0=t1;
fi0=fi1;
k=k+1;
else
if(k~=0)
if(t>t1)
a=t1;
b=t;
else
a=t;
b=t1;
end
break;
else
h=-h;
t=t1;
end
end
end
结果:
>> [a,b]=myfun(0,1,2)
a=0,b=3
黄金分割法
function [value,a,b]=myfun(m,n,alpha)
tao=0.618;
ephsilo=alpha;
a=m;
k=0;
b=n;
lamenda=a+(1-tao)*(b-a);

这篇博客介绍了几种一维优化方法的实现,包括进退法、黄金分割法、牛顿法、阻尼牛顿法、共轭梯度法和最速下降法,并通过具体示例展示了它们的使用过程和结果。
最低0.47元/天 解锁文章
1594

被折叠的 条评论
为什么被折叠?



