三次样条插值计算方法上机实验
三次样条插值例题解析matlab
三次样条插值例题解析matlab 三次样条插值是一种常用的插值方法,可以通过一定数量的离散数据点,拟合出一个光滑的曲线。
在MATLAB中,插值函数interp1可以实现三次样条插值。该函数的基本语法为:
y_interp = interp1(x, y, x_interp, 'spline');
其中,x和y分别是原始数据的横坐标和纵坐标,x_interp是插值点的横坐标,'spline'表示使用三次样条插值方法。插值函数会根据原始数据拟合出一个插值曲线,在插值点的位置上返回相应的纵坐标值。
下面我们以一个具体的例子来解析三次样条插值的使用。
假设我们有如下一组离散数据点:
```matlab
x = [0, 1, 2, 3, 4];
y = [2, 3, 1, 4, 2];
```
我们希望通过这些离散数据点拟合出一个光滑的曲线,并在插值点处求取纵坐标值。
首先,我们需要在插值区间内定义一组插值点。这里我们取0.1为步长,生成插值点:
```matlab
x_interp = 0:0.1:4;
```
然后,使用interp1函数进行插值计算:
```matlab
y_interp = interp1(x, y, x_interp, 'spline');
```
最后,我们可以通过图表来比较原始数据和插值结果:
```matlab
plot(x, y, 'o', x_interp, y_interp, '-');
legend('原始数据', '插值结果');
```
在生成的图表中,原始数据以圆点表示,插值结果以实线表示。通过比较可以看出,插值结果在原始数据之间形成了光滑的曲线。
插值法实验报告
实验二插值法
1、实验目的:
1、掌握直接利用拉格郎日插值多项式计算函数在已知点的函数值;观察拉格郎日插值的龙格现象。
2、了解Hermite插值法、三次样条插值法原理,结合计算公式,确定函数值。
2、实验要求:
1)认真分析题目的条件和要求,复习相关的理论知识,选择适当的解决方案和算法;
2)编写上机实验程序,作好上机前的准备工作;
3)上机调试程序,并试算各种方案,记录计算的结果(包括必要的中间结果);
4)分析和解释计算结果;
5)按照要求书写实验报告;
3、实验内容:
1) 用拉格郎日插值公式确定函数值;对函数f(x)进行拉格郎日插值,并对f(x)与插值多项式的曲线作比较。
已知函数表:(0.56160,0.82741)、(0.56280,0.82659)、(0.56401,0.82577)、(0.56521,0.82495)用三次拉格朗日插值多项式求x=0.5635时函数近似值。
2) 求满足插值条件的插值多项式及余项
1)
4、题目:插值法
5、原理:
拉格郎日插值原理:
n次拉格朗日插值多项式为:L
n (x)=y
l
(x)+y
1
l
1
(x)+y
2
l
2
(x)+…+y
n
l
n
(x)
n=1时,称为线性插值,
L 1(x)=y
(x-x
1
)/(x
-x
1
)+y
1
(x-x
)/(x
1
-x
)=y
+(y
1
-x
)(x-x
)/(x
1
-x
)
n=2时,称为二次插值或抛物线插值,
L 2(x)=y
(x-x
1
)(x-x
2
)/(x
-x
1
)/(x
-x
2
)+y
1
(x-x
)(x-x
2
)/(x
1
-x
)/(x
1
-x
2
)+y
2
(x
-x
0)(x-x
1
)/(x
2
matlab三次样条插值例题解析
文章标题:深度解析Matlab三次样条插值
1. 前言
在数学和工程领域中,插值是一种常见的数值分析技术,它可以用来估计不连续数据点之间的值。而三次样条插值作为一种常用的插值方法,在Matlab中有着广泛的应用。本文将从简单到复杂,由浅入深地解析Matlab中的三次样条插值方法,以便读者更深入地理解这一技术。
2. 三次样条插值概述
三次样条插值是一种利用分段三次多项式对数据点进行插值的方法。在Matlab中,可以使用spline函数来进行三次样条插值。该函数需要输入数据点的x和y坐标,然后可以根据需要进行插值操作。
3. 三次样条插值的基本原理
在进行三次样条插值时,首先需要对数据点进行分段处理,然后在每个分段上构造出一个三次多项式函数。这些多项式函数需要满足一定的插值条件,如在数据点处函数值相等、一阶导数相等等。通过这些条件,可以得到一个关于数据点的插值函数。
4. Matlab中的三次样条插值实现
在Matlab中,可以使用spline函数来进行三次样条插值。通过传入数据点的x和y坐标,可以得到一个关于x的插值函数。spline函数
也支持在已知插值函数上进行插值点的求值,这为用户提供了极大的灵活性。
5. 三次样条插值的适用范围和局限性
虽然三次样条插值在许多情况下都能够得到较好的插值效果,但也存在一些局限性。在数据点分布不均匀或有较大噪音的情况下,三次样条插值可能会出现较大的误差。在实际应用中,需要根据具体情况选择合适的插值方法。
6. 个人观点和总结
通过对Matlab中三次样条插值的深度解析,我深刻地理解了这一插值方法的原理和实现方式。在实际工程应用中,我会根据数据点的情况选择合适的插值方法,以确保得到准确且可靠的结果。我也意识到插值方法的局限性,这为我在实际工作中的决策提供了重要的参考。
三次样条插值的方法和思路
三次样条插值的方法和思路
摘要:
1.三次样条插值的基本概念
2.三次样条插值的数学原理
3.三次样条插值的实现步骤
4.三次样条插值的优缺点
5.三次样条插值在实际应用中的案例
正文:
在日常的科学研究和工程应用中,我们经常会遇到需要对一组数据进行插值的问题。插值方法有很多,其中三次样条插值是一种常见且有效的方法。本文将从基本概念、数学原理、实现步骤、优缺点以及实际应用案例等方面,全面介绍三次样条插值的方法和思路。
一、三次样条插值的基本概念
三次样条插值(Cubic Spline Interpolation)是一种基于分段多项式的插值方法。它通过在各个节点上构建一条三次多项式曲线,使得这条曲线在节点之间满足插值条件,从而达到拟合数据的目的。
二、三次样条插值的数学原理
三次样条插值的数学原理可以分为两个部分:一是分段三次多项式的构建,二是插值条件的满足。
1.分段三次多项式的构建
假设有一组数据点序列为(x0,y0),(x1,y1),(x2,y2),(x3,y3),
我们可以将这些数据点连接起来,构建一条分段三次多项式曲线。分段三次多项式在每个子区间上都是一个三次多项式,它们之间通过节点值进行连接。
2.插值条件的满足
为了使分段三次多项式在节点之间满足插值条件,我们需要在每个子区间上满足以下四个条件:
(1)端点条件:三次多项式在区间的端点上分别等于节点值;
(2)二阶导数条件:三次多项式在区间内的二阶导数等于节点间的斜率;
(3)三阶导数条件:三次多项式在区间内的三阶导数等于节点间的曲率;
(4)内部点条件:三次多项式在区间内部满足插值函数的连续性。
三次样条插值函数求解例题
三次样条插值函数求解例题
三次样条插值函数是一种常用的插值方法,用于在给定的一组
数据点上构建一个连续的曲线。下面我将通过一个例题来解释三次
样条插值函数的求解过程。
假设我们有一组数据点{(x0, y0), (x1, y1), ..., (xn, yn)},其中x0 < x1 < ... < xn。我们的目标是构建一个连续的曲线,使
得曲线经过这些数据点。
首先,我们需要确定每个数据点之间的插值多项式。在三次样
条插值中,每个插值多项式的形式为:
Si(x) = ai + bi(x xi) + ci(x xi)^2 + di(x xi)^3。
其中,ai、bi、ci、di是待求的系数,Si(x)是第i段插值多
项式。
接下来,我们需要确定每个插值多项式的系数。为了满足插值
条件,我们需要确定每个数据点处的函数值和导数值。具体而言,
我们需要满足以下条件:
1. 函数值条件,Si(xi) = yi,即插值多项式通过每个数据点。
2. 导数值条件,Si'(xi) = Si-1'(xi),即相邻插值多项式在
数据点处的导数值相等。
通过这些条件,我们可以得到一系列的线性方程组,其中未知
数为插值多项式的系数。解这个线性方程组即可得到每个插值多项
式的系数。
最后,我们可以将每个插值多项式的系数代入到对应的插值多
项式中,得到最终的三次样条插值函数。
需要注意的是,在边界处,我们需要额外的条件来确定插值多
项式的系数。常见的边界条件有自然边界条件和固定边界条件。自
然边界条件要求插值函数的二阶导数在边界处为零,而固定边界条
件要求插值函数在边界处通过给定的导数值。
数值分析作业-三次样条插值
数值计算方法作业
实验4.3 三次样条差值函数
实验目的:
掌握三次样条插值函数的三弯矩方法。
实验函数:
dt e
x f x
t ⎰
∞
--
=
2
221)(π
实验内容:
(1) 编程实现求三次样条插值函数的算法,分别考虑不同的边界条件; (2) 计算各插值节点的弯矩值;
(3) 在同一坐标系中绘制函数f(x),插值多项式,三次样条插值多项式的曲线
比较插值结果。
实验4.5 三次样条差值函数的收敛性
实验目的:
多项式插值不一定是收敛的,即插值的节点多,效果不一定好。对三次样条插值函数如何呢?理论上证明三次样条插值函数的收敛性是比较困难的,通过本实验可以证明这一理论结果。
实验内容:
按照一定的规则分别选择等距或非等距的插值节点,并不断增加插值节点的个数。
实验要求:
(1) 随着节点个数的增加,比较被逼近函数和三样条插值函数的误差变化情
况,分析所得结果并与拉格朗日插值多项式比较;
(2) 三次样条插值函数的思想最早产生于工业部门。作为工业应用的例子,考
虑如下例子:某汽车制造商根据三次样条插值函数设计车门曲线,其中一
算法描述:
拉格朗日插值:
错误!未找到引用源。
其中错误!未找到引用源。是拉格朗日基函数,其表达式为:()
∏
≠=--=n
i j j j i j
i x x x x x l 0)
()(
牛顿插值:
)
)...()(](,...,,[....
))(0](,,[)0](,[)()(1102101210100----++--+-+=n n n x x x x x x x x x x f x x x x x x x f x x x x f x f x N
数值分析上机实验报告(插值)
数值分析第一次上机练习实验报告
——Lagrange 插值与三次样条插值
一、 问题的描述
设()2119f x x =
+, []1,1x ∈-,取15
i
i
x =-+,0,1,2,...,10i =.试求出10次Lagrange 插值多项式()10L x 和三次样条插值函数()S x (采用自然边界条件),并用图画出()f x ,()10L x ,
()S x .
二、 方法描述——Lagrange 插值与三次样条插值
我们取15
i i
x =-+
,0,1,2,...,10i =,通过在i x 点的函数值()2119i i f x x =+来对原函数
进行插值,我们记插值函数为()g x ,要求它满足如下条件:
()()2
1
,0,1,2,...,1019i i i g x f x i x ==
=+ (1)
我们在此处要分别通过Lagrange 插值(即多项式插值)与三次样条插值的方法对原函数
()2
1
19f x x
=
+进行插值,看两种方法的插值结果,并进行结果的比较。 10次的Lagrange 插值多项式为:
()()10
100
i i i L x y l x ==∑ (2)
其中:
()2
1
,0,1,2,...,1019i i i
y f x i x ==
=+ 以及
()()()()()()()()()
011011......,0,1,2,...,10......i i n i i i i i i i n x x x x x x x x l x i x x x x x x x x -+-+----=
=----
我们根据(2)进行程序的编写,我们可以通过几个循环很容易实现函数的Lagrange 插值。
三次样条插值
三次样条插值的数值实验
姓名: 王维滨 学号:0842011157 姓名: 李佳乐 学号:0842011034 姓名: 谢朝 学号:0842011062 姓名: 杨其荣 学号:0842011072
1.实验项目的性质和任务
对三次样条插值进一步理解,并编写matlab 程序,实现这些功能
2.算法设计和matlab 编程。
总前提:
x i 第i 点的横坐标
i y 第i 点的纵坐标
i M ,,s 的记号
,,,,,,23()()()()()()()2!3!
i i i i i i i s x s x s x y s x x x x x x x =+-+-+- 有数值逼近书上的推导,我们令:
111i i i i i x x u x x -+--=-,111
i i i i i x x x x λ++--=-,11111111f (,,)i i i i i i i i i i i i i y y y y x x x x x x x x x +-+--++------=- 由于未知数的数目多于方程的个数,我们需要增加两个条件才能唯一确定一个分段三次函数
1)D1的三次样条插值
a .实验方案与原理:
我们加上条件:,,,,11()(),()()n n s x f x s x f x ==
我们建立三弯矩方程组:
1211211111
126(,,)26(,,),2,3.....126(,,)i i i i i i i i n n n n n M M f x x x u M M M f x x x i n M M f x x x λ-+-+--+=⎧⎪++==-⎨⎪+=⎩
实验四 三次样条插值
实验四三次样条插值的应用
一、问题描述
The upper portion of this noble beast is to be approximated using clamped cubic spline interpolants. The curve is drawn on a grid from which the table is constructed. Use Algorithm 3.5 to construct the three clamped cubic splines.
二、模型建立
三次样条插值
给定一个列表显示的函数
yi=y(xi),i=0,1,2,...,N-1。特别注意在xj和xj+1之间的一个特殊的区间。该区间的线性插值公式为:
(3.3.1)式和(3.3.2)式是拉格朗日插值公式(3.1.1)的特殊情况。
因为它是(分段)线性的,(3.3.1)式在每一区间内的二阶导数为零,在横坐标为xj处的二阶导数不定义或无限。三次样条插值的目的就是要得到一个内插公式,不论在区间内亦或其边界上,其一阶导数平滑,二阶导数连续。
做一个与事实相反的个假设,除yi的列表值之外,我们还有函数二阶导数y"的列表值,即一系列的yi"值,则在每个区间内,可以在(3.3.1)式的右边加上一个三次多项式,其二阶导数从左边的yj"值线性变化到右边的yj+1"值,这么做便得到了所需的连续二阶导数。如果还将三次多项式构造在xj和xj+1处为零,则不会破坏在终点xj和xj+1处与列表函数值yj和yj+1的一致性。
计算方法上机4插值法
插值法
班级: 学号: 姓名: 成绩:
1 实验目的
(1)熟悉拉格朗日插值多项式和牛顿插值多项式,注意其不同特点; (2)会用三次样条插值解决一些实际问题。
2 实验内容
已知函数表 xi yi 0.3 1.2222 0.4 1.2681 0.5 1.3033 0.6 1.3293
试用三次拉格朗日插值多项式求 x=0.45 时的函数近似值。
5 实验结果及分析
6 总结
学习了插值法,学会了利用插值法编程求多项式的解,可以求解很多问题,让求解多 项式解变得非常简单。
计算方法与实习实验报告
7 参考资料
【1】孙志忠,吴宏伟,袁慰平,闻震初,计算方法与实习.第四版.南京:东南大学出版社 【2】谭浩强.C 程序设计.ຫໍສະໝຸດ Baidu四版.北京:清华大学出版社
3 实验步骤
①输入 xi,yi(i=0,1,2, …,n),令 Ln(x)=0; ②对 i=0,1,2, …,n 计算 li(x)=
j 0 j i n
x xj
xi x j
4 程序设计
#include<stdio.h> float Lagrange(float x[],float y[],float xx,int n) { int i ,j; float *a,yy=0; a=new float[n]; for(i=0;i<=n-1;i++)
三次样条插值算法详解
数值计算实例
数值积分
利用三次样条插值算法构造插值多项式,进而对积分进行数值近似计算,提高计算精度。
求解微分方程
通过三次样条插值算法构造的插值多项式,可以近似求解微分方程的解,提高求解效率。
图像处理实例
图像平滑
利用三次样条插值算法对图像进行平滑处理,减少图像中的噪声和失真。
图像缩放
通过三次样条插值算法对图像进行缩放,保持图像的细节和清晰度。
局限性
三次样条插值算法要求数据点数量较多,且在某些情况下可能存在数值不稳定性,如数据 点过多或数据点分布不均等情况。此外,该算法对于离散数据点的拟合效果可能不如其他 插值方法。
对未来研究的展望
01
02
03
改进算法稳定性
针对数值不稳定性问题, 未来研究可以探索改进算 法的数值稳定性,提高算 法的鲁棒性。
局限性
由于三次样条插值算法依赖于已知的离散数据点,因此对于数据点选择不当或 数据量不足的情况,可能会导致插值结果不准确。此外,该算法对于非线性数 据的拟合效果可能不佳。
02
三次样条插值算法原理
定义与公式
定义
三次样条插值算法是一种数学方法,用于通过给定的离散数据点构造一个连续的 插值函数。
公式
三次样条插值算法通常使用分段三次多项式来逼近原始数据,通过求解一系列线 性方程组来获得多项式的系数。
数值分析上机报告插值法
表 1
xj -1.00 -0.98 -0.96 -0.94 -0.92 -0.90 -0.88 -0.86 -0.84 -0.82 -0.80
f(x) 0.0385 0.0400 0.0416 0.0433 0.0451 0.0471 0.0491 0.0513 0.0536 0.0561 0.0588
( x − x0 ) ( x − xi −1 )( x − xi +1 ) ( x − xn ) ( xi − x0 ) ( xi − xi −1 )( xi − xi +1 ) ( xi − xn )
1, j = i li ( x j ) = 0, j ≠ i 由此,可以计算 Lagrange 多项式,实现函数的 Lagrange 插值。 理论上,根据在给定区间上给出的节点计算得到的 Lagrange 多项式近似于 f(x),而多项式 Ln(x)的次数 n 越高逼近 f(x)的精度越好。然而,对于 Lagrange 插 值,当 n → ∞ 时,Ln(x)不一定收敛到函数 f(x),有时会在插值区间的两端点附近 出现比较严重的 Ln(x)值偏离 f(x),即所谓的 Runge 现象。尤其对于等距节点的情 况,由于舍入误差的影响,可能带来严重的数值不稳定性。因此,通常选择插值 方式时考虑其他方法,如采用分段低次插值。 2. 分段线性插值
I1h ( x) = ∑ f ( x j ) g j ( x)
实验一 --插值方法
实验一—插值方法
实验学时:4
实验类型:设计 实验要求:必修
一 实验目的
通过本次上机实习,能够进一步加深对各种插值算法的理解;学会使用用三种类型的插值函数的数学模型、基本算法,结合相应软件(如VC/VB/Delphi/Matlab/JAVA/Turbo C )编程实现数值方法的求解。并用该软件的绘图功能来显示插值函数,使其计算结果更加直观和形象化。
二 实验内容
通过程序求出插值函数的表达式是比较麻烦的,常用的方法是描出插值曲线上尽量密集的有限个采样点,并用这有限个采样点的连线,即折线,近似插值曲线。取点越密集,所得折线就越逼近理论上的插值曲线。本实验中将所取的点的横坐标存放于动态数组[]X n 中,通过插值方法计算得到的对应纵坐标存放
于动态数组[]Y n 中。
以Visual C++.Net 2005为例。
本实验将Lagrange 插值、Newton 插值和三次样条插值实现为一个C++类CInterpolation ,并在Button 单击事件中调用该类相应函数,得出插值结果并画出图像。CInterpolation 类为 class CInterpolation { public :
CInterpolation();//构造函数
CInterpolation(float *x1, float *y1, int n1);//结点横坐标、纵坐标、下标上限 ~ CInterpolation();//析构函数 ………… …………
int n, N;//结点下标上限,采样点下标上限
float *x, *y, *X;//分别存放结点横坐标、结点纵坐标、采样点横坐标
数值分析作业-三次样条插值
数值计算方法作业
实验4.3 三次样条差值函数
实验目的:
掌握三次样条插值函数的三弯矩方法。
实验函数:
dt e
x f x
t ⎰
∞
--
=
2
221)(π
实验容:
(1) 编程实现求三次样条插值函数的算法,分别考虑不同的边界条件; (2) 计算各插值节点的弯矩值;
(3) 在同一坐标系中绘制函数f(x),插值多项式,三次样条插值多项式的曲
线比较插值结果。
实验4.5 三次样条差值函数的收敛性
实验目的:
多项式插值不一定是收敛的,即插值的节点多,效果不一定好。对三次样条插值函数如何呢?理论上证明三次样条插值函数的收敛性是比较困难的,通过本实验可以证明这一理论结果。
实验容:
按照一定的规则分别选择等距或非等距的插值节点,并不断增加插值节点的个数。
实验要求:
(1) 随着节点个数的增加,比较被逼近函数和三样条插值函数的误差变化情
况,分析所得结果并与拉格朗日插值多项式比较;
(2) 三次样条插值函数的思想最早产生于工业部门。作为工业应用的例子,考
虑如下例子:某汽车制造商根据三次样条插值函数设计车门曲线,其中一
算法描述:
拉格朗日插值:
其中是拉格朗日基函数,其表达式为:()
∏
≠=--=n
i j j j i j
i x x x x x l 0)
()(
牛顿插值:
)
)...()(](,...,,[....
))(0](,,[)0](,[)()(1102101210100----++--+-+=n n n x x x x x x x x x x f x x x x x x x f x x x x f x f x N
其中⎪⎪⎪⎪⎪
计算方法大作业——三次样条插值
wk.baidu.com
(8)
1
2
1 M 1 d1
(9)
2 n 1
2
n
其中:hi xi xi 1 ,i
N10 x
22757 10 5444 8 20216 6 17147 4 3725 2 x x x x x 1 103 11 53 139 221
将牛顿插值多项式 N5(x)和 N10(x)及三次样条插值函数 S10(x)分别与 f(x)的曲线画在 同一个坐标系上进行比较,如图 12。可以看出三次样条函数与原函数符合的非常好, 对于低次的牛顿插值多项式,与原函数的大致趋势相同,而高次的牛顿插值多项式由 于龙格现象的出现,与原函数之间相差比较大。
1 x 0.8 0.8 x 0.6 0.6 x 0.4 0.4 x 0.2 0.2 x 0 0 x 0.2 0.2 x 0.4 0.4 x 0.6 0.6 x 0.8 0.8 x 1
(10)
10
计算方法上机报告
S x
x x i
6hi
3
M i 1
x xi 1
6hi
3
x x hi2 M i yi 1 M i 1 i 6 hi
数值分析实验报告-插值、三次样条
实验报告:牛顿差值多项式&三次样条
... . (1)
问题:在区间[-1,1]上分别取n=10、20用两组等距节点对龙格函数f (x)---作多项式插
25 x 2
值及三次样条插值对每个n值,分别画出插值函数矽(x)的图形。
实验目的:通过编程实现牛顿插值方法和三次样条方法,加深对多项式插值的理解。应用所编程序解决实际算例。
实验要求:
1.认真分析问题,深刻理解相关理论知识并能熟练应用;
2.编写相关程序并进行实验;
3.调试程序,得到最终结果;
4.分析解释实验结果;
5.按照要求完成实验报告。
实验原理:
详见《数值分析第5版》第二章相关容。
实验容:
(1)牛顿插值多项式
1.1 当 n=10 时:
在Matlab下编写代码完成计算和画图。结果如下:
代码:
clear all
clc
x1=-1:0.2:1;
y1=1./(1+25.*x1.八2);
n=length(x1);
f=y1(:);
for j=2:n
for i=n:-1:j
f(i) = (f(i)-f(i-1))/(x1(i)-x1(i-j+1));
end
end
syms F x p;
F(1)=1;p(1)=y1(1);
for i=2:n
F(i)=F(i-1)*(x-x1(i-1));
p(i)=f(i)*F(i);
end
syms P
P=sum(p);
P10=vpa(expand(P),5);
x0=-1:0.001:1;
y0=subs(P,x,x0);
y2=subs(1/(1+25火x八2),x,x0);
plot(x0,y0,x0,y2)
grid on
xlabel('x')
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 算法原理 S(x)是分段三次多项式;S(x)的二阶导数在区间[a,b]上连续。 求解步骤如下: (1)计算步长: hi xi xi 1 (2) i
hi hi 1 , i 1 i hi hi 1 hi hi 1
y y y yi 1 6 [ i 1 i i ] 6 f [ xi 1 , xi , xi 1 ], i 1, 2,3, , n 1. hi hi 1 hi 1 hi
系数: S= 0.3417 0.8933 0.8364 13.4083 -54.4694 54.4694 -13.4083 -0.8364 -0.8933 -0.3417 1.0251 2.3488 2.2465 17.3327 -23.3939 -23.3939 17.3327 2.2465 2.3488 1.0251 1.1133 2.1722 2.1108 8.1453 0.0000 0 -8.1453 -2.1108 -2.1722 -1.1133 0.4683 0.7507 0.7384 1.5430 1.0000 1.0000 1.5430 0.7384 0.7507 0.4683
4. 算例计算结果 此算例为课本 141 页计算实习求三次样条插值。 运行文件“scyt2.m”, 可得到三次样条插值函数与原函数的曲线, 其中虚线代 表三次样条插值函数曲线, 实线代表原函数曲线。 然后在命令窗口输入“S = scyt(x, y)”,回车后即可得到 S(x)的在各个区间的系数 a, b, c, d 的值。 结果如下: 曲线:
结束
3. 程序使用说明 本程序使用 MATLAB 来求解三次样条插值函数 S ( x) . 源程序文件 “scyt.m”为三次样条插值源程序, x,y分别为n+1个插值节点的 横坐标组成的向量和纵坐标组成的向量。 输入节点向量x, y后,在命令窗口输入S = scyt(x, y),回车后即可算出在区间 [ xi 1 , xi ]三次样条插值函数 S ( x) ax3 bx 2 cx d 表达式的系数a, b, c, d的值。 源程序文件 “scyt2.m”是计算实习算例的程序,直接运行即可得到结果。
hi 2 x xi 1 ( yi Mi ) , 6 hi
2. 程序框图
xi 1 x xi .
开始
输入节 点 x,y
计算 hi
计算μi ,λi
和 di
M0 Mn 0
追赶法解三弯矩方程组 求出 M1—Mn-1
将 M0—Mn 代入三次样 条插值公式
输出对应区 间的三次多 项式 S(X)
(3) di
(4)边界条件选取: M 0 M n 0 (5)三弯矩方程组
i M i 1 2M i i M i 1 di , i 1, 2,3, , n 1.
(6)解三弯矩方程组得:
S ( x)
( xi x)3 ( x xi 1 )3 h2 x x M i 1 M i ( yi 1 i M i 1 ) i 6hi 6hi 6 hi
比如当 x 在区间[-1, -0.来自百度文库]时, S ( x) 0.3417 x3 1.0251x 2 1.1133x 0.4683 , 以此类推可以得到其他区间 S ( x) 的表达式。