《确定搜索区间》由会员分享,可在线阅读,更多相关《确定搜索区间(4页珍藏版)》请在金锄头文库上搜索。
1、一、算法理论对于初始区间的确定,可以采用以下方式。首先取一初始点,若,则在其右方取点;若,则令,;若仍有,则继续取点;若则以作为区间,否则继续做下去。对于的情况,则做类似于的情况去讨论。但是由于导数在计算过程中比较繁琐,我们也采用类似的方法找出,使其满足且便可得到含有极小点的区间,只需要比较函数值,而无需计算这样便简化了程序的设计。二、算法框图三、算法程序1、 源代码为:function y=f(x) y=6*x+6; 将文件命名为f.c2、程序主代码如下,该函数文件保存为d.mclear;a=input(请输入初始点);b=input(请输入初始步长);Y1=f(a); Y2=0;if Y1
2、0 k=1; Y3=f(a-k*b); while Y2Y3 k=k+1; Y3=f(a-k*b); end if Y30 A=a-k*b;B=a-(k-1)*b; else A=a-k*b;B=a-k*b; endelseif Y1Y3 k=k+1; Y3=f(a+k*b); end if Y30 A=a+(k-1)*b;B=a+k*b; else A=a+k*b;B=a+k*b; endelse A=a;B=a; endif AB disp(初始搜索区间为,num2str(A,B) else disp(极小值点是)Aend四、算法实现计算的极小点所在的搜索区间解:1、通过求导可知在matlab软件函数编辑器里面输入代码function y=f(x)y=6*x+6; 将其命名为f.m2、在命令窗口中输入保存好的程序文件命d,按下回车键3、给出初始点,这里以-2为例,按下回车键4、给出步长(要求大于0)0.3,回车5、如果出现导数得0的情况,则直接得到极小点