当前位置:文档之家› 三次样条插值函数求解例题

三次样条插值函数求解例题

三次样条插值函数求解例题

三次样条插值函数是一种常用的插值方法,用于在给定的一组

数据点上构建一个连续的曲线。下面我将通过一个例题来解释三次

样条插值函数的求解过程。

假设我们有一组数据点{(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),即相邻插值多项式在

数据点处的导数值相等。

通过这些条件,我们可以得到一系列的线性方程组,其中未知

数为插值多项式的系数。解这个线性方程组即可得到每个插值多项

式的系数。

最后,我们可以将每个插值多项式的系数代入到对应的插值多

项式中,得到最终的三次样条插值函数。

需要注意的是,在边界处,我们需要额外的条件来确定插值多

项式的系数。常见的边界条件有自然边界条件和固定边界条件。自

然边界条件要求插值函数的二阶导数在边界处为零,而固定边界条

件要求插值函数在边界处通过给定的导数值。

综上所述,三次样条插值函数的求解过程包括确定插值多项式

的系数和边界条件的确定。通过解线性方程组,我们可以得到每个

插值多项式的系数,从而构建出连续的三次样条插值函数。

希望以上回答能够满足你的要求。如果你有任何其他问题,请随时提出。

三次样条插值课后题集

例1 设)(x f 为定义在[0,3]上的函数,有下列函数值表: 且2.0)('0=x f ,1)('3-=x f ,试求区间[0,3]上满足上述条件的三次样条插值函数)(x s 本算法求解出的三次样条插值函数将写成三弯矩方程的形式: ) ()6()() 6()(6)(6)(211123 13 1j j j j j j j j j j j j j j j j x x h h M y x x h h M y x x h M x x h M x s -- + -- + -+ -= +++++其中,方程中的系数 j j h M 6, j j h M 61+, j j j j h h M y )6(2- , j j j j h h M y ) 6(211++- 将由Matlab 代码中的变量Coefs_1、Coefs_2、Coefs_3以及Coefs_4的值求出。 以下为Matlab 代码: %============================= % 本段代码解决作业题的例1 %============================= clear all clc % 自变量x 与因变量y ,两个边界条件的取值 IndVar = [0, 1, 2, 3]; DepVar = [0, 0.5, 2, 1.5];

LeftBoun = 0.2; RightBoun = -1; % 区间长度向量,其各元素为自变量各段的长度h = zeros(1, length(IndVar) - 1); for i = 1 : length(IndVar) - 1 h(i) = IndVar(i + 1) - IndVar(i); end % 为向量μ赋值 mu = zeros(1, length(h)); for i = 1 : length(mu) - 1 mu(i) = h(i) / (h(i) + h(i + 1)); end mu(i + 1) = 1; % 为向量λ赋值 lambda = zeros(1, length(h)); lambda(1) = 1; for i = 2 : length(lambda) lambda(i) = h(i) / (h(i - 1) + h(i));

matlab三次样条插值例题解析

文章标题:深度解析Matlab三次样条插值 1. 前言 在数学和工程领域中,插值是一种常见的数值分析技术,它可以用来估计不连续数据点之间的值。而三次样条插值作为一种常用的插值方法,在Matlab中有着广泛的应用。本文将从简单到复杂,由浅入深地解析Matlab中的三次样条插值方法,以便读者更深入地理解这一技术。 2. 三次样条插值概述 三次样条插值是一种利用分段三次多项式对数据点进行插值的方法。在Matlab中,可以使用spline函数来进行三次样条插值。该函数需要输入数据点的x和y坐标,然后可以根据需要进行插值操作。 3. 三次样条插值的基本原理 在进行三次样条插值时,首先需要对数据点进行分段处理,然后在每个分段上构造出一个三次多项式函数。这些多项式函数需要满足一定的插值条件,如在数据点处函数值相等、一阶导数相等等。通过这些条件,可以得到一个关于数据点的插值函数。 4. Matlab中的三次样条插值实现 在Matlab中,可以使用spline函数来进行三次样条插值。通过传入数据点的x和y坐标,可以得到一个关于x的插值函数。spline函数

也支持在已知插值函数上进行插值点的求值,这为用户提供了极大的灵活性。 5. 三次样条插值的适用范围和局限性 虽然三次样条插值在许多情况下都能够得到较好的插值效果,但也存在一些局限性。在数据点分布不均匀或有较大噪音的情况下,三次样条插值可能会出现较大的误差。在实际应用中,需要根据具体情况选择合适的插值方法。 6. 个人观点和总结 通过对Matlab中三次样条插值的深度解析,我深刻地理解了这一插值方法的原理和实现方式。在实际工程应用中,我会根据数据点的情况选择合适的插值方法,以确保得到准确且可靠的结果。我也意识到插值方法的局限性,这为我在实际工作中的决策提供了重要的参考。 通过以上深度解析,相信读者已经对Matlab中的三次样条插值有了更加全面、深刻和灵活的理解。在实际应用中,希望读者能够根据具体情况选择合适的插值方法,以提高工作效率和准确性。7. 三次样条插值的优缺点 三次样条插值方法作为一种常用的插值技术,在Matlab中有着广泛的应用。它具有很多优点,比如可以在数据点不连续、噪音较大或数据点密度不均匀的情况下进行插值,同时插值结果平滑且具有高度的局部逼近性。另外,三次样条插值还可以在使用较少的插值点情况下

三次样条插值函数求解例题

三次样条插值函数求解例题 三次样条插值函数是一种常用的插值方法,用于在给定的一组 数据点上构建一个连续的曲线。下面我将通过一个例题来解释三次 样条插值函数的求解过程。 假设我们有一组数据点{(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),即相邻插值多项式在 数据点处的导数值相等。 通过这些条件,我们可以得到一系列的线性方程组,其中未知 数为插值多项式的系数。解这个线性方程组即可得到每个插值多项 式的系数。 最后,我们可以将每个插值多项式的系数代入到对应的插值多 项式中,得到最终的三次样条插值函数。 需要注意的是,在边界处,我们需要额外的条件来确定插值多 项式的系数。常见的边界条件有自然边界条件和固定边界条件。自 然边界条件要求插值函数的二阶导数在边界处为零,而固定边界条 件要求插值函数在边界处通过给定的导数值。 综上所述,三次样条插值函数的求解过程包括确定插值多项式 的系数和边界条件的确定。通过解线性方程组,我们可以得到每个 插值多项式的系数,从而构建出连续的三次样条插值函数。

(完整版)试求三次样条插值S(X)

给定数据表如下: 试求三次样条插值S(X),并满足条件: i)S’(0.25)=1.0000, S’(0.53)-0.6868; ii) S”(0.25)= S”(0.53)=0; 解: 由给定数据知: h0 =0.3-0.25 - 0.05 , h 1=0.39-0.30-0.09 h 2=0.45-0.39-0.06, h 3=0.53-0.45-0.08 由μ i=h i/(h i1+h i), λ i= h i/(h i1+h i) 得: μ1= 5/14 ; λ 1= 9/14 μ2= 3/5 ; λ 2= 2/5 μ3= 3/7 ; λ 3=4/7 0.25 0.5000 ﹨ ﹨ 1.0000 ∕﹨ 0.25 0.5000 ∕ -0.9200-f[x 0,x 0, x 1 ] ﹨∕ 0.9540 ∕﹨ 0.30 0.5477 -0.7193-f[x 0,x 1,x 2 ] ﹨∕

0.8533 ∕﹨ 0.39 0.6245 -0.5440-f[x1,x2,x 3 ] ﹨∕ 0.7717 ∕﹨ 0.45 0.6708 -0.4050-f[x 2,x 3,x 4 ] ﹨∕ 0.7150 ∕﹨ 0.53 0.7280 -0.3525-f[x 3,x 4,x 5 ] ﹨∕ 0.6868 ∕ 0.53 0.7280 i)已知一节导数边界条件,弯矩方程组 ┌┐┌┐ │ 2 1 │┌M 0 ┐│-0.9200 ︳ ︳5/14 2 9/14 ︳︳M ︳︳-0.7193 ︳ 1 ︳3/5 2 2/5 ︳︳M 2 ︳_6 ︳-0.5440︳ ︳ 3/7 2 4/7 ︳︳M ︳︳-0.4050 ︳ 3

三次样条插值的MATLAB实现

MATLAB 程序设计期中考查 在许多问题中,通常根据实验、观测或经验得到的函数表或离散点上的信息,去研究分析函数的有关特性。其中插值法是一种最基本的方法,以下给出最基本的插值问题——三次样条插值的基本提法: 对插值区间[]b a ,进行划分:b x x x a n ≤<⋯⋯<<≤10,函数()x f y =在节点 i x 上的值()()n i x f y i i ⋯⋯==,2,1,0,并且如果函数()x S 在每个小区间[]1,+i i x x 上 是三次多项式,于[]b a ,上有二阶连续导数,则称()x S 是[]b a ,上的三次样条函数,如果()x S 在节点i x 上还满足条件 ()()n i y x S i i ⋯⋯==,1,0 则称()x S 为三次样条插值函数。 三次样条插值问题提法:对[]b a ,上给定的数表如下. 求一个分段三次多项式函数()x S 满足插值条件()()n i y x S i i ⋯⋯==,1,0 式,并在 插值区间[]b a ,上有二阶连续导数。这就需要推导三次样条插值公式: 记()x f '在节点i x 处的值为()i i m x f ='(n i ⋯⋯=,1,0)(这不是给定插值问题数表中的已知值)。在每个小区间[]1,+i i x x 利用三次Hermite 插值公式,得三次插值公式: ()()()()1111+++++++=i i i i i i i i i m m x y x y x x S ββαα,[]1,+∈i i x x x 。为了得到这个公式需要n 4个条件: (1).非端点处的界点有n 2个;(2).一阶导数连续有1-n 个条件;(3).二阶导 数连续有1-n 个条件,其中边界条件:○1()()n n m x S m x S ='=' 00 ○2()()αα=''=''n x S x S 00

三次样条插值法例题计算

三次样条插值法例题计算 三次样条插值法是一种常用的数值分析方法,用于对给定的一组离散数据点进行插值计算。它利用多项式函数的连接性和平滑性特点,将整个插值区间分为多个小区间,并对每个小区间进行插值计算。 假设我们需要对以下离散数据点进行插值计算:(1, 3)、(2, 5)、(3, 2)、(4, 6)、(5, 1)。我们可以使用三次样条插值法来计算在x等于2.5的位置的插值值。 首先,我们需要确定每个小区间的插值多项式。根据三次样条插值法的原理,我们可以得到以下方程组: (1) S_0(x) = a_0 + b_0(x - x_0) + c_0(x - x_0)^2 + d_0(x - x_0)^3 (2) S_1(x) = a_1 + b_1(x - x_1) + c_1(x - x_1)^2 + d_1(x - x_1)^3 (3) S_2(x) = a_2 + b_2(x - x_2) + c_2(x - x_2)^2 + d_2(x - x_2)^3 (4) S_3(x) = a_3 + b_3(x - x_3) + c_3(x - x_3)^2 + d_3(x - x_3)^3 其中,S_i(x)表示第i个小区间的插值多项式,a_i、b_i、c_i、d_i为待求系数,x_i为第i个数 据点的x坐标。 然后,我们需要确定每个小区间内插值多项式的系数。由于我们需要保证插值函数在每个数据点处通过,可以得到以下方程: (5) S_0(x_0) = y_0 (6) S_0(x_1) = y_1 (7) S_1(x_1) = y_1 (8) S_1(x_2) = y_2 (9) S_2(x_2) = y_2 (10) S_2(x_3) = y_3 (11) S_3(x_3) = y_3 (12) S_3(x_4) = y_4 其中,y_i为第i个数据点的y坐标。 最后,我们需要确定边界条件。通常我们可以采用自然边界条件,即在第一个小区间和最后一个小区间的边界点处,二阶导数为零: (13) S_0''(x_0) = 0 (14) S_3''(x_4) = 0 通过解以上方程组,我们可以确定每个小区间内插值多项式的系数a_i、b_i、c_i、d_i。然后,我们就可以根据插值多项式计算在x等于2.5的位置的插值值了。 综上所述,三次样条插值法是一种常用的数值分析方法,用于对离散数据点进行插值计算。它通过建立小区间内插值多项式,并满足插值函数在数据点处的通过性和平滑性,可以准确地估计插值值。

数值分析三次样条插值函数

数值分析三次样条插值函数 【问题】 对函数f x =ex, x∈[0,1]构造等距节点的三次样条插值函数,对以下两种类型的样条函数 1. 三次自然样条 2. 满足S′ 0 =1,S′ 1 =e的样条 并计算如下误差: max{ f x1 −S x1 ,i=1,…,N} i−i−i这里xi−1为每个小区间的中点。对N=10,20,40比较以上两组节 点的结果。讨论你的结果。 【三次样条插值】 在每一个区间[t1,t2],…,[tn−1,tn]上,S都是不同的三次多项式,我们把在[ti−1,ti]上表示S的多项式记为Si,从而, S0 x x∈[t0,t1] ∈[t1,t2] S x = S1 x x… Sn−1 x x∈[tn−1,tn] 通过在节点处函数值、一阶导数和二阶导数的连续性可以得到: Si−1 ti = yi= Si ti 1≤i≤ n−1 Si−1′ ti = Si′ ti x→ti+limS′′ x =zi=limS′′(x) x→ti− 再给定z0和zn 的值就构成了4n个条件,而三次样条插值函数共4n个系数,故可以通过这4n个条件求解三次样条函数的系数,从而求得该三次样条插值函数。特别的,当z0=zn=0 时称为自然三 次样条。 文本预览: 一、自然三次样条插值 【自然三次样条插值算法】 1.由上面的分析可知,求解三次样条函数实际上就是求解一个矩阵: u 1h 1 h1u2h2h2u3…v1 z1 v2 z2 z3=v3 … z…hn−2 n−2 vn−2 z vn−1 un−1 n−1

ih3…hn−3un−2hn−26…其中hi=ti+1−ti,ui=2(hi+hi−1),ui=h(yi+1−yi),vi=bi−bi−1 所以自然三层次样条插值的算法就是在得到端点的函数值,一次导数值和二次导数值,然后根据上 述求解矩阵得到v,代入自然三次样条的表达式即可。 2.根据题目中所给出的误差估计,计算在区间中点处的最大误差。 【实验】 通过Mathematica编写程序得到如下结果: N=10 1. 计算得到zi的值为: 由此可以得到各个区间的自然三次样条插值函数。 文本预览: 2. 计算得到各区间中点的最大误差为: 自然三次样条插值函数与原函数的图像为: 可以看出两者基本吻合,与我们计算得到的最大误差符合,实验结果成立。 【结果】 同样的,我们可以得到该题目的结果: 【分析】 通过结果可以看出,区间越分越细时,区间中点的最大误差越来越小,说明自然三次样条插值越来越逼近原来的函数。 ×e1 20 ≈ 2 ×e1 40 文本预览: 二、普通三次样条插值 【普通三次样条插值算法】 1.在给定了S’(0)=1和S’(1)=e,类似于自然三次样条插值,但此时的矩阵有变化,因此在计算时与之前的自然三次样条插值有所区别。 2.根据题目中所给出的误差估计,计算在区间中点处的最大误差。 【实验】 N=10 1.计算得到zi的值为: 文本预览: 2.计算得到各区间中点的最大误差为:

插值方法练习题

插值方法练习题 一.已知函数y = f (x)的一组数据 对这些数据进行多项式插值和三次样条插值,并求:x = 3.5 4.1 6.2 4.5时,y相应的多项式插值和三次样条插值函数值。 二.绘制上题中函数y = f (x)在区间[0, 10]上的多项式插值函数图形,并将已知点用“o”标出。 三.求出上题中每一小段内的三次函数。绘制上题中函数y = f(x)在区间[0, 10]上的三次样条插值函数图形,并将已知点用“ ”标出。 四.对函数y = 1/(1+x2)在[-5, 5]上进行多项式插值,如何避免Runge现象。 五.对下表给出的数据作曲面插值 参考答案: 一.y = 13.2476 12.6730 9.8032 11.9877 附:命令行 x=[0 1 2 3 4 5 6 7 8 9 10]; y=[12.34 13.02 13.98 13.52 12.81 11.08 9.96 9.51 10.23 11.14 12.25]; xx=[3.5 4.1 6.2 4.5]; p=polyfit(x,y,10); y1=polyval(p,xx) yy=spline(x,y,xx) 二.

附:命令行 x=[0 1 2 3 4 5 6 7 8 9 10]; y=[12.34 13.02 13.98 13.52 12.81 11.08 9.96 9.51 10.23 11.14 12.25]; xx=0:0.0001:10; p=polyfit(x,y,10); y1=polyval(p,xx); plot(xx,y1,‘-‘,x,y,’o’) 三.p1 = -0.4440 1.4719 -0.3479 12.3400 p2 = -0.4440 1.4719 -0.3479 12.3400 p3 = 0.5198 -4.3109 11.2177 4.6295 p4 = -0.4654 4.5561 -15.3834 31.2307 p5 = 0.5717 -7.8892 34.3977 -35.1441 p6 = -0.1915 3.5588 -22.8420 60.2554 p7 = 0.2542 -4.4634 25.2912 -36.0109 p8 = -0.3253 7.7064 -59.8974 162.7624 p9 = 0.0671 -1.7107 15.4393 -38.1354 p10 = 0.0671 -1.7107 15.4393 -38.1354 附:命令行 x=[0 1 2 3 4 5 6 7 8 9 10]; y=[12.34 13.02 13.98 13.52 12.81 11.08 9.96 9.51 10.23 11.14 12.25]; xx=0:0.0001:10;

三次样条插值

三次样条插值方法 及其与拉格朗日插值、牛顿插值方法的比较 一、题目: 设函数 112511 )(2≤≤-+=x x x f 试用三次样条函数作插值,并与L 10(x )或N 10(x )作比较。 取等距节点 x i = x 0 + ih i = 0, 1,…, 20 20210==-=N N h x 端点条件 )1()(01-'='f x S )1()(-'='f x S n n 二、算法: 1. 三次样条插值 (1)输入插值节点的X,Y 值,未知点m i = 1, 2, …, n (2)计算步长h i = x i – x i -1 (3)i = 1, 2,…, n ()[]()1111)(6+-+++---=i i i i i i i i i h h h y y h y y d 2=i C ()11+++=i i i i h h h λ i i λμ-=1 (4)解n – 1阶三对角方程组,得 M 1 , M 2 ,…, M n -1 代入端点条件计算M 0 , M n (5) i i i i i i i i i i i i i i i i i h x x h M y h x x h M y h x x M h x x M x S 122113 131666)(6)()(------⎪⎭⎫ ⎝⎛-+-⎪⎭⎫ ⎝⎛-+-+-= (6)输出插值数m 的函数值S

2. 拉格朗日插值 (1)输入插值点的坐标x,y 及未知数X (2)求解拉格朗日多项式 ∏≠=+-+---=----------=n k j j j k j n k k k k k k k n k k k x x x x x x x x x x x x x x x x x x x x x x x x x l 011101110) ())(())(() ())(())(()( k n k n k j j j k j k n k k n y x x x x y x l x L ∑∏∑=≠==⎪⎪⎪⎭⎫ ⎝⎛--==000)()( (4)输出插值函数在X 点的值L 3. 牛顿插值 (1)输入插值点的坐标x,y 及未知数X (2)构造差商表,求x,y 的n -1阶差商 (3)求解牛顿插值多项式 ] ,,[)())((] ,,[))((],[)()()(10110210101000n n n x x x f x x x x x x x x x f x x x x x x f x x x f x N ----++--+-+= (4)输出插值数X 的函数值N 三、源程序(见附件) 1. 拉格朗日插值: Lagrange.m 2. 牛顿插值:Newton.m 3. 三次样条插值:Spline.m 4. 函数f(x):f.m 5. 输出格式:dayin.m 四、数值例子 1.在命令窗口输入:dayin 、回车 输出:三种插值与真实值的结果(表和线图)。

三次样条插值的求解

三次样条插值的求解 摘要:分段低次插值虽然解决了高次插值的振荡现象和数值不稳定现象,使得插值多项式具有一致收敛性,保证了插值函数整体的连续性,但在函数插值节点处不能很好地保证光滑性要求,这在某些要求光滑性的工程应用中是不能接受的。如飞机的机翼一般要求使用流线形设计,以减少空气阻力,还有船体放样等的型值线,往往要求有二阶光滑度(即有二阶连续导数)。因此,在分段插值的基础上,引进了一种新的插值方法,在保证原方法的收敛性和稳定性的同时,又使得函数具有较高的光滑性的样条插值。 关键字:三转角方程 三弯矩阵方程 0. 引言 1,三次样条函数 定义1:若函数2 ()[,]S x a b C ∈,且在每个小区间上1,j j x x +⎡⎤⎦⎣上是三次多 项式,其中01n a x x x b ⋯=<<<= 是给定节点,则称()s x 是节点 01,,,n x x x ⋯上的三次样条函数。若节点j x 上 给定函数值 () j j y f x =(0,1,)j n ⋯= ,且 ()j j s x y = (0,1,)j n ⋯= (1.1) 成立,则称 ()s x 为三次样条差值函数。 从定义知,要求出()s x ,在每个应小区间1[,]j j x x + 上确定4个待定系数,共有 n 个小区间,故应确定4n 个参数,根据()s x 在[,]a b 上二阶导数连续,在节点()1,2,3,,1j x j n ⋯=-处应满足连续性条件

(0)(0),j j s x s x -=+ ''(0)(0),j j s x s x -=+ ''''(0)(0)j j s x s x -=+ (1.2) 共有 3n-3个条件,再加上()s x 满足插值条件(1.1),共有4n-2个条件,因此还需要2个条件才能确定()s x 。通常可在区间[,]a b 端点0,n a x b x ==上各加一个条件(称边界条件),边界条件可根据实际的问题要求给定。常见的三种: (1) 已知两端的一节导数值,即 { ''00 ' ' ()()n n s x f s x f == (1.3) (2)两端的二阶导数已知,即 { ''''00'' '' ()()n n s x f s x f == (1.4) 特殊情况下的边界条件 ''''0()()0n s x s x == (1.4)’ 称为自然边界条件 (3)当()f x 是以0n x x - 为周期函数时,则要求()s x 也是周期函数,这时边界条件应满足 而此时式中 , 这样确定的样条函数 称为周期函数。 2.三转角方程 及相应的边界条件函数s(x)的表达式,若满足假定的 在节点 处的值为,再由,是 ,则由分段Hermite 插 值式

三次样条插值计算算法

/* 三次样条插值计算算法*/ #include "math.h " #include "stdio.h " #include "stdlib.h " /* N:已知节点数N+1 R:欲求插值点数R+1 x,y为给定函数f(x)的节点值{x(i)} (x(i)

插值法部分习题

20. 解:(1)在编辑窗口输入: >> x=[0.25,0.30,0.39,0.45,0.53]; >> y=[0.5000,0.5477,0.6245,0.6708,0.7280]; >> dx0=1.0000;dxn=0.6868; >> s=csfit(x,y,dx0,dxn) s = 1.8863 -1.0143 1.0000 0.5000 0.7952 -0.7314 0.9127 0.5477 0.6320 -0.5167 0.8004 0.6245 0.3151 -0.4029 0.7452 0.6708 5.0x x 0143.1x 8863.1S 231++-= ]3.0,25.0[x ∈ 5477.0x 9127.0x 7314.0x 7952.0S 232++-= ]39.0,3.0[x ∈ 6245.0x 8004.0x 5167.0x 632.0S 233++-= ]45.0,39.0[x ∈ 6708.0x 7452.0x 4029.0x 3151.0S 234++-= ]53.0,45.0[x ∈ 1 试用4次牛顿插值多项式)x (P 4及三次样条函数)x (S (自然边界条件)对数据进行插值。用图给出{(i x ,i y ),10,11,1,0i ,i 08.02.0x i =+=},)x (P 4及 )x (S . 解: (1)在编辑窗口输入: >> x=[0.2,0.4,0.6,0.8,1.0]; >> y=[0.98,0.92,0.81,0.64,0.38]; >> N=newpoly(x,y) N = -0.5208 0.8333 -1.1042 0.1917 0.9800 由此可以得出牛顿插值多项式为:

3.6三次样条插值

§6 三次样条函数 在实践中,两点三次Hermite 插值多项式在插值节点处的光滑度不足,导致人们研究光滑度更高的插值函数。 例:给定插值条件: 要求分段两点三次Hermite 插值多项式。 结果:在[-1,0]上为x x x +--23,在[0,1]上为x x x ++23,显然在分点处(x=0)二阶导数不存在。 若在[-1,0]上为x x 5.15.03+-,在[0,1]上为x x 5.15.13+,则该分段函数在x=0处二阶可导。当然一阶导数值不可能为1(为1.5)。 定义:设定义在[a,b]上的函数f(x)的型值点为),(,),,(),,(1100n n y x y x y x ,要求[a,b]上的分段三次插值函数 S(x),使得),,1,0(,)(n i y x S i i ==,且],[)(2b a C x S ∈。称)(x S 为)(x f 在[a,b]上的三次样条插值函数。 不同于Hermite 插值问题,此处并没有给定节点处的一、二阶导数值,但要求在节点处也二次可微。 要求)(x S 满足:

(1) ),,1,0(,)(n k y x S k k == (2) )(lim )(lim x S x S k k x x x x '='-+→→,)1,,2,1(-=n k (3) )(lim )(lim x S x S k k x x x x ''=''-+→→,)1,,2,1(-=n k 此外,实际问题对三次样条插值函数在端点处的状态也有要求,即所谓的边界条件: 第一类边界条件(夹持条件): ⎩⎨ ⎧'= ''='n n y x S y x S )()(00 第二类边界条件(自然边界条件): ⎩⎨ ⎧''=''''=''n n y x S y x S )()(00 第三类边界条件(周期性条件): n y y =0,)(lim )(lim 0 x S x S n x x x x '='-+→→,)(lim )(lim 0 x S x S n x x x x ''=''-+→→。 下面通过具体求解待定系数来证明三次样条插值多项式 )(x S 的存在性和唯一性。 设)(x S 在插值节点k x 处的一阶导数值为k m ,则在每个小区间],[1+k k x x 上可按两点三次Hermite 插值多项式的算法来求得 在该区间上的 ) (x S 的表达式。即当],[1+∈k k x x x 时,设

数值分析作业-三次样条插值

数值计算方法作业 实验4.3 三次样条差值函数 实验目的: 掌握三次样条插值函数的三弯矩方法。 实验函数: dt e x f x t ⎰∞ -- = 2 2 21 )(π 实验容: (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 其中⎪⎪⎪⎪⎪ ⎪⎩ ⎪⎪ ⎪⎪⎪⎪⎨⎧ --=--= --= -)/(]),...,[],...,[(]...,[..],[],[],,[)()(],[01102110x x x x x f x x x f x x x f x x x x f x x f x x x f x x x f x f x x f n n n n i k j i k j k j i j i j i j i 三样条插值: 所谓三次样条插值多项式Sn(x)是一种分段函数,它在节点Xi(a

三次样条插值作业题

三次样条插值作业题本页仅作为文档页封面,使用时可以删除 This document is for reference only-rar21year.March

例1 设)(x f 为定义在[0,3]上的函数,有下列函数值表: 且2.0)('0=x f ,1)('3-=x f ,试求区间[0,3]上满足上述条件的三次样条插值函数)(x s 本算法求解出的三次样条插值函数将写成三弯矩方程的形式: ) ()6()() 6()(6)(6)(211123 13 1j j j j j j j j j j j j j j j j x x h h M y x x h h M y x x h M x x h M x s -- +-- + -+ -= +++++其中,方程中的系数 j j h M 6, j j h M 61+, j j j j h h M y ) 6(2- , j j j j h h M y ) 6(211++- 将由 Matlab 代码中的变量Coefs_1、Coefs_2、Coefs_3以及Coefs_4的值求出。 以下为Matlab 代码: %============================= % 本段代码解决作业题的例1 %============================= clear all clc % 自变量x 与因变量y ,两个边界条件的取值 IndVar = [0, 1, 2, 3]; DepVar = [0, 0.5, 2, 1.5]; LeftBoun = 0.2; RightBoun = -1; % 区间长度向量,其各元素为自变量各段的长度 h = zeros(1, length(IndVar) - 1); for i = 1 : length(IndVar) - 1 h(i) = IndVar(i + 1) - IndVar(i); end

相关主题
文本预览
相关文档 最新文档