matlab实验加速步长法
实 验 报 告
实验名称: 加速步长法
院 (系): 机电学院
专业班级: 机械制造及其自动化
姓 名:
学 号:
2013年5 月13 日
实验一:加速步长法 实验日期:2013年 5 月 13 日
实验目的
了解MATLAB的基本运用
了解MATLB在优化中的使用
实验原理
加速步长法是利用试探来确定单谷函数的初始搜索区间。其主要思路是:从一点出发,按照一定的步长,试图确定出函数值呈现“高低高”规律的相邻三点。从一个方向试探搜索,如不成功,则沿反方向探索。如方向正确,则加大步长探索。直至最终三点x1x2x3,满足x1f(x2)
实验内容
加速步长法程序:
%加速步长计算空间
%x0输入初值
%h0输入步长
%fx所求函数
x1=x0;
k=0;
h=h0;
while 1 %循环求解
x4=x1+h;
k=k+1;
f4=f(x4);
f1=f(x1);
if f4
x2=x1;
x1=x4;
f2=f1;
f1=f4;
h=2*h;
else
if k==1 %更换方向
h=-h;
x2=x4;
f2=f4;
else
x3=x2;
x2=x1;
x1=x4;
break;
end
end
end
a=min(x1,x3); %输出区间
b=x1+x3-a;
函数程序:
function [zhi]= fx1(x) %2aê?oˉêy
zhi=x^3-x^2-2*x+1;
end
调用执行程序:
[a,b]=jiasu(@fx1,0,0.1)
执行结果:
a =
0.7000
b =
3.1000
实验小结
通过本实验了解了了matlab的基本操作方法,了解加速步长法的原理与基本运用