matlab实验二次插值法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
实验名称:二次插值法
院(系):机电学院
专业班级:机械制造及其自动化
姓名:
学号:
2013年5 月13 日
实验一:二次插值法实验日期:2013年5 月
13 日
一、实验目的
了解MATLAB的基本运用
了解MATLB在优化中的使用
二、实验原理
利用目标函数飞f(x)上极小点附近若干点的函数值构造一个与原函数相近的插函数平p(x),以插值函数的最优解作为目标函数的最优解的近似解。以插值函数平p(x)的极小点作为新的中间插入点,多次迭代,逐步缩小区间。
三、实验内容
二次插值法程序:
function [xmin,fmin]= erf(f,a0,b0,epsilon)
%二分法一维割搜索计算
%a0,b0初始区间
%fx2 测试函数
a=a0; %初始化
b=b0;
x1=a;f1=f(x1);
x3=b;f3=f(x3);
x2=0.5*(x1+x3);
f2=f(x2);
c1=(f3-f1)/(x3-x1);
c2=((f2-f1)/(x2-x1)-c1)/(x2-x3);
xp=0.5*(x1+x3-c1/c2);fp=f(xp);
while (abs(xp-x2)>=epsilon) %迭代求解
if x2 if f2>fp f1=f2;x1=x2; x2=xp;f2=fp; else f3=fp;x3=xp; end else if f2>fp f3=f2;x3=x2; f2=fp;x2=xp; else f1=fp;x2=xp; end end c1=(f3-f1)/(x3-x1); c2=((f2-f1)/(x2-x1)-c1)/(x2-x3); xp=0.5*(x1+x3-c1/c2); fp=f(xp); end if f2>fp %输出 xmin=xp;fmin=f(xp); else xmin=x2;fmin=f(x2); end end 函数程序: function [zhi]= fx3(x) %3²âÊÔº¯Êý zhi=exp(x)-2*x; end 调用执行程序: [xmin3,fmin3]=erf(@fx3,0,2,0.1) 执行结果: xmin3 = 0.6621 fmin3 = 0.6147 四、实验小结 通过本实验了解了了matlab的基本操作方法,了解二次插值法的原理与基本运用