文档介绍:MATLAB插值与拟合实验报告
LT
****班**号 ***
7
MATLAB实验报告
题目:
第二次实验报告
学生姓名:
学院:
专业班级:
学号:
****班**号 ***
1
年月
MATLAB第二次实验报告
————插值与拟合
插值即在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。
所谓拟合是指已知某函数的若干离散函数值{f1,f2,…,fn}通过调整该函数中若干待定系数f(λ1, λ2,…,λn),使得该函数与已知点集的差别(最小二乘意义)最小。
****班**号 ***
2
一、插值
<1>拉格朗日插值(课上例子)
m=101;
x=-5:10/(m-1):5;
y=1./(1+x.^2);z=0*x;
plot(x,z,'r',x,y,'LineWidth',),
gtext('y=1/(1+x^2)'),pause
n=3;
x0=-5:10/(n-1):5;
y0=1./(1+x0.^2);
y1=fLagrange(x0,y0,x);
hold on,plot(x,y1,'b'),gtext('n=2'),pause,
hold off
****班**号 ***
3
n=5;
x0=-5:10/(n-1):5;
y0=1./(1+x0.^2);
y2=fLagrange(x0,y0,x);
hold on,plot(x,y2,'b:'),gtext('n=4'),pause,
hold off
n=7;
x0=-5:10/(n-1):5;
y0=1./(1+x0.^2);
y3=fLagrange(x0,y0,x);hold on,
plot(x,y3,'r'),gtext('n=6'),pause,
hold off
n=9;
****班**号 ***
4
x0=-5:10/(n-1):5;
y0=1./(1+x0.^2);
y4=fLagrange(x0,y0,x);hold on,
plot(x,y4,'r:'),gtext('n=8'),pause,
hold off
n=11;
x0=-5:10/(n-1):5;
y0=1./(1+x0.^2);
y5=fLagrange(x0,y0,x);hold on,
plot(x,y5,'m'),gtext('n=10')
运行后得
****班**号 ***
5
<2>拉格朗日插值(课下修改)
function yh=lagrange (x,y,xh)
n = length(x);
m = length(xh);
yh = zeros(1,m);
c1 = ones(n-1,1);
c2 = ones(1,m);
for i=1:n
xp = x([1:i-1 i+1:n]);
yh = yh + y(i)*prod((c1*xh-xp'*c2)./(x(i)-xp'*c2));
****班**号 ***
6
end
输入
x=[1 2 3 4 5 6]
y=[13 21 34 6 108 217]
xh=
lagrange(x,y,xh)
运行后得
x =
1 2 3 4 5 6
y =
13 21 34 6 108 217
****班**号 ***
7
xh =
ans =
****班**号 ***
7