《在Matlab上利用斐波那契法求函数的极值.docx》由会员分享,可在线阅读,更多相关《在Matlab上利用斐波那契法求函数的极值.docx(2页珍藏版)》请在第一文库网上搜索。
1、试用斐波那契法求函数/(%)=%2一6久+2在区间0,10上的极小点,要求缩短后的区间长度不大于原区间长度的0.8%O程序:c1eara11;c1osea11;c1c;f=(x)x.2-6*x+2;x,fx,a,b=Fabonacci(f,010,1e-9);disp(当X=Irmin2str(x),时达到极小值,极小值为InUm2str(fx),。);disp(缩短后的区间长度为Inum2str(b-a),3小于原区间长度的0.8舍。);functionx,resu1t,a,b=Fabonacci(f,x,de1ta)x3=x(2);x=x(1);F=11;n=3;whi1eF(end)3iff(x1)f(x2)n=n-1;x=x1;x1=x2;x2=x+F(n-1)/F(n)*(x3-x);e1sen=n-1;x3=x2;x2=x1;x1=x+F(n-2)/F(n)*(x3-x);endendx=(x+x3)/2;resu1t=f(x);a=x;b=x3;end结果:当x=3时达到极小值,极小值为-7。缩短后的区间长度为1.589e-09,小于原区间长度的0.8名。