三点二次插值法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;
f2=fp;
else a1=ap; f1=fp; end end k=k+1 a=ap
ff=subs(f,x,ap) end