实验1: 数学软件应用——插值拟合
实验目的
了解一维插值的基本原理,了解拉格朗日插值、线性插值、样条插值的基本思想;掌握用MATLAB计算三种一维插值的方法,并对结果作初步分析;通过实例学习如何用插值方法解决实际问题。
实验内容与步骤
在函数y=cos10x(-2≤x≤2)上取n个结点(n不要太大,如5~11),用拉格朗日,分段线性,三次样条三种插值方法,计算m个插值点的函数值(m要适中,如50 ~100),通过数值和图形输出,将三种插值结果与精确值比较。适当增加n,再作比较。
1、问题分析
插值本身是一种非常重要的方法。只利用某函数上较少的数据点,通过数学方法求出通过这些已知数据点的函数,即插值函数,进而可加密已知数据点,得到该函数上更多的数据点(近似)。
在本次实验中,将在函数
y=cos10x(-2≤x≤2)
上取5-11个点进行插值,得到插值函数,该函数是y=cos10x的一个逼近,作图考察其逼近误差。
2.MatLab求解
1. 取5个点时,点为
x
-2
-1
0
1
2
y
0.0002
0.0021
1.0000
0.0021
0.0002
进行分段线性、拉格朗日、三次样条三种插值,得到图形。
当n太小时,各种插值方法的准确性均不高。因此,我们有必要多取一些点,进行经一步研究。
其源程序为
%作y=cos(x)^10的图象
x0=linspace(-2,2,100);
y0=(cos(x0)).^10;
plot(x0,y0,'k');
title('一维插值');
text(x0(35),y0(35),'\leftarrow函数图象');
hold on;
n=5; %取5个点
x=linspace(-2,2,n);
y=(cos(x)).^10;
pause
%分段线性插值
h=linspace(-2,2,100);
t1=interp1(x,y,h);
plot(h,t1,':g');
text(h(33),t1(33)分段线性插值\rightarrow','HorizontalAlignment','right');
pause ;
%Language插值
X=zeros(n,n);
for i=1:n
for j=1:n
X(i,j)=x(i)^(n-j);
end
end
a=X\y';
a=a';
x2=linspace(-2,2,100);
t2=a(1)*x2.^4+a(2)*x2.^3+a(3)*x2.^2+a(4)*x2+a(5);
plot(x2,t2,'.y');
text(x2(15),t2(15),'\leftarrowLanguage插值');
pause
%三次样条插值
x3=linspace(-2,2,100);
t3=interp1(x,y,x3,'spline');
plot(x3,t3,'+r');
text(x3(85),t3(85),'三次样条插值\rightarrow','HorizontalAlignment','right');
hold off
2.取11个点时,点为
x
-2.000
-1.60
-1.20
-0.800
-0.400
0.0
0.400
0.800
1.200
1.60
2.0000
y
0.0002
0.000
0.000
0.0269
0.4394
1.0
0.4394
0.0269
0.000
0.000
0.0002
编程序得出图形 。就准确性而言,三次样条插值的准确性最高;在曲线部分,Language插值准确性较分段线性插值高;但在直线部分,分段线性插值准确性较高,而Language插值在边界附近发生振荡,与原函数相差太远,逼近误差大。
本文档为【数学软件应用——插值拟合】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。