三次样条插值实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三次样条插值
实验报告
专业
班级
学号
姓名
一、 实验内容和要求
1、阅读上面的文字和程序,试运行,检验程序和上面叙述的正确性。
2、阅读上面的 MATLAB 程序;查资料,了解各 MATLAB 语句及命令。
3、画程序流程图,理解并描述算法。
4、修改上面的程序,能根据给定数据点,求
(1)自然样条插值,边界 S ′′(a )=0, S ′′(b )=0 (2)第二类边界条件,S ′′(a )和S ′′(b )是确定的。
5、使用上面的程序,根据数据点(0,1),(1,0),(2,0),(3,1),(4,2), (5,2),和(6,1),求三种不同的三次样条插值,其中S ′(0)=−0.6,S ′(6)=-1.8,S ′′(0)=1,S ′′(6)=−1;S ′′(0),S ′′(6)=0.在同一坐标系中,画出这 3 个三次样条插值和这些数据点。
6、写实验报告(实验内容+算法描述+程序+写成分段函数的结果描述+截图)。
二、 算法说明
定义:设有N+1个点 ,其中 。如果存在
N 个三次多项式 ,
系数为 ,满足如下性质: (1)
(2)
01n a x x x b =<<<=()k S x 1[,],0,1,
,1
k k x x x k N +∈=-0
[,]N
k k k x y =,0,1,2,3(),(),(),()k k k k S x S x S x S x 2
3
,0,1,2,3()S ()()()()k k k k k k k k S x x s s x x s x x s x x ==+-+-+-()k k S x y =0,1,,k N =
(3)
则称函数 为三次样条函数。
因为
是分段三次多项式,所以 在区间 上是分段线性的。
(1)
用 代入上式,可得
(2)
将(2)式积分两次,会引入两个积分常数,并得到
(3) 将 代入上(3),并使用 ,可
分别得到包含
的方程: (4)
求解这两个方程,求出 ,而且将这些值代入方程(3)中,
可得到三次多项式方程:
(5)
表达式5可以简化成只包含未知系数
的形式。 为求这些值,必须使用(5)式的导数,即
(6) 1
lim ()lim ()k
k
k k x x x x S x S x +--→→=1,2,,1k n =-1lim ()lim ()k
k
k
k x x x x S x S x +--→→''=1,2,,1k n =-1lim ()lim ()k
k
k
k x x x x S x S x +--→→''''=1,2,
,1
k n =-()S x 1111()S (x )S (x )
k k
k
k k k k k k x x x x S x x x x x ++++--''''''=+--()S x ()S x ''[,]a b 1
1
1
(),()k
k
k k k
k k
M S x M S x h x x +++''''===-和11
()M k k
k
k k k k x x x x S x M h h ++--''=+1,0,1,
, 1.
k k x x x k N +≤≤=-33111()()()()()66k k k k k k k k k k
k
M
M S x x x x x p x x q x x h h +++=-+-+-+-1,k k x x +和+1+1()()k k k k k k S x y S x y ==和k k p q 和2211,6
6
k k k k k k k k k k M M y h p h y h q h ++=+=+k k p q 和3311111()()()()()6666k k k k k k k k
k k k k k k k k
k
M M y M h
y M h S x x x x x x x x x h h h h +++++⎛⎫⎛⎫
=-
-+-+--+-- ⎪
⎪⎝⎭⎝⎭
{}k M 221111()()()226k k k k k k k k
k
k k k k k k k M M y M h y m h
S x x x x x h h h h h ++++⎛⎫'=--+---+- ⎪⎝⎭
在
处计算(6),并简化结果可得到 ,其中 (7) 同理,在式(6)中用 并计算在 处的解,可得 (8)
利用节点处一阶导函数连续及方程(6)、(7),可得到包含
的重要关系式
(9)
其中
方程组(9)中的未知数是要求的值 ,其他的项可通过数据
点集 进行简单的计算得到的常量。因此方程(9)是包含
N+1个未知数,具有N-1个线性方程的不定方程组。所以需要另外两个方程组才能求解,即边界条件。
如果已知
,则 100001
11
3(())23(())2
N N N N N M
M d S x h M M S x d h ---'=--'=
--
(10)
(11) 根据(9)(10)求出 后,可利用下面的公式计算 的样条系数 。
k x 1
()36
k k k k k k k M m S x h h d +'=--+1k k k k y y d h +-=11,(),k k k S x -'-代替可得到k x 11111()3
6
k k k k k k k M
m S x h h d -----'=++11
,,k k k M M M -+11112()k k k k k k k k h M h h M h M μ---++++=16(),1,2,, 1.
k k k d d k N μ-=-=-{}0N
k M {}0(,)N
k k k x y =0(),()n S x S x ''{}0N
k M ()
k S x 11
1112222322222111N N N N N N N N N b c M a b c M a b C M a b M μμμμ---------⎡⎤⎡⎤⎡⎤
⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥
=⎢⎥⎢⎥⎢⎥
⎢⎥⎢⎥⎢⎥
⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥
⎣
⎦⎣⎦⎣⎦