数值计算课程设计报告(插值法)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数值计算方法
课程设计报告
课程设计名称:数值计算方法
课程设计题目:插值算法
年级专业:信计1302班
组员姓名学号:高育坤 43
王冬妮 44
韩建 46
李婧 47
指导教师:刘丽华
完成时间: 2015年6月17日
插值算法
一、问题提出
插值法是实用的数值方法,是函数逼近的重要方法。在生产和科学实验中,自变量x与因变量y的函数y = f(x)的关系式有时不能直接写出表达式,而只能得到函数在若干个点的函数值或导数值。当要求知道观测点之外的函数值时,需要估计函数值在该点的值。
如何根据观测点的值,构造一个比较简单的函数y=φ(x),使函数在观测点的值等于已知的数值或导数值,进而用简单函数y=φ(x)在点x处的值来估计未知函数y=f(x)在x点的值。寻找这样的函数φ(x),办法是很多的。φ(x)可以是一个代数多项式,或是三角多项式,也可以是有理分式;φ(x)可以是任意光滑(任意阶导数连续)的函数或是分段函数;函数类的不同,自然地有不同的逼近效果。
二、背景分析
在许多实际问题及科学研究中,因素之间往往存在着函数关系,然而,这种关系经常很难有明显的解析表达,通常只是由观察与测试得到一些离散数值。有时,即使给出了解析表达式,却由于表达式过于复杂,不仅使用不便,而且不易于进行计算与理论分析。解决这类问题的方法有两种:一种是插值法插值法,另一种是一拟合法。插值法是一种古老的数学方法,它来自生产实践,早在一千多年前,我国科学家在研究历法上就应用了线性插值与二次插值,但它的基本理论却是在微积分产生之后才逐渐完善的,其应用也日益增多,特别是在计算机软件中,许多库函数,如 ,cos,sin
ex 等的计算实际上归结于它的逼近函数的计算。逼近函数一般为只含有算术运算的简单函数,如多项式、有理分式(即多项式的商)。在工程实际问题当中,我们也经常会碰到诸如此类的函数值计算问题。被计算的函数有时不容易直接计算,如表达式过于复杂或者只能通过某种手段获取该函数在某些点处的函数值信息或者导数值信息等。因此,我们希望能用一个“简单函数”逼近被计算函数,然后用该简单函数的函数值近似替代被计算函数的函数值。这种方法就叫插值逼近或者插值法。插值法要求给出函数f(x)的一个函数表,然后选定一种简单的函数形式,比如多项式、分段线性函数及三角多项式等,通过已知的函数表来确定一个简单的函数作为f(x)的近似,概括地说,就是用简单函数为离散数组建立连续模型。
三、基本算法思想与实现
x 1
x n
x 0
y 1
y
已知1+n 个数据节点:
,,,...2,1,0),,(不相同其中j j j x n j y x =b x x x a n =<<<=...10不妨设构造一个
(相对简单)函数)(x f y =(称为插值函数),通过全部结点即
j j y x f =)((j =0,1,…n )再用)(x f 计算插值,即**)(y x f =
数学上插值方法非常多,这里介绍几种常用方法: 1·Lagrange 插值函数
Lagrange 插值函数的基本思想:将待求的n 次插值多项式()n P x 写成另一种表达方,式再利用插值
条件()i i y f x = (0,1,2...)i =确定出插值基函()i l x 由基函数条件()1i i l x =,确定多项式系数,进而可得插值函数()n P x .
(1)已知0011(),()f x y f x y ==,求满足条件的插值函数。
由题可知()y f x =表示过两点0011(,),(,)x y x y 的直线,这个问题是我们所熟悉的,它的解可表为下列对称式
01
010110
x x x x y y y x x x x --=
+--
此类一次插值称为线性插值,若令
01
010110(),()x x x x l x l x x x x x --=
=--
(由此可得:
00011110()1,()0,()1,()0
l x l x l x l x ====))
则有
10011
()()()P x l x y l x y =+
这里的
01(),()
l x l x 可以看作是满足条件
00011110()1,()0
()1,()0l x l x l x l x ====的插值多项式,这两个特殊的插值多项
式称作上述问题的插值基函数。
(2)求过三点
001122(,),(,),(,)
x y x y x y 的插值函数。
为了得到插值多项式先解决一个特殊的二次插值问题。
求作二次式
0()
l x ,使满足
000102()1,()()0
l x l x l x === (2-1)
这个问题是容易求解的,由式(2-1)的后两个条件知12
,x x 是
0()
l x 的两个零点,
因而
012()()()
l x c x x x x =-- 。再用条件
00()1
l x =确定系数c .
结果得 :
1200102()()()()()x x x x l x x x x x --=
--
类似可以分别构造出满足条件
111012222021()1,()()0
()1,()()0l x l x l x l x l x l x ======的插值多项式12(),()l x l x ;
其表达式分别为
0211012()()()()()x x x x l x x x x x --=
--,0122021()()
()()()x x x x l x x x x x --=
--
这样构造出的
012(),(),()l x l x l x 称作问题(2)的插值基函数。
设取已知数据012
,,y y y 作为组合系数,将插值基函数
012(),(),()
l x l x l x 组合得
2001122
()()()()P x l x y l x y l x y =++
020112012
010*********()()()()()()
()()()()()()x x x x x x x x x x x x y y y x x x x x x x x x x x x ------=
++------
验证可知,这样构造的
2()
P x 满足已知条件,因而它就是问题(2)的解。