搜档网
当前位置:搜档网 › 数值分析常用的插值方法

数值分析常用的插值方法

数值分析常用的插值方法
数值分析常用的插值方法

数值分析

报告

班级:

专业:

流水号:

学号:

姓名:

常用的插值方法

序言

在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。

早在6世纪,中国的刘焯已将等距二次插值用于天文计算。17世纪之后,牛顿、拉格朗日分别讨论了等距和非等距的一般插值公式。在近代,插值法仍然是数据处理和编制函数表的常用工具,又是数值积分、数值微分、非线性方程求根和微分方程数值解法的重要基础,许多求解计算公式都是以插值为基础导出的。

插值问题的提法是:假定区间[a,b〕上的实值函数f(x)在该区间上 n+1

个互不相同点x

0,x

1

(x)

n

处的值是f(x

),……f(x

n

),要求估算f(x)在[a,b〕

中某点的值。其做法是:在事先选定的一个由简单函数构成的有n+1个参数C

C 1,……C

n

的函数类Φ(C

,C

1

,……C

n

)中求出满足条件P(x

i

)=f(x

i

)(i=0,1,……

n)的函数P(x),并以P(x)作为f(x)的估值。此处f(x)称为被插值函数,x

0,x

1

,……xn

称为插值结(节)点,Φ(C

0,C

1

,……C

n

)称为插值函数类,上面等式称为插值条件,

Φ(C

0,……C

n

)中满足上式的函数称为插值函数,R(x)= f(x)-P(x)称为

插值余项。

求解这类问题,它有很多种插值法,其中以拉格朗日(Lagrange)插值和牛顿(Newton)插值为代表的多项式插值最有特点,常用的插值还有Hermit 插值,分段插值和样条插值。

一.拉格朗日插值

1.问题提出:

已知函数()y f x =在n+1个点01,,

,n x x x 上的函数值01,,

,n y y y ,求任意一点

x '的函数值()f x '。

说明:函数()y f x =可能是未知的;也可能是已知的,但它比较复杂,很难计算其函数值()f x '。 2.解决方法:

构造一个n 次代数多项式函数()n P x 来替代未知(或复杂)函数()y f x =,则

用()n P x '作为函数值()f x '的近似值。

设()2012n n n P x a a x a x a x =+++

+,构造()n P x 即是确定n+1个多项式的系数

012,,,,n a a a a 。

3.构造()n P x 的依据:

当多项式函数()n P x 也同时过已知的n+1个点时,我们可以认为多项式函数

()n P x 逼近于原来的函数()f x 。根据这个条件,可以写出非齐次线性方程组:

20102000

201121112012n n n n n n n n n n

a a x a x a x y a a x a x a x y a a x a x a x y ?+++

+=?++++=???

?+++

+=?

其系数矩阵的行列式D 为范德萌行列式:

()

200021110

2

111n n i

j

n i j n

n

n n x x x x x x D x x x x x ≥>≥=

=

-∏

故当n+1个点的横坐标01,,,n x x x 各不相同时,方程组系数矩阵的行列式D 不等于

零,故方程组有唯一解。即有以下结论。 结论:当已知的n+1个点的横坐标01,,

,n x x x 各不相同时,则总能够构造唯一的n

次多项式函数()n P x ,使()n P x 也过这n+1个点。 4.几何意义

5.举例:

已知函数()f x ()115f 。

分析:本题理解为,已知“复杂”函数()f x x=81,100,121,144时,其对应的函数值为:y=9,10,11,12,当x=115时,求函数值()115f 。

解:

(1)线性插值:过已知的(100,10)和(121,11)两个点,构造1次多项式函数()1P x ,于是有

()1121100

1011100121121100

x x P x --=?+?--

()()111511510.71428571428572f P ≈=。

(2)抛物插值:构造2次多项式函数()2P x ,使得它过已知的(100,10)、(121,11)和(144,12)三个点。于是有2次拉格朗日插值多项式:

()()()()()()()()()()()()()

2121144100144100121101112100121100144121100121144144100144121x x x x x x P x ------=?+?+?------

则有

()()2115115f P ≈=10.72275550536420 6.拉格朗日n 次插值多项式公式:

()()()()()()()()()()()()

()()()()()()()12001020021

10121011011n n n n n n n

n n n n x x x x x x P x y x x x x x x x x x x x x y x x x x x x x x x x x x y x x x x x x -----=

------+

---+---+

---

()()()()()00110n

n n n k k k P x l x y l x y l x y l x y ==++

+=∑

其中()k l x 称为基函数(k=0,1,….,n ),每一个基函数都是关于x 的n 次多项式,其表达式为:

()0

n

j k j k j

j k

x x l x x x =≠-=-∏

拉格朗日公式特点:

1.把每一点的纵坐标k y 单独组成一项;

2.每一项中的分子是关于x 的n 次多项式,分母是一个常数;

3.每一项的分子和分母的形式非常相似,不同的是: 分子是()x -

,而分母是()k x -

7.误差分析(拉格朗日余项定理)

()()()()()()1

1!n n

n k k f P x f x x x n ξ+=-=-+∏, 其中ξ在01,,,,n x x x x 所界定的范围内。

针对以上例题的线性插值,有

()()()()()11151151151001151212!

f P f ξ''-=

--

函数()f x ''在[100,115]区间绝对值的极大值为()4100 2.510f -''=?, 则有:

()()11151150.011250.05P f -≤<

于是近似值()()111511510.71428571428572f P ≈=有三位有效数字。 针对以上例题的抛物线插值,有

()()()

()()()21151151151001151211151443!

f P f ξ'''-=

--- 函数()f x '''在[100,115]区间绝对值的极大值为()6100 3.7510f -'''=?,则有

()()21151150.00163125<0.005P f -≤

于是近似值()()2115115f P ≈=10.72275550536420有四位有效数字。 8.拉格朗日插值公式的优点

公式有较强的规律性,容易编写程序利用计算机进行数值计算。 9. 拉格朗日插值通用程序 程序流程图如下:

y

文件lagrange.m如下:

%拉格朗日插值

close all

n=input('已知的坐标点数n=?');

x=input('x1,x2,...,xn=?');

y=input('y1,y2,...,yn=?');

xx=input('插值点=?');

syms t %定义t为符号量p=0;

for k=1:n

l=1;

for j=1:k-1

l=l*(t-x(j))/(x(k)-x(j));

end

for j=k+1:n

l=l*(t-x(j))/(x(k)-x(j));

end

p=p+l*y(k);

end

p=inline(p); %把符号算式p变为函数形式fplot(p,[min(min(x),xx)-1,max(max(x),xx)+1]); %画多项式函数

hold on

p(xx) %显示插值点

plot(x,y,'o',xx,p(xx),'*'); %画已知点和插值点

在MATLAB命令窗口输入:

lagrange

然后有以下对话过程和结果,

已知的坐标点数n=?6

x1,x2,...,xn=?[1,3,5,7,9,11]

y1,y2,...,yn=?[-1,20,0,-1,12,3]

插值点=?8

ans =

5.67187500000000

有以下图形:

二.牛顿插值

拉格朗日插值的缺点:无承袭性(继承性)

若算出3点的抛物插值精度不够,再进行4点的3次多项式插值时,必须从头算起,前面算出的3点抛物插值的计算结果不能利用。

而泰勒插值却是具有承袭性的,如线性插值的结果不精确,那么再加上一项,就变成了泰勒抛物插值,如:

泰勒1次插值:()()()()1000P x f x f x x x '=+- 泰勒2次插值:()()()()()()2

0200002!

f x P x f x f x x x x x '''=+-+-。 而牛顿插值就是具有承袭性的插值公式 1.差商的概念

设n+1个点01,,

,n x x x 互不相等,则定义:

i x 和()j x i j ≠两点的一阶差商为:()(),i j i j i j

f x f x f x x x x -??=

??-

i x ,,j k x x 三点的二阶差商为:,,,,i j j k i j k i k

f x x f x x f x x x x x ????-??????=??- i x ,,,j k l x x x 四点的三阶差商为:,,,,,,,i j k j k l i j k l i l

f x x x f x x x f x x x x x x ????-??????=??- …… n+1个点01,,

,n x x x 的n 阶差商为:

[][][]

01112010,,,,,,,,,n n n n

f x x x f x x x f x x x x x --=

-

差商具有对称性:,,i j j i f x x f x x ????=????;,,,,i j k j i k f x x x f x x x ????=???? 2.牛顿插值解决的问题与拉格朗日插值解决的问题相同 只是表述 n 次多项式()n P x 的公式不同。 3.牛顿插公式的推导 根据差商的概念,有:

()()[]()000,f x f x f x x x x =+-…………………[]0,f x x 是0,x x 两点的一阶差商; [][][]()001011,,,,f x x f x x f x x x x x =+-……[]01,,f x x x 是01,,x x x 三点的二阶差商; ……

[][][]()010101,,,,,,,,,,n n n n f x x x f x x x f x x x x x x -=+-

把以上各式从后向前逐次代入,可以得到:

()()[]()[]()()[]()()

()

[]()()()

001001201010110101,,,,,,,,,

,n n n n f x f x f x x x x f x x x x x x x f x x x x x x x x x f x x x x x x x x x x -=+-+--+

+---+---

()()()n n f x P x R x =+ 其中

()()[]()[]()()[]()()

()

00100120101011,,,,,

,n n n P x f x f x x x x f x x x x x x x f x x x x x x x x x -=+-+--+

+---

()[]()()()0101,,,,n n n R x f x x x x x x x x x x =---

以上()n P x 的表达式称为牛顿插值公式,可以证明,n 次牛顿插值多项式与n 次拉格朗日插值多项式完全相同,只是表达形式不同。

故,拉格朗日余项定理与牛顿余项定理相同:

()()()[]()

()()()()1

0100

,,,

,1!n n

n n n n k k k k f R x P x f x f x x x x x x x x n ξ+===-=-=-+∏∏, 其中ξ在01,,,,n x x x x 所界定的范围内。

则有公式:[]()()

()101,,,,1!

n n f f x x x x n ξ+=

+

4.牛顿插值差商表

5.举例

已知函数f(x)当x=-2,-1,0,1,2时,其对应函数值为f(x)=13,-8,-1,4,1。求f(0.5)的值。

解:该题目与例1相比,就是多了一个点,所以和例1的差商表相比,只需多一列,多一行:

而5个点的4次牛顿插值多项式4P x 是在3P x 的基础上多增加1项:

()()()()()()()()()4132121421521211P x x x x x x x x x x x =-++++-+++++- 则

()()()()()()()()()(40.50.513210.52140.520.5150.520.510.50.520.510.50.52.6875

f P ≈=-++++-+++++-=可以在MATLAB 下运行程序newton02.m :

p4=inline('13-21*(x+2)+14*(x+2)*(x+1)-5*(x+2)*(x+1)*x+(x+2)*(x+1)*x*(x-1)');

fplot(p4,[-2.5,2.5],'r');

hold on

xi=[-2,-1,0,1,2];

yi=[13,-8,-1,4,1];

plot(xi,yi,'*');

plot(0.5,p4(0.5),'o');

可以得到以下图形:

6.牛顿插值的优点

(1)具有承袭性质

(2)利用差商表,计算多点插值,比拉格朗日公式计算方便。

7.牛顿插值算法的通用程序

以下是程序流程图:

MATLAB 的通用程序newton.m 为: %牛顿插值 close all

n=input('已知的坐标点数n=?'); x=input('x1,x2,...,xn=?'); y=input('y1,y2,...,yn=?'); xx=input('插值点=?');

% 计算差商:f[x1,x2],f[x1,x2,x3],...,f[x1,x2,...,xn] f=y;

for i=1:n-1 % 计算第i阶差商

for k=n:-1:i+1

f(k)=(f(k)-f(k-1))/(x(k)-x(k-i));

end

end

syms t %定义t为符号量

p=f(1);

for k=2:n

l=1;

for j=1:k-1

l=l*(t-x(j));

end

p=p+l*f(k);

end

p=inline(p); %把符号算式p变为函数形式

fplot(p,[min(min(x),xx)-1,max(max(x),xx)+1]); %画多项式函数

hold on

p(xx) %显示插值点

plot(x,y,'o',xx,p(xx),'*'); %画已知点和插值点

在MATLAB命令窗口输入:

newton

然后有以下对话过程和结果,

已知的坐标点数n=?6

x1,x2,...,xn=?[1,3,5,7,9,11]

y1,y2,...,yn=?[-1,20,0,-1,12,3]

插值点=?8

matlab实现数值分析报告插值及积分

Matlab实现数值分析插值及积分 摘要: 数值分析(numerical analysis)是研究分析用计算机求解数学计算问题的数值计算方法及其理论的学科,是数学的一个分支,它以数字计算机求解数学问题的理论和方法为研究对象。在实际生产实践中,常常将实际问题转化为数学模型来解决,这个过程就是数学建模。学习数值分析这门课程可以让我们学到很多的数学建模方法。 分别运用matlab数学软件编程来解决插值问题和数值积分问题。题目中的要求是计算差值和积分,对于问题一,可以分别利用朗格朗日插值公式,牛顿插值公式,埃特金逐次线性插值公式来进行编程求解,具体matlab代码见正文。编程求解出来的结果为:=+。 其中Aitken插值计算的结果图如下: 对于问题二,可以分别利用复化梯形公式,复化的辛卜生公式,复化的柯特斯公式编写程序来进行求解,具体matlab代码见正文。编程求解出来的结果为: 0.6932 其中复化梯形公式计算的结果图如下:

问题重述 问题一:已知列表函数 表格 1 分别用拉格朗日,牛顿,埃特金插值方法计算。 问题二:用复化的梯形公式,复化的辛卜生公式,复化的柯特斯公式计算积分,使精度小于5。 问题解决 问题一:插值方法 对于问题一,用三种差值方法:拉格朗日,牛顿,埃特金差值方法来解决。 一、拉格朗日插值法: 拉格朗日插值多项式如下: 首先构造1+n 个插值节点n x x x ,,,10 上的n 插值基函数,对任一点i x 所对应的插值基函数 )(x l i ,由于在所有),,1,1,,1,0(n i i j x j +-=取零值,因此)(x l i 有因子 )())(()(110n i i x x x x x x x x ----+- 。又因)(x l i 是一个次数不超过n 的多项式,所以只 可能相差一个常数因子,固)(x l i 可表示成: )())(()()(110n i i i x x x x x x x x A x l ----=+- 利用1)(=i i x l 得:

(精品)数值分析课程设计-三次样条插值

《数值分析课程设计-三次样条插值》 报告

掌握三次样条插值函数的构造方法,体会三次样条插值函数对被逼近函数的近似。 三次样条插值函数边界条件由实际问题对三次样条插值在端点的状态要求给出。 以第1 边界条件为例,用节点处二阶导数表示三次样条插值函数,用追赶法求解相关方程组。通过Matlab 编制三次样条函数的通用程序,可直接显示各区间段三次样条函数体表达式,计算出已给点插值并显示各区间分段曲线图。 引言 分段低次样条插值虽然计算简单、稳定性好、收敛性有保证且易在电子计算机上实现,但只能保证各小段曲线在连接处的连续性,不能保证整件曲线的光滑性。利用样条插值,既可保持分段低次插值多项式,又可提高插值函数光滑性。故给出分段三次样条插值的构造过程算法步骤,利用Matlab软件编写三次样条插值函数通用程序,并通过数值算例证明程序的正确性。 三次样条函数的定义及特征 定义:设[a,b] 上有插值节点,a=x1<x2<…xn=b,对应函数值为y1,y2,?yn。若函数S(x) 满 足S(xj) = yj ( j = 1,2, ?,n ), S(x) 在[xj,xj+1] ( j =1,2,?,n-1)上都是不高于三的多项式(为了与其对应j 从1 开始,在Matlab 中元素脚标从1 开始)。当S(x) 在 [a,b] 具有二阶连续导

数。则称S(x) 为三次样条插值函数。要求S(x) 只需在每个子区 间[xj,xj+1] 上确定 1 个三次多项式,设为: Sj(x)=ajx3+bjx2+cjx+dj, (j=1,2,?,n-1) (1) 其中aj,bj,cj,dj 待定,并要使它满足: S(xj)=yj, S(xj-0)=S(xj+0), (j=2,?,n-1) (2) S'(xj-0)=S'(xj+0), S"(xj-0)=S"(xj+0), (j=2,?,n-1) (3) 式(2)、(3)共给出n+3(n-2)=4n-6 个条件, 需要待定4(n-1) 个系数,因此要唯一确定三次插值函数,还要附加2 个边界条件。通常由实际问题对三次样条插值在端点的状态要求给 出。常用边界的条件有以下3 类。 第 1 类边界条件:给定端点处的一阶导数值,S'(x1)=y1',S'(xn) =yn'。 第 2 类边界条件:给定端点处的二阶导数值,S"(x1)=y1",S"(xn) =yn"。特殊情况y1"=yn"=0,称为自然边界条件。 第 3 类边界条件是周期性条件,如果y=f(x)是以b-a 为周期的函 数,于是S(x) 在端点处满足条件S'(x1+0)=S'(xn-0),S"(x+0) =S"(xn-0)。 下以第 1 边界条件为例,利用节点处二阶导数来表示三次样条插值

数值分析常用的插值方法

数值分析报告 班级: 专业: 流水号: 学号: 姓名:

常用的插值方法 序言 在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。 早在6世纪,中国的刘焯已将等距二次插值用于天文计算。17世纪之后,牛顿、拉格朗日分别讨论了等距和非等距的一般插值公式。在近代,插值法仍然是数据处理和编制函数表的常用工具,又是数值积分、数值微分、非线性方程求根和微分方程数值解法的重要基础,许多求解计算公式都是以插值为基础导出的。 插值问题的提法是:假定区间[a,b〕上的实值函数f(x)在该区间上n+1个互不相同点x0,x1……x n处的值是f(x0),……f(x n),要求估算f(x)在[a,b〕中某点的值。其做法是:在事先选定的一个由简单函数构成的有n+1个参数C0, C1,……C n的函数类Φ(C0,C1,……C n)中求出满足条件P(x i)=f(x i)(i=0,1,……n)的函数P(x),并以P(x)作为f(x)的估值。此处f(x)称为被插值函数,x0,x1,……xn 称为插值结(节)点,Φ(C0,C1,……C n)称为插值函数类,上面等式称为插值条件,Φ(C0,……C n)中满足上式的函数称为插值函数,R(x)=f(x)-P(x)称为插值余项。

求解这类问题,它有很多种插值法,其中以拉格朗日(Lagrange)插值和牛顿(Newton)插值为代表的多项式插值最有特点,常用的插值还有Hermit 插值,分段插值和样条插值。 一.拉格朗日插值 1.问题提出: 已知函数()y f x =在n+1个点01,,,n x x x L 上的函数值01,,,n y y y L ,求任意一点 x '的函数值()f x '。 说明:函数()y f x =可能是未知的;也可能是已知的,但它比较复杂,很难计算其函数值()f x '。 2.解决方法: 构造一个n 次代数多项式函数()n P x 来替代未知(或复杂)函数()y f x =,则 用()n P x '作为函数值()f x '的近似值。 设()2012n n n P x a a x a x a x =++++L ,构造()n P x 即是确定n+1个多项式的系数 012,,,,n a a a a L 。 3.构造()n P x 的依据: 当多项式函数()n P x 也同时过已知的n+1个点时,我们可以认为多项式函数 ()n P x 逼近于原来的函数()f x 。根据这个条件,可以写出非齐次线性方程组: 20102000 20112111 2012n n n n n n n n n n a a x a x a x y a a x a x a x y a a x a x a x y ?++++=?++++=?? ? ?++++=?L L L L L 其系数矩阵的行列式D 为范德萌行列式: ()20 0021110 2111n n i j n i j n n n n x x x x x x D x x x x x ≥>≥= = -∏L L M M M M L

数值分析实验报告-插值、三次样条Word版

实验报告:牛顿差值多项式&三次样条 问题:在区间[-1,1]上分别取n=10、20用两组等距节点对龙格函数21()25f x x 作多项式插值及三次样条插值,对每个n 值,分别画出插值函数及()f 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') ylabel('y') P10即我们所求的牛顿插值多项式,其结果为:P10(x)=-220.94*x^10+494.91*x^8-9.5065e-14*x^7-381.43*x^6-8.504e-14*x^5+123.36*x^4+2.0 202e-14*x^3-16.855*x^2-6.6594e-16*x+1.0 并且这里也能得到该牛顿插值多项式的在[-1,1]上的图形,并和原函数进行对比(见Fig.1)。 Fig.1 牛顿插值多项式(n=10)函数和原函数图形 从图形中我们可以明显的观察出插值函数在两端点处发生了剧烈的波动,产生了极大的误差,即龙格现象,当n=20时,这一现象将更加明显。 1.2 当n=20时: 对n=10的代码进行修改就可以得到n=20时的代码。将“x1=-1:0.2:1;”改为“x1=-1:0.1:1;”即可。运行程序,我们得到n=20时的牛顿插值多项式,结果为:P20(x)= 260188.0*x^20 - 1.0121e6*x^18 + 2.6193e-12*x^17 + 1.6392e6*x^16 + 2.248e-11*x^15 - 1.4429e6*x^14 - 4.6331e-11*x^13 + 757299.0*x^12 + 1.7687e-11*x^11 - 245255.0*x^10 + 2.1019e-11*x^9 + 49318.0*x^8 + 3.5903e-12*x^7 - 6119.2*x^6 - 1.5935e-12*x^5 + 470.85*x^4 + 1.3597e-14*x^3 - 24.143*x^2 - 1.738e-14*x + 1.0 同样的,这里得到了该牛顿插值多项式的在[-1,1]上的图形,并和原函数进行对比(见Fig.2)。

数值分析拉格朗日插值法上机实验报告

课题一:拉格朗日插值法 1.实验目的 1.学习和掌握拉格朗日插值多项式。 2.运用拉格朗日插值多项式进行计算。 2.实验过程 作出插值点(1.00,0.00),(-1.00,-3.00),(2.00,4.00)二、算法步骤 已知:某些点的坐标以及点数。 输入:条件点数以及这些点的坐标。 输出:根据给定的点求出其对应的拉格朗日插值多项式的值。 3.程序流程: (1)输入已知点的个数; (2)分别输入已知点的X坐标; (3)分别输入已知点的Y坐标; 程序如下: #include #include #include float lagrange(float *x,float *y,float xx,int n) /*拉格朗日

插值算法*/ { int i,j; float *a,yy=0.0; /*a作为临时变量,记录拉格朗日插值多项*/ a=(float*)malloc(n*sizeof(float)); for(i=0;i<=n-1;i++) { a[i]=y[i]; for(j=0;j<=n-1;j++) if(j!=i) a[i]*=(xx-x[j])/(x[i]-x[j]); yy+=a[i]; } free(a); return yy; } int main() { int i; int n; float x[20],y[20],xx,yy; printf("Input n:");

scanf("%d",&n); if(n<=0) { printf("Error! The value of n must in (0,20)."); getch();return 1; } for(i=0;i<=n-1;i++) { printf("x[%d]:",i); scanf("%f",&x[i]); } printf("\n"); for(i=0;i<=n-1;i++) { printf("y[%d]:",i);scanf("%f",&y[i]); } printf("\n"); printf("Input xx:"); scanf("%f",&xx); yy=lagrange(x,y,xx,n); printf("x=%f,y=%f\n",xx,yy); getch(); } 举例如下:已知当x=1,-1,2时f(x)=0,-3,4,求f(1.5)的值。

数值分析常用的插值方法

数值分析 报告 班级: 专业: 流水号: 学号: 姓名:

常用的插值方法 序言 在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。 早在6世纪,中国的刘焯已将等距二次插值用于天文计算。17世纪之后,牛顿、拉格朗日分别讨论了等距和非等距的一般插值公式。在近代,插值法仍然是数据处理和编制函数表的常用工具,又是数值积分、数值微分、非线性方程求根和微分方程数值解法的重要基础,许多求解计算公式都是以插值为基础导出的。 插值问题的提法是:假定区间[a,b〕上的实值函数f(x)在该区间上 n+1 个互不相同点x 0,x 1 (x) n 处的值是f(x ),……f(x n ),要求估算f(x)在[a,b〕 中某点的值。其做法是:在事先选定的一个由简单函数构成的有n+1个参数C , C 1,……C n 的函数类Φ(C ,C 1 ,……C n )中求出满足条件P(x i )=f(x i )(i=0,1,…… n)的函数P(x),并以P(x)作为f(x)的估值。此处f(x)称为被插值函数,x 0,x 1 ,……xn 称为插值结(节)点,Φ(C 0,C 1 ,……C n )称为插值函数类,上面等式称为插值条件, Φ(C 0,……C n )中满足上式的函数称为插值函数,R(x)= f(x)-P(x)称为 插值余项。

求解这类问题,它有很多种插值法,其中以拉格朗日(Lagrange)插值和牛顿(Newton)插值为代表的多项式插值最有特点,常用的插值还有Hermit 插值,分段插值和样条插值。 一.拉格朗日插值 1.问题提出: 已知函数()y f x =在n+1个点01,, ,n x x x 上的函数值01,, ,n y y y ,求任意一点 x '的函数值()f x '。 说明:函数()y f x =可能是未知的;也可能是已知的,但它比较复杂,很难计算其函数值()f x '。 2.解决方法: 构造一个n 次代数多项式函数()n P x 来替代未知(或复杂)函数()y f x =,则 用()n P x '作为函数值()f x '的近似值。 设()2012n n n P x a a x a x a x =+++ +,构造()n P x 即是确定n+1个多项式的系数 012,,,,n a a a a 。 3.构造()n P x 的依据: 当多项式函数()n P x 也同时过已知的n+1个点时,我们可以认为多项式函数 ()n P x 逼近于原来的函数()f x 。根据这个条件,可以写出非齐次线性方程组: 20102000 201121112012n n n n n n n n n n a a x a x a x y a a x a x a x y a a x a x a x y ?+++ +=?++++=??? ?+++ +=? 其系数矩阵的行列式D 为范德萌行列式: () 200021110 2 111n n i j n i j n n n n x x x x x x D x x x x x ≥>≥= = -∏

三次样条插值方法的应用

CENTRAL SOUTH UNIVERSITY 数值分析实验报告

三次样条插值方法的应用 一、问题背景 分段低次插值函数往往具有很好的收敛性,计算过程简单,稳定性好,并且易于在在电子计算机上实现,但其光滑性较差,对于像高速飞机的机翼形线船体放样等型值线往往要求具有二阶光滑度,即有二阶连续导数,早期工程师制图时,把富有弹性的细长木条(即所谓的样条)用压铁固定在样点上,在其他地方让他自由弯曲,然后沿木条画下曲线,称为样条曲线。样条曲线实际上是由分段三次曲线并接而成,在连接点即样点上要求二阶导数连续,从数学上加以概括就得到数学样条这一概念。下面我们讨论最常用的三次样条函数及其应用。 二、数学模型 样条函数可以给出光滑的插值曲线(面),因此在数值逼近、常微分方程和偏微分方程的数值解及科学和工程的计算中起着重要的作用。 设区间[]b ,a 上给定有关划分b x x n =<<<= 10x a ,S 为[]b ,a 上满足下面条件的函数。 ● )(b a C S ,2∈; ● S 在每个子区间[]1,+i i x x 上是三次多项式。 则称S 为关于划分的三次样条函数。常用的三次样条函数的边界条件有三种类型: ● Ⅰ型 ()()n n n f x S f x S ''0'',==。 ● Ⅱ型 ()()n n n f x S f x S ''''0'''',==,其特殊情况为()()0''''==n n x S x S 。 ● Ⅲ型 ()() 3,2,1,0,0==j x S x S n j j ,此条件称为周期样条函数。 鉴于Ⅱ型三次样条插值函数在实际应用中的重要地位,在此主要对它进行详细介绍。 三、算法及流程 按照传统的编程方法,可将公式直接转换为MATLAB 可是别的语言即可;另一种是运用矩阵运算,发挥MATLAB 在矩阵运算上的优势。两种方法都可以方便地得到结果。方法二更直观,但计算系数时要特别注意。这里计算的是方法一的程序,采用的是Ⅱ型边界条件,取名为spline2.m 。 Matlab 代码如下: function s=spline2(x0,y0,y21,y2n,x) %s=spline2(x0,y0,y21,y2n,x) %x0,y0 are existed points,x are insert points,y21,y2n are the second

数值分析实验插值与拟合

《数值分析》课程实验一:插值与拟合 一、实验目的 1. 理解插值的基本原理,掌握多项式插值的概念、存在唯一性; 2. 编写MA TLAB 程序实现Lagrange 插值和Newton 插值,验证Runge 现象; 3. 通过比较不同次数的多项式拟合效果,理解多项式拟合的基本原理; 4. 编写MA TLAB 程序实现最小二乘多项式曲线拟合。 二、实验内容 1. 用Lagrange 插值和Newton 插值找经过点(-3, -1), (0, 2), (3, -2), (6, 10)的三次插值公式,并编写MATLAB 程序绘制出三次插值公式的图形。 2. 设 ]5,5[,11 )(2 -∈+= x x x f 如果用等距节点x i = -5 + 10i /n (i = 0, 1, 2, …, n )上的Lagrange 插值多项式L n (x )去逼近它。不妨取n = 5和n = 10,编写MATLAB 程序绘制出L 5(x )和L 10(x )的图像。 (2) 编写MA TLAB 程序绘制出曲线拟合图。 三、实验步骤 1. (1) Lagrange 插值法:在线性空间P n 中找到满足条件: ?? ?≠===j i j i x l ij j i , 0, , 1)(δ 的一组基函数{}n i i x l 0)(=,l i (x )的表达式为 ∏ ≠==--= n i j j j i j i n i x x x x x l ,0),,1,0()( 有了基函数{}n i i x l 0)(=,n 次插值多项式就可表示为 ∑==n i i i n x l y x L 0 )()( (2) Newton 插值法:设x 0, x 1, …, x n 是一组互异的节点,y i = f (x i ) (i = 0, 1, 2, …, n ),f (x )在处的n 阶差商定义为

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

数值计算方法作业 实验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 其中????? ?? ?? ?????? --=--= --= -)/(]),...,[],...,[(]...,[..],[],[],,[)()(],[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

数值分析 插值法

第二章插值法 2.在区间[-1,1]上分别取n=10,20用两组等距节点对龙哥函数f(x)=1/(1+25*x^2)做多项式插值及三次样条插值,对每个n值,分别画出插值函数及f(x)的图形。 (1)多项式插值 ①先建立一个多项式插值的M-file; 输入如下的命令(如牛顿插值公式): function [C,D]=newpoly(X,Y) n=length(X); D=zeros(n,n) D(:,1)=Y' for j=2:n for k=j:n D(k,j)=(D(k,j-1)- D(k-1,j-1))/(X(k)-X(k-j+1)); end end C=D(n,n); for k=(n-1):-1:1 C=conv(C,poly(X(k))) m=length(C); C(m)= C(m)+D(k,k); end ②当n=10时,我们在命令窗口中输入以下的命令: clear,clf,hold on; X=-1:0.2:1; Y=1./(1+25*X.^2); [C,D]=newpoly(X,Y); x=-1:0.01:1; y=polyval(C,x); plot(x,y,X,Y,'.'); grid on; xp=-1:0.2:1; z=1./(1+25*xp.^2); plot(xp,z,'r') 得到插值函数和f(x)图形:

③当n=20时,我们在命令窗口中输入以下的命令:clear,clf,hold on; X=-1:0.1:1; Y=1./(1+25*X.^2); [C,D]=newpoly(X,Y); x=-1:0.01:1; y=polyval(C,x); plot(x,y,X,Y,'.'); grid on; xp=-1:0.1:1; z=1./(1+25*xp.^2); plot(xp,z,'r') 得到插值函数和f(x)图形:

数值分析实验报告-插值、三次样条(教育教学)

实验报告:牛顿差值多项式&三次样条 问题:在区间[-1,1]上分别取n=10、20用两组等距节点对龙格函数2 1()25f x x 作多项式插值及三次样条插值,对每个n 值,分别画出插值函数及()f 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') ylabel('y') P10即我们所求的牛顿插值多项式,其结果为:P10(x)=-220.94*x^10+494.91*x^8-9.5065e-14*x^7-381.43*x^6-8.504e-14*x^5+123.36*x^4+2.0202e-1 4*x^3-16.855*x^2-6.6594e-16*x+1.0 并且这里也能得到该牛顿插值多项式的在[-1,1]上的图形,并和原函数进行对比(见Fig.1)。 Fig.1 牛顿插值多项式(n=10)函数和原函数图形 从图形中我们可以明显的观察出插值函数在两端点处发生了剧烈的波动,产生了极大的误差,即龙格现象,当n=20时,这一现象将更加明显。 1.2 当n=20时: 对n=10的代码进行修改就可以得到n=20时的代码。将“x1=-1:0.2:1;”改为“x1=-1:0.1:1;”即可。运行程序,我们得到n=20时的牛顿插值多项式,结果为:P20(x)= 260188.0*x^20 - 1.0121e6*x^18 + 2.6193e-12*x^17 + 1.6392e6*x^16 + 2.248e-11*x^15 - 1.4429e6*x^14 - 4.6331e-11*x^13 + 757299.0*x^12 + 1.7687e-11*x^11 - 245255.0*x^10 + 2.1019e-11*x^9 + 49318.0*x^8 + 3.5903e-12*x^7 - 6119.2*x^6 - 1.5935e-12*x^5 + 470.85*x^4 + 1.3597e-14*x^3 - 24.143*x^2 - 1.738e-14*x + 1.0 同样的,这里得到了该牛顿插值多项式的在[-1,1]上的图形,并和原函数进行对比(见Fig.2)。

数值分析课程设计--三次样条插值

《数值分析》课程设计 三次样条插值算法 院(系)名称信息工程学院 专业班级09普本信计1班 学号 学生姓名 指导教师

数值分析课程设计评阅书

课程设计任务书 2008—2009学年第二学期 专业班级:09普本信计1班学号:姓名: 课程设计名称:数值分析 设计题目:三次样条插值 完成期限:自2012 年 6 月8 日至2012 年 6 月13 日共 1 周 设计依据、要求及主要内容: 一、设计目的 熟练掌握三次样条插值算法的原理和推导过程,并且能够应用Matlab软件编写相应的程序和使用Matlab软件函数库软件。 二、设计要求 (1)用Matlab函数库中相应函数对选定的问题,求出具有一定精度的结果。 (2)使用所用的方法编写Matlab程序求解,对数值结果进行分析。 (3)对于使用多个方法解同一问题的,在界面上设计成菜单形式。 三、设计内容 首先构造三次样条插值函数的定义和一般特征,并对实例问题进行实例分析,并总结 四、参考文献 [1] 黄明游,冯果忱.数值分析[M].北京:高等教育出版社,2008. [2]马东升,雷勇军.数值计算方法[M].北京:机械工业出版社,2006. [3] 石博强,赵金.MATLAB数学计算与工程分析范例教程[M].北京:中国铁道出版社.2005. [4]郝红伟,MATLAB 6,北京,中国电力出版社,2001 [5]姜健飞,胡良剑,数值分析及其MATLAB实验,科学出版社,2004 [6]薛毅,数值分析实验,北京工业大学出版社,2005 计划答辩时间:2012年6月18日

指导教师(签字):教研室主任(签字):批准日期:年月

常州大学数值分析课后习题答案第二章第三章第四章节

数值分析作业 第二章 1、用Gauss消元法求解下列方程组: 2x 1-x 2 +3x 3 =1, (1) 4x 1+2x 2 +5x 3 =4, x 1+2x 2 =7; (2) 解: A=[2 -1 3 1;4 2 5 4;1 2 0 7] n=size(A,1);x=zeros(n,1);flag=1; % 消元过程 for k=1:n-1 for i=k+1:n if abs(A(k,k))>eps A(i,k+1:n+1)= A(i,k+1:n+1)-A(k,k+1:n+1)*A(i,k)/A(k,k); else flag=0; return end end end % 回代过程 if abs(A(n,n))>eps x(n)=A(n,n+1)/A(n,n); else flag=0; return end for i=n-1:-1:1 x(i)=(A(i,n+1)-A(i,i+1:n)*x(i+1:n))/A(i,i); end return x A = 2 -1 3 1 4 2 5 4 1 2 0 7

x = 9 -1 -6 11x1-3x2-2x3=3, (2)-23x 1+11x 2 +1x 3 =0, x 1+2x 2 +2x 3 =-1; (2) 解: A=[11 -3 -2 3;-23 11 1 0;1 2 2 -1] n=size(A,1);x=zeros(n,1);flag=1; % 消元过程 for k=1:n-1 for i=k+1:n if abs(A(k,k))>eps A(i,k+1:n+1)= A(i,k+1:n+1)-A(k,k+1:n+1)*A(i,k)/A(k,k); else flag=0; return end end end % 回代过程 if abs(A(n,n))>eps x(n)=A(n,n+1)/A(n,n); else flag=0; return end for i=n-1:-1:1 x(i)=(A(i,n+1)-A(i,i+1:n)*x(i+1:n))/A(i,i); end return x A = 11 -3 -2 3 -23 11 1 0 1 2 2 -1 x = 0.2124 0.5492 -1.1554 4、用Cholesky分解法解方程组 3 2 3 x1 5 2 2 0 x2 3 3 0 12 x3 7

数值分析课程设计(三次样条插值)

《数值分析课程设计》 报告 专业: 学号: 学生姓名: 指导教师:

7.掌握三次样条插值函数的构造方法,体会三次样条插值函数对被逼近函数的近似。 三次样条插值函数边界条件由实际问题对三次样条插值在端点的状态要求给出。以第1 边界条件为例, 用节点处二阶导数表示三次样条插值函数,用追赶法求解相关方程组。通过Matlab 编制三次样条函数的通用程序,可直接显示各区间段三次样条函数体表达式,计算出已给点插值并显示各区间分段曲线图。 引言 分段低次样条插值虽然计算简单、稳定性好、收敛性有保证且易在电子计算机上实现,但只能保证各小段曲线在连接处的连续性,不能保证整件曲线的光滑性。利用样条插值,既可保持分段低次插值多项式,又可提高插值函数光滑性。故给出分段三次样条插值的构造过程算法步骤,利用Matlab软件编写三次样条插值函数通用程序,并通过数值算例证明程序的正确性。 三次样条函数的定义及特征 定义:设[a,b] 上有插值节点,a=x1<x2<…x n=b,对应函数值为y1,y2,?y n。若函数S(x) 满足S(x j) =y j (j =1,2, ?,n ),S(x) 在[x j,x j+1] (j =1,2,?,n-1)上都是不高于三的多项式(为了与其对应j 从1 开始,在Matlab 中元素脚标从1 开始)。当S(x) 在[a,b] 具有二阶连续导数。则称S(x) 为三次样条插值函数。要求S(x) 只需在每个子区间[x j,x j+1] 上确定1 个三次多项式,设为: Sj(x)=ajx3+bjx2+cjx+dj, (j=1,2,?,n-1) (1) 其中a j,b j,c j,d j 待定,并要使它满足: S(x j)=y j, S(x j-0)=S(x j+0), (j=2,?,n-1) (2) S'(x j-0)=S'(x j+0), S"(x j-0)=S"(x j+0), (j=2,?,n-1) (3) 式(2)、(3)共给出n+3(n-2)=4n-6 个条件, 需要待定4(n-1) 个系数,因此要唯一确定三次插值函数,还要附加2 个边界条件。通常由实际问题对三次样条插值在端点的状态要求给出。常用边界的条件有以下3 类。 第1 类边界条件:给定端点处的一阶导数值,S'(x1)=y1',S'(x n)=y n'。 第 2 类边界条件:给定端点处的二阶导数值,S"(x1)=y1",S"(x n)=y n"。特殊情况y1"=y n"=0,称为自然边界条件。 第3 类边界条件是周期性条件,如果y=f(x)是以b-a 为周期的函数,于是S(x) 在端点处满足条件S'(x1+0)=S'(x n-0),S"(x+0)=S"(x n-0)。 下以第1 边界条件为例,利用节点处二阶导数来表示三次样条插值函数,给出具体的推导过程。 2 三次样条插值函数的推导过程 注意到S(x) 在[x j, x j+1](j=1,2,?,n-1)上是三次多项式,于是S"(x)在[x j, x j+1] 上是一次多项式,如果S"(x) 在[x j,x j+1](j=1,2,?,n-1)两端点上的值已知,设S"(x j)=M j,S"(x j+1)=M j+1,其中h j =x j+1-x j,对S"(x) 进行两次积分,则得到1 个具有2个任意常数A j,B j 的S(x) 表达式。对S"(x) 求两次积分

数值分析常用的插值方法

数值分析 报告 班级: 专业: 流水号: 学号: 姓名:

常用的插值方法 序言 在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。 早在6世纪,中国的刘焯已将等距二次插值用于天文计算。17世纪之后,牛顿、 拉格朗日分别讨论了等距和非等距的一般插值公式。在近代,插值法仍然是数据处理和编制函数表的常用工具,又是数值积分、数值微分、非线性方程求根和微分方程数值解法的重要基础,许多求解计算公式都是以插值为基础导出的。 插值问题的提法是:假定区间[a, b〕上的实值函数f (x)在该区间上n + 1个互不相同点X o,X1 X n处的值是f ( X o),........... f ( X n),要求估算f (x)在[a,b〕中某点的值。其做法是:在事先选定的一个由简单函数构成的有n + 1个参数C o, C i,……C n的函数类0(C o, C i,……C n)中求出满足条件P(X i) = f (X i) (i = 0,1,…… n)的函数P(x),并以P(x)(乍为f(x)的估值。此处f (X)称为被插值函数,X O,X1,……Xn 称为插值结(节)点,①(C O, C1,……C n)称为插值函数类,上面等式称为插值条件,①(C o,……C n)中满足上式的函数称为插值函数,R (x)= f (x)- P ( X)称为插值余项。

求解这类问题,它有很多种插值法,其中以拉格朗日 (Lagra nge)插值和牛顿 (Newt on)插值为代表的多项式插值最有特点,常用的插值还有 Hermit 插值,分段插 值和样条插值。 一.拉格朗日插值 1?问题提出: 已知函数y f x 在n+1个点X o*丄x 上的函数值y °,y i 丄,y *,求任意一点 X 的函数值f X 。 说明:函数y f x 可能是未知的;也可能是已知的,但它比较复杂,很难计 算其函数值f X 2. 解决方法: 构造一个n 次代数多项式函数F n x 来替代未知(或复杂)函数y 其系数矩阵的行列式D 为范德萌行列式: 1 X o X o 2 L 1 x 1 x 12 L M M M 1 X n X n 2 L X 。根据这个条件, 可以写出非齐次线性方程组: a o ax 2 a 2X o L n a n X o y o a o a 1x 1 2 a 2x L n a n X 1 y 1 L L a o ax 2 a ?X n L n a n X n y n R x 逼近于原来的函数 f X ,则 用P, X 作为函数值f X 的近似值。 设 F n X a 0 a 1X a 2x 2 L a n x n ,构造F n x 即是确定n+1个多项式的系数 a o , a i , a 2 ,L , a n 。 3. 构造P n X 的依据: 当多项式函数P n X 也同时过已知的 n+1 个点时,我们可以认为多项式函数 n X o n X 1 M n X n X i X j

数值分析第三次作业解答

数值分析第三次作业解答 思考题: 1: (a )对给定的连续函数,构造等距节点上的Lagrange 插值多项式,节点数目越多,得到的插值多项式越接近被逼近的函数。×; (b) 对给定的连续函数,构造其三次样条函数插值,则节点数目越多,得到的样条函数越接近被逼近的函数。 √ (c) 高次的Lagrange 插值多项式很常用。 × (d) 样条函数插值具有比较好的数值稳定性。 √ 3. 以0.1,0.15,0.2为插值节点, 计算()f x = Lagrange 插值多项式 2()P x , 比较2(0)P 和(0)f ,问定理4.1的结果是否适用本问题? 解: 构造插值多项式: 0122022(0.15)(0.2) ()0.050.1 (0.1)(0.2)()0.050.05 (0.1)(0.15)()0.10.05()()()() (0)0;(0)0.1403 x x l x x x l x x x l x P x x x x f P --= ?--=?--=?=++== 在(0,2)区间,5''''''23()(0.2)118.585458 f x x f -=≤=

从而,对任意的 '''3()(0,0.2),(0)0.05933! f ξξω∈≤ 不存在'''32()(0,0.2),(0)(0)(0)0.14033! f f P ξξω∈=-=。 演示程序: x=0:0.01:0.2; y=x.^(1/2); plot(x,y,'r') pause,hold on x0=[0.1,0.15 ,0.2]; y0=x0.^(1/2); x=0:0.01:0.2; y1=lagrangen(x0,y0,x); plot(x,y1,'b') 5:(a )求()f x x =在节点 123452,0.5,0, 1.5,2x x x x x =-=-=== 的三次样条插值(150M M ==)。 解: 23452341.5,0.5, 1.5,0.5, 2/31/12001/122/31/4201/42/30h h h h M M M ====????????????=??????????????????

数值分析作业-三次样条插值教学提纲

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

数值计算方法作业 实验4.3 三次样条差值函数 实验目的: 掌握三次样条插值函数的三弯矩方法。 实验函数: dt e x f x t ? ∞ -- =2 221)(π 求f(0.13)和f(0.36)的近似值 实验内容: (1) 编程实现求三次样条插值函数的算法,分别考虑不同的边界条件; (2) 计算各插值节点的弯矩值; (3) 在同一坐标系中绘制函数f(x),插值多项式,三次样条插值多项式的曲 线比较插值结果。 实验4.5 三次样条差值函数的收敛性 实验目的: 多项式插值不一定是收敛的,即插值的节点多,效果不一定好。对三次样条插值函数如何呢?理论上证明三次样条插值函数的收敛性是比较困难的,通过本实验可以证明这一理论结果。

实验内容: 按照一定的规则分别选择等距或非等距的插值节点,并不断增加插值节点的个数。 实验要求: (1) 随着节点个数的增加,比较被逼近函数和三样条插值函数的误差变化情 况,分析所得结果并与拉格朗日插值多项式比较; (2) 三次样条插值函数的思想最早产生于工业部门。作为工业应用的例子, 考虑如下例子:某汽车制造商根据三次样条插值函数设计车门曲线,其中一段数据如下: k x 0 1 2 3 4 5 6 7 8 9 10 k y 0.0 0.79 1.53 2.19 2.71 3.03 3.27 2.89 3.06 3.19 3.29 k y ' 0.8 0.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

相关主题