作业帮 > 综合 > 作业

黄金分割法matlab 我在-3到5的区间求 x^2+2x的最小值 下面程序哪错了?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/08/23 19:07:40
黄金分割法matlab 我在-3到5的区间求 x^2+2x的最小值 下面程序哪错了?
>> a=-3,b=5,e=0.0001,t=0.618;
>> u=b-a;
>> a1=b-t*u,f1=a1^2+2*a1;
>> a2=a+t*u,f2=a2^2+2*a2;
>> while u>e
if f1>f2
a=a1,a1=a2,f1=f2,a2=a+t*u,f2=a2^2+2*a2;
else b=a2,a2=a1,f2=f1,a1=b-t*u,f1=a1^2+2*a2;
end
u=b-a;
end
条件语句里的a2 = a + t * u和a1 = b - t * u有问题,这里的u还是上一次b-a的值,还没有更新呢.要么把u=b-a移到这之前,要么把系数修改成(1-t).