高等数值分析插值程序题Runge现象

合集下载

插值MATLAB实现(牛顿差商插值误差龙格现象切比雪夫插值)

插值MATLAB实现(牛顿差商插值误差龙格现象切比雪夫插值)

插值MATLAB实现(牛顿差商插值误差龙格现象切比雪夫插值)插值是数值分析中的一种方法,通过已知数据点的函数值来估计函数在其他点的值。

MATLAB提供了多种方法来实现插值,包括牛顿差商插值、插值误差分析、龙格现象和切比雪夫插值。

下面将详细介绍这些方法的实现原理和MATLAB代码示例。

1.牛顿差商插值:牛顿差商插值是一种基于多项式插值的方法,其中差商是一个连续性的差分商。

该方法的优势在于可以快速计算多项式的系数。

以下是MATLAB代码示例:```matlabfunction [coeff] = newton_interpolation(x, y)n = length(x);F = zeros(n, n);F(:,1)=y';for j = 2:nfor i = j:nF(i,j)=(F(i,j-1)-F(i-1,j-1))/(x(i)-x(i-j+1));endendcoeff = F(n, :);end```该代码中,输入参数x和y分别表示已知数据点的x坐标和y坐标,返回值coeff表示插值多项式的系数。

2.插值误差分析:插值误差是指插值函数与原始函数之间的差异。

一般来说,通过增加插值节点的数量或使用更高次的插值多项式可以减小插值误差。

以下是MATLAB代码示例:```matlabfunction [error] = interpolation_error(x, y, x_eval)n = length(x);p = polyfit(x, y, n-1);y_eval = polyval(p, x_eval);f_eval = sin(pi*x_eval);error = abs(f_eval - y_eval);end```该代码中,输入参数x和y分别表示已知数据点的x坐标和y坐标,x_eval表示插值节点的x坐标,error表示插值误差。

3.龙格现象:龙格现象是插值多项式在等距插值节点上错误增长的现象。

数值分析实验报告--实验2--插值法

数值分析实验报告--实验2--插值法

1 / 21数值分析实验二:插值法1 多项式插值的震荡现象1.1 问题描述考虑一个固定的区间上用插值逼近一个函数。

显然拉格朗日插值中使用的节点越多,插值多项式的次数就越高。

我们自然关心插值多项式的次数增加时, 是否也更加靠近被逼近的函数。

龙格(Runge )给出一个例子是极著名并富有启发性的。

设区间[-1,1]上函数21()125f x x=+ (1)考虑区间[-1,1]的一个等距划分,分点为n i nix i ,,2,1,0,21 =+-= 则拉格朗日插值多项式为201()()125nn ii iL x l x x ==+∑(2)其中的(),0,1,2,,i l x i n =是n 次拉格朗日插值基函数。

实验要求:(1) 选择不断增大的分点数目n=2, 3 …. ,画出原函数f(x)及插值多项式函数()n L x 在[-1,1]上的图像,比较并分析实验结果。

(2) 选择其他的函数,例如定义在区间[-5,5]上的函数x x g xxx h arctan )(,1)(4=+=重复上述的实验看其结果如何。

(3) 区间[a,b]上切比雪夫点的定义为 (21)cos ,1,2,,1222(1)k b a b ak x k n n π⎛⎫+--=+=+ ⎪+⎝⎭(3)以121,,n x x x +为插值节点构造上述各函数的拉格朗日插值多项式,比较其结果,试分析2 / 21原因。

1.2 算法设计使用Matlab 函数进行实验, 在理解了插值法的基础上,根据拉格朗日插值多项式编写Matlab 脚本,其中把拉格朗日插值部分单独编写为f_lagrange.m 函数,方便调用。

1.3 实验结果1.3.1 f(x)在[-1,1]上的拉格朗日插值函数依次取n=2、3、4、5、6、7、10、15、20,画出原函数和拉格朗日插值函数的图像,如图1所示。

Matlab 脚本文件为Experiment2_1_1fx.m 。

可以看出,当n 较小时,拉格朗日多项式插值的函数图像随着次数n 的增加而更加接近于f(x),即插值效果越来越好。

计算方法大作业1 克服Runge现象

计算方法大作业1  克服Runge现象

x3
x2
x
1
S1 ( x)
-0.34685
0.2086
0.073964
0.038462
S2 (x)
S (xi 0 ) S x(i 0 )

S
'
(xi

0) S
xi' (
0 )i

S
'
'
x(i

0)S
xi' ' (
0)
1 ,n2, . . . , 1
(1)
这里共有了 3n-3 个条件,再加上条件(2)中的 n+1 个插值条件,共有 4n-2 个条件,
因此还需要 2 个方程才能确定 S (x) .通常可在区间[a, b]的端点 a x0,b xn 上各加一个边

dn1

1
2


Mn


dn

(6)
2 1


2
2
2
1 M1 d1

M2


d2




n 1
2
n
1


M
n
1

dn1
n
n 2 M n dn
由式(1)内点拼接条件,可得
i M i1 2M i i M i1 d j i 1, 2,..., n 1
(3) (4)
其中
i

hi 1 hi1
, hi

i

hi hi 1

数值分析Runge-Kutta-Fields方法

数值分析Runge-Kutta-Fields方法

孙琪
【自适应龙格—库塔—费尔贝格方法】 在龙格—库塔方法中设计一个自动调节步长的方法,Fehlberg 在四阶方法和五阶方法 中选择参数从而得到具有相同函数赋值点的不同阶数的两个公式,因此只需要六个函 数赋值,便得到一个基于步长控制的局部截断误差的估计,所得到的龙格—库塔—费 尔贝格方法是五阶的。这些公式给出解的不同的近似值:
数值分析第七次程序作业
PB09001057
【问题】
应用 RKF45 或 RKF54 方法,设计实现自适应方法,求解如下常微分方程初值问题: y‘ = eyx + cos⁡ (y − x) y 1 =3 初值步长取为 h=0.01.在自适应方法中步长的选取采用第二种策略。 在解溢出前终止。 程序的输出:解的范围[1,?] 提示输入一个介于上述范围的值,应x 的值,横轴代表 t 的值,我们可以看到这与我们计算得到的结果是相同的, 所以我们得到了正确的结果。
【Mathematica 程序】
6
x t+h =x t +
i=1 6
ai Fi
x t+h =x t +
i=1 i −1
bi Fi
Fi = hf(t + ci h, x +
j=1
dij Fj )
误差项为:
6
e = x t+h −x t+h =
i=1
(ai − bi )Fi
其中公式中要求的多项式系数都已给出。 同时,另一个通用的每步控制误差的公式是: h = 0.9h[ δ 1/(1+p) ] e
取 M=100,δ = 10−5 ,b=2 得到:
二、
取 h=0.01,采取第二种策略 即有采用公式: h = 0.9h[ δ 1/(1+p) ] e

数值分析Runge现象计算实验

数值分析Runge现象计算实验

数值分析实验报告(02)一、实验目的通过上机绘制Runge 函数图像,理解高次插值的病态性质。

二、实验内容在区间[-1,1]上分别取n=10,n=20用两组等距节点对龙格(Runge)函数21()125f x x =+作多项式插值,对每个n 值分别画出()f x 和插值函数的图形。

三、编程思路(相关背景知识、算法步骤、流程图、伪代码)四、程序代码(Matlab 或C 语言的程序代码)function yt=Untitled8(x,y,xt)%UNTITLED5 ´Ë´¦ÏÔʾÓйش˺¯ÊýµÄÕªÒª% ´Ë´¦ÏÔʾÏêϸ˵Ã÷n=length(x);ny=length(y);if n~=nyerror('²åÖµ½ÚµãxÓ뺯ÊýÖµy²»Ò»ÖÂ');endm=length(xt);yt=zeros(1,m);for k=1:nlk=ones(1,m);for j=1:nif j~=klk=lk.*(xt-x(j))/(x(k)-x(j));endend ;yt=yt+y(k)*lk;endn=input('n=');x=linspace(-1,1,n);y=1./(1+25.*x.^2);xf=linspace(-1,1,100);yf=1./(1+25.*xf.^2)xl=xf;yl=Untitled8(x,y,xf);plot(xf,yf,'-b',xl,yl,'-r')五、数值结果及分析(数值运行结果及对结果的分析)当n=10时当n=20六、实验体会(计算中出现的问题,解决方法,实验体会)出现符号错误,代码函数变量不明重新输入,查询错误,找到并改正编码需要认真仔细,一定要头脑清晰,避免出现一些低级错误。

数值分析Runge插值逼近

数值分析Runge插值逼近

1. 对Runge 函数22511)(x x R +=用在区间[-1, 1]下列条件作插值逼近,并和)(x R 的图像进行比较。

(1) 用等距节点ih x i +-=1,h=0.2, 绘出它的10次Newton 插值多项式的图像。

(2) 用节点)2212cos(1π++-=i x i (i=0,1,…,10),绘出它的10次Newton 插值多项式的图像。

(3) 用等距节点ih x i +-=1,h=0.2, 绘出它的分段线性插值多项式的图像。

(4) 用等距节点ih x i +-=1,h=0.2, 绘出它的三次自然样条线性插值多项式的图像。

解:Newton 插值曲线与原曲线比较x 轴y 轴当x 在中间取值范围时,Newton 插值曲线与原曲线比较接近,但是当x 在两端时,Newton 插值曲线与原曲线相差越来越大,出现了Runge 现象。

插值余项∏=-=ni in n x x x x x x f x R 010)(],,,,[)( .由插值多项式的唯一性知)()(x N x L n n =,因此,牛顿插值与拉格朗日插值有相同的余项表达式,即∏∏==+∈-=-+=-=ni i n ni i n n n b a x x x x x f x x n f x N x f x R 000)1(],[),(],,,[)()!1()()()()(ξξ 由此有)!1()(],,,[)1(0+=+n f x x x f n n ξ .牛顿前插公式为002000!)1()1(!2)1()(f n n t t t f t t f t f th x N nn ∆+--++∆-+∆+=+ .其余项为),(),()!1()()1()()()(010n n n n x x f h n n t t t th x N x f x R ∈+--=+-=+ξξ牛顿后插公式为n nn n n n n f n n t t t f t t f t f th x N ∇-++++∇++∇+=+!)1()1(!2)1()(2 . 其余项为),(),()!1()()1()()()(0)1(1n n n n n n x x f h n n t t t th x N x f x R ∈+++=+-=++ξξLagrange 插值曲线与原曲线比较x 轴y 轴在这里由于x 不是等距节点,Lagrange 插值曲线与原曲线比较接近,没有出现Runge 现象。

高等数值分析插值程序题Runge现象

高等数值分析插值程序题Runge现象

⾼等数值分析插值程序题Runge现象插值程序题1.对Runge函数RR(xx)=1/(1+25xx2)在区间[-1,1]做下列插值逼近,并和RR(xx)的图像进⾏⽐较,并对结果进⾏分析。

(1)等距节点xx ii=?1+ii?,?=0.1,0≤?≤20,20次netown插值多项式图像;(2)节点xx ii=cos?2ii+142ππ?,(i=0,1,2,…,20),20次Lagrange插值多项式的图像;(3)等距节点xx ii=?1+ii?,?=0.1,0≤?≤20,20次分段线性插值函数图像;(4)等距节点xx ii=? 1+ii?,?=0.1,0≤?≤20,20次三次样条插值函数的图像。

解:(1)20次等距节点netown插值多项式和R(xx)的图像⽐较图如下所⽰(求值点之间的间隔为0.0001,以下相同):从图像可以看出,在插值区间中部netown插值多项式与原Runge函数符合得较好;但在插值区间的两端两者的差别很⼤(netown在区间[-1,-0.9]的最⼩值为-59.7819),此时的插值余项不满⾜要求,因此⽤等距20次netown插值多项式来对Runge 函数在区间[-1,1]做插值逼近并不合适,会出现明显的Runge现象。

(2)20次⾮等距节点Lagrange插值多项式(切⽐雪夫多项式零点插值)和R(xx)的图像⽐较图如上所⽰。

此时插值的节点并不等距,插值节点两边密,中间疏,虽然此时Lagrange插值多项式也是20次,但相⽐等距netown插值,⾮等距Lagrange插值曲线与原函数吻合得很好,没有出现明显的Runge现象,两端⽐较密的插值节点较好地抑制了Runge现象。

为了⽐较节点选取对⾼次插值结果的影响,⽤20次等距Lagrange插值也原函数在区间[-1,1]进⾏了插值,其与原函数图像⽐较如下:其图像与(1)中netown插值⼏乎⼀样,因此对⾼次插值多项式,插值时适当的选取插值节点,能有效的抑制Runge现象。

数值分析实验报告(二)插值多项式的收敛性实验

数值分析实验报告(二)插值多项式的收敛性实验
利用上题编好的langrage插值程序或newton插值程序分别取3个5个9个11个等距节点作多项式插值分别画出插值函数及原函数fx的图形以验证runge现象分析插值多项式的收敛性
数值分析实验报告
姓名
学号
系别
数学系
班级
主讲教师
王丹
指导教师
王丹
实验日期
专业
课程名称
数值分析
同组实验者

一、实验名称:
实验二、插值多项式的收敛性实验
2.给定函数 ,利用上题编好的Langrage插值程序(或Newton插值程序),分别取3个,5个、9个、11个等距节点作多项式插值,分别画出插值函数及原函数 的图形,以验证Runge现象、分析插值多项式的收敛性。
三、实验步骤(或记录)
五、教师评语(或成绩)Leabharlann 教师签字:年月日二、实验目的:
1.理解插值的基本原理;
2.掌握多项式插值的概念、存在唯一性;
3.编写MATLAB程序实现Lagrange插值和Newton插值,验证Runge现象、分析插值多项式的收敛性。
三、实验内容及要求:
1.已知数据如下:
0.2
0.4
0.6
0.8
1.0
0.98
0.92
0.81
0.64
0.38
(1)用MATLAB语言编写按Langrage插值法和Newton插值法计算插值的程序,对以上数据进行插值;(2)利用MATLAB在第一个图中画出离散数据及插值函数曲线。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

插值程序题
1.对Runge函数RR(xx)=1/(1+25xx2)在区间[-1,1]做下列插值逼近,并和RR(xx)的图像进行比较,并对结果进行分析。

(1)等距节点xx ii=−1+iiℎ,ℎ=0.1,0≤ℎ≤20,20次netown插值多项式图像;(2)节点xx ii=cos�2ii+142ππ�,(i=0,1,2,…,20),20次Lagrange插值多项式的图像;(3)等距节点xx ii=−1+iiℎ,ℎ=0.1,0≤ℎ≤20,20次分段线性插值函数图像;(4)等距节点xx ii=−1+iiℎ,ℎ=0.1,0≤ℎ≤20,20次三次样条插值函数的图像。

解:(1)20次等距节点netown插值多项式和R(xx)的图像比较图如下所示(求值点之间的间隔为0.0001,以下相同):
从图像可以看出,在插值区间中部netown插值多项式与原Runge函数符合得较好;但在插值区间的两端两者的差别很大(netown在区间[-1,-0.9]的最小值为-59.7819),此时的插值余项不满足要求,因此用等距20次netown插值多项式来对Runge函数在区间[-1,1]做插值逼近并不合适,会出现明显的Runge现象。

(2)20次非等距节点Lagrange插值多项式(切比雪夫多项式零点插值)和R(xx)
的图像比较图如上所示。

此时插值的节点并不等距,插值节点两边密,中间疏,虽然此时Lagrange插值多项式也是20次,但相比等距netown插值,非等距Lagrange插值曲线与原函数吻合得很好,没有出现明显的Runge现象,两端比较密的插值节点较好地抑制了Runge现象。

为了比较节点选取对高次插值结果的影响,用20次等距Lagrange插值也原函数在区间[-1,1]进行了插值,其与原函数图像比较如下:
其图像与(1)中netown插值几乎一样,因此对高次插值多项式,插值时适当的选取插值节点,能有效的抑制Runge现象。

(3)20次等距节点分段线性插值函数和R(xx)的图像比较图如下所示:
分段线性插值是这几种插值方法中最容易处理的一个,只需要将每个节点对应的函数值求出再将相邻的节点两两用直线相连即可。

此处采用了等距节点,从图中可以看出除了区间中部存在偏差之外,区间其他部分与原函数吻合得很好,没有出现Runge现象。

这是因为分段线性插值通过对插值区间分段的方法将插值函
数的次数有效降低,因此即使是等距节点分布,也能很好地避免Runge 现象的出现。

(4)20次等距节点三次样条插值函数和R (xx )的图像比较图如下所示:
从图中看出,三次样条插值的结果比分段线性插值更好,是四种插值种效果最好的,三次样条插值曲线和原曲线在整个插值区间都基本处于重合状态,几乎没有肉眼可见的偏差。

同样,由于三次样条插值的插值函数最高次数只有3,在等距节点下也没有产生Runge 现象。

2.对分段函数
f (x )=�ssii ss ππxx −1≤xx <0ccccssππxx 0≤xx <1/20 1/2<xx ≤1
在区间[1,1]中做下列插值逼近,和被插函数的图像进行比较,并进
行分析。

(1)等距节点xx ii =−1+ii ℎ,ℎ=0.1,0≤ℎ≤20,20次netown 插值多项式图像;
(2)节点xx ii =cos �2ii+142ππ�,(i =0,1,2,…,20),20次Lagrange 插值多
项式的图像; (3)等距节点xx ii =−1+ii ℎ,ℎ=0.1,0≤ℎ≤20,20次分段线性插值
函数图像;
(4)等距节点xx ii=−1+iiℎ,ℎ=0.1,0≤ℎ≤20,20次三次样条插值函数的图像。

解:(1)20次等距节点netown插值多项式和分段函数的图像比较图如下所示(求值点之间的间隔为0.0001,以下相同):
从图中可以看出,与上述用netown函数对Runge函数进行插值相比,用netown 函数对此分段函数进行插值的效果更差,不仅在插值区间端点区域产生了强烈的震荡(Runge现象),在插值区间中部的非节点区域也存在小的上下震荡(插值余项正负间隔分布),且距离插值两端越近,上下震荡越厉害。

在非插值节点区域,几乎所有距离插值节点较远的点都存在较大偏差,对该分段函数进行20次netown等距插值的效果很不好。

(2)20次非等距节点Lagrange插值多项式(切比雪夫多项式零点插值)和原分段函数的图像比较图如上所示:
此时插值的节点并不等距,插值节点两边密,中间疏,此时Lagrange插值多项式也是20次,相比上述等距netown插值,虽然在插值区间中部Lagrange插值曲线也出现了小的上下震荡,但在区间两端较好地收敛到了原曲线上,没有出现明显的Runge现象。

同样地,两端比较密的插值节点较好地抑制了Runge现象。

这说明对分段函数进行高次插值时,适当的选取插值节点也能较好的抑制插值区间两端出现的Runge现象。

(3)20次等距节点分段线性插值函数和原分段函数图像对比图如下所示:
从图中可以看出,整体上分段线性插值与原函数吻合得较好,没有出现Runge 现象,但在函数间断点附近还是有所偏差。

与上述Runge函数分段线性插值类似,虽然是等距节点分布,但分段线性插值通过对插值区间分段的方法将插值函数的次数有效降低,能很好地避免Runge现象的出现。

(4)20次等距节点三次样条插值函数和原分段函数的图像比较图如下所示:
从图中可以看出,此时三次样条插值的结果没有分段线性插值那么好,在区间两端也没有出现Runge现象,但在函数的间断点附近也出现轻微的上下震荡现象,在远离间断点的其他区域与原函数符合得很好。

同样,这也是由于三次样条插值的插值函数最高次数只有3,因此在等距节点下进行插值也没有产生Runge现象。

对以上用这四种插值方法对Runge函数和分段函数进行插值的结果进行分析可以得到以下结论:
(1)当插值多项式次数太高时,使用等距节点插值,会出现严重的Runge 现象。

如上述使用netown函数对Runge函数和分段函数进行等距20次插值,在插值区间两端都出现了剧烈的上下震荡,与原函数差别很大。

(2)在插值多项式次数很高时,若对插值节点进行适当选取,而不是使用等距节点,可以抑制Runge现象。

如上述,当在20次Lagrange插值中,使用切比雪夫多项式零点作为插值节点(节点两边密,中间疏)时,有效地消除了Runge 现象。

(3)降低插值多项式的次数能有效避免Runge现象。

本实验中,分段线性插值法(各区间上均为1次)和三次样条插值法(最高次数为3)都取得了较为理想的插值逼近效果,没有出现Runge现象,且在整个插值区间都与原函数的图像吻合的很好。

(4)与连续函数相比,存在不连续点的分段函数的插值逼近误差更大,且更加不稳定。

本实验中,对连续的Runge函数进行插值逼近时,除了等距节点的高次Newton多项式出现严重Runge现象,其余三种方法基本都收敛到了原曲线上,取得了不错的插值逼近效果;而对分段函数进行插值逼近时,除了等距节点的高次Newton多项式的逼近效果非常差外,其余三种方法虽然没有出现Runge 现象,但在不连续点(x=0)的附近区域都存在一定的误差,整体逼近效果比对连续Runge函数的插值逼近要差。

综上,在实际运用中,为了取得较好的插值逼近效果,应尽量保证以下几点:不采用次数过高的插值多项式;适当选取插值节点;避免函数值突变,若不得已对存在不连续点的函数进行插值逼近,可以尝试分段插值,并将不连续点都处理到子区间的端点上,从而原函数在各子区间内分段连续,以便提高插值逼近的效果。

相关文档
最新文档