三点二次插值法Matlab实现
实验目的:
1、通过本次实验了解线性搜索,加深对三点二次插值法的理解
2、根据三点二次插值法的算法步骤编写相应的Matlab程序,并利用matlab 程序计算求解最优化问题
实验要求:
1、学习MATLAB编写三点二次插值法的程序设计方法。
2、对问题进行编程和解决问题。
3、按照格式规范,撰写计算机实践报告。
实验答案:
3. function chazhifa
syms x; %定义
f=x^3-2*x+1; %目标函数
a1=0; a2=1; a3=3; %插值区间
k=0;
while (abs(a3-a1)>0.01)
f1=subs(f,x,a1);
f2=subs(f,x,a2);
f3=subs(f,x,a3);
C1= (a2-a3)*f1+(a3-a1)*f2+(a1-a2)*f3;
ap= 0.5*((a2^2-a3^2)*f1+(a3^2-a1^2)*f2+(a1^2-a2^2)*f3)/C1;
fp=subs(f,x,ap);
if ap>a2
if f2>=fp
a1=a2;
f1=f2;
a2=ap;
f2=fp;
else
a3=ap;
f3=fp;
end
else
if f2>=fp
a3=a2;
f3=f2;
a2=ap;