数值计算方法实验报告(二)插值多项式的收敛性实验
数值分析综合实验报告

一、实验目的通过本次综合实验,掌握数值分析中常用的插值方法、方程求根方法以及数值积分方法,了解这些方法在实际问题中的应用,提高数值计算能力。
二、实验内容1. 插值方法(1)拉格朗日插值法:利用已知数据点构造多项式,以逼近未知函数。
(2)牛顿插值法:在拉格朗日插值法的基础上,通过增加基函数,提高逼近精度。
2. 方程求根方法(1)二分法:适用于函数在区间内有正负值的情况,通过不断缩小区间来逼近根。
(2)Newton法:利用函数的导数信息,通过迭代逼近根。
(3)不动点迭代法:将方程转化为不动点问题,通过迭代逼近根。
3. 数值积分方法(1)矩形法:将积分区间等分,近似计算函数值的和。
(2)梯形法:将积分区间分成若干等分,用梯形面积近似计算积分。
(3)辛普森法:在梯形法的基础上,将每个小区间再等分,提高逼近精度。
三、实验步骤1. 拉格朗日插值法(1)输入已知数据点,构造拉格朗日插值多项式。
(2)计算插值多项式在未知点的函数值。
2. 牛顿插值法(1)输入已知数据点,构造牛顿插值多项式。
(2)计算插值多项式在未知点的函数值。
3. 方程求根方法(1)输入方程和初始值。
(2)选择求解方法(二分法、Newton法、不动点迭代法)。
(3)迭代计算,直到满足精度要求。
4. 数值积分方法(1)输入被积函数和积分区间。
(2)选择积分方法(矩形法、梯形法、辛普森法)。
(3)计算积分值。
四、实验结果与分析1. 插值方法(1)拉格朗日插值法:通过构造多项式,可以较好地逼近已知数据点。
(2)牛顿插值法:在拉格朗日插值法的基础上,增加了基函数,提高了逼近精度。
2. 方程求根方法(1)二分法:适用于函数在区间内有正负值的情况,计算简单,但收敛速度较慢。
(2)Newton法:利用函数的导数信息,收敛速度较快,但可能存在数值不稳定问题。
(3)不动点迭代法:将方程转化为不动点问题,收敛速度较快,但可能存在初始值选择不当的问题。
3. 数值积分方法(1)矩形法:计算简单,但精度较低。
数值分析实验报告-插值、逼近

实验报告:函数逼近&插值多项式补充1 2k 1问题1 :对于给函数f (x) 2,取点X k cos , k取0, 1,…,n。
n取101+25x 2n 2或20。
试画出拟合曲线并打印出方程,与第二章计算实习题2的结果进行比较。
1 问题2 :对于给函数f(x) 2在区间卜1,1]上取x i=-1+0.2i ------------------------------------------ (i=0,1,2,…,10),试求31+25x次曲线拟合,试画出拟合曲线并打印出方程,与第二章计算实习题2的结果进行比较。
实验目的:通过编程实现牛顿插值方法和函数逼近,加深对多项式插值的理解。
应用所编程序解决实际算例。
实验要求:1 .认真分析问题,深刻理解相关理论知识并能熟练应用;2. 编写相关程序并进行实验;3. 调试程序,得到最终结果;4. 分析解释实验结果;5. 按照要求完成实验报告。
实验原理:详见《数值分析第5版》第二章、第三章相关内容。
实验内容:(1)问题1 :这里我们可以沿用实验报告一的代码,对其进行少量修改即可。
当n=10时,代码为:clear allclck=0:10;n=len gth(k);x1=cos((2*k+1)/2/n*pi);y1=1./(1+25.*x1.A2);f=y1(:);for j=2: nfor i=n :-1:jf(i)=(f(i)-f(i-1))/(x1(i)-x1(i-j+1));endendsyms F x p;F(1)=1;p(1)=y1(1);for i=2: nF(i)=F(i-1)*(x-x1(i-1));P(i)=f(i)*F(i);end syms P P=sum(p);P10=vpa(expa nd(P),5); xO=-1:O.OO1:1; yO=subs(P,x,xO);y2=subs(1/(1+25*x A 2),x,x0); plot(x0,y0,x0,y2) grid on xlabel('x') ylabel('y')由 此 我 们 可 以 得 到P i0(x)=-46.633*xA10+3.0962e-14*xA9+130.11*xA8-7.2714e-14*xA7-133.44*xA6+7.1777e- 14*xA5+61.443*xA4-1.5805e-14*xA3-12.477*xA2-1.6214e-16*x+1.0并可以得到牛顿插值多项式在 [-1 , 1]上的图形,并和原函数进行对比,得Fig. 1。
数值分析实验报告(二)插值多项式的收敛性实验

系别
数学系
班级
主讲教师
王丹
指导教师
王丹
实验日期
专业
课程名称
数值分析
同组实验者
无
一、实验名称:
实验二、插值多项式的收敛性实验
2.给定函数 ,利用上题编好的Langrage插值程序(或Newton插值程序),分别取3个,5个、9个、11个等距节点作多项式插值,分别画出插值函数及原函数 的图形,以验证Runge现象、分析插值多项式的收敛性。
三、实验步骤(或记录)
五、教师评语(或成绩)
教师签字:年月日
二、实验目的:
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在第一个图中画出离散数据及插值函数曲线。
多项式插值实验报告

实验报告一题目:多项式插值摘要:熟悉插值多项式构造,通过计算机解决实验问题;龙格现象的发生、防止,通过拉格朗日插值、分段线性插值以及三次样条插值进展插值效果的比拟通过分析、推导,掌握数据插值的思想方法;通过对插值方法的进一步讨论,了解插值的“龙格〞现象;熟悉常用的分段线性插值和样条插值的使用方法;掌握上机编程与调试能力。
由于高次多项式插值不收敛,会产生Runge 现象,本实验在给出具体的实例后,采用分段线性插值和三次样条插值的方法有效的克制了这一现象,而且还取的很好的插值效果。
前言:〔目的和意义〕1. 掌握拉格朗日插值法,分段线性插值法,三次样条插值法。
2. 深刻认识多项式插值的缺点。
3. 明确插值的不收敛性怎样克制。
4. 明确精度与节点和插值方法的关系。
数学原理:在给定n+1个节点和相应的函数值以后构造n 次的Lagrange 插值多项式,实验结果说明〔见后面的图〕这种多项式并不是随着次数的升高对函数的逼近越来越好,这种现象就是Rung 现象。
解决Rung 现象的方法通常有分段线性插值、三次样条插值等方法。
分段线性插值:设在区间[a, b ]上,给定n+1个插值节点a=x 0<x 1<…<x n =b和相应的函数值y 0,y 1,…,y n ,,求作一个插值函数)(x φ,具有如下性质:1) j j y x =)(φ,j=0,1,…,n 。
2) )(x φ在每个区间[x i , x j ]上是线性连续函数。
那么插值函数)(x φ称为区间[a, b ]上对应n 个数据点的分段线性插值函数。
三次样条插值:给定区间[a, b ]一个分划⊿:a=x 0<x 1<…<x N =b假设函数S(x)满足以下条件:1)S(x)在每个区间[x i, x j]上是不高于3次的多项式。
2)S(x)及其2阶导数在[a, b]上连续。
那么称S(x)使关于分划⊿的三次样条函数。
程序设计:本实验采用Matlab的M文件编写。
插值运算实验报告

#### 一、实验目的1. 理解插值运算的基本概念和原理。
2. 掌握几种常见的插值方法,如拉格朗日插值、牛顿插值等。
3. 通过实验,验证插值方法在数值计算中的应用效果。
4. 培养动手能力和分析问题的能力。
#### 二、实验原理插值运算是指根据已知数据点,构造一个近似函数来描述这些数据点之间的变化规律。
常见的插值方法有拉格朗日插值、牛顿插值、分段线性插值等。
#### 三、实验内容1. 数据准备准备一组数据点,例如:```x: [1, 2, 3, 4, 5]y: [2, 4, 6, 8, 10]```2. 拉格朗日插值根据给定的数据点,构造拉格朗日插值多项式。
以三次拉格朗日插值为例,其公式如下:```L(x) = y0 ((x - x1) (x - x2) (x - x3)) / ((x0 - x1) (x0 - x2) (x0 - x3))+ y1 ((x - x0) (x - x2) (x - x3)) / ((x1 - x0) (x1 - x2) (x1 - x3))+ y2 ((x - x0) (x - x1) (x - x3)) / ((x2 - x0) (x2 - x1) (x2 - x3))+ y3 ((x - x0) (x - x1) (x - x2)) / ((x3 - x0) (x3 - x1)(x3 - x2))```将数据点代入上述公式,得到拉格朗日插值多项式。
3. 牛顿插值根据给定的数据点,构造牛顿插值多项式。
以三次牛顿插值为例,其公式如下:```N(x) = y0 + (x - x0) (y1 - y0) / (x1 - x0) + (x - x0) (x - x1) (y2 - y1) / ((x1 - x0) (x2 - x1)) + (x - x0) (x - x1) (x - x2) (y3 - y2) / ((x1 - x0) (x2 - x1) (x3 - x2))```将数据点代入上述公式,得到牛顿插值多项式。
数值分析上机实验报告(插值)

数值分析第一次上机练习实验报告——Lagrange 插值与三次样条插值一、 问题的描述设()2119f x x =+, []1,1x ∈-,取15iix =-+,0,1,2,...,10i =.试求出10次Lagrange 插值多项式()10L x 和三次样条插值函数()S x (采用自然边界条件),并用图画出()f x ,()10L x ,()S x .二、 方法描述——Lagrange 插值与三次样条插值我们取15i ix =-+,0,1,2,...,10i =,通过在i x 点的函数值()2119i i f x x =+来对原函数进行插值,我们记插值函数为()g x ,要求它满足如下条件:()()21,0,1,2,...,1019i i i g x f x i x ===+ (1)我们在此处要分别通过Lagrange 插值(即多项式插值)与三次样条插值的方法对原函数()2119f x x=+进行插值,看两种方法的插值结果,并进行结果的比较。
10次的Lagrange 插值多项式为:()()10100i i i L x y l x ==∑ (2)其中:()21,0,1,2,...,1019i i iy 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 插值。
理论上我们根据区间[]1,1-上给出的节点做出的插值多项式()n L x 近似于()f x ,而多项式()n L x 的次数n 越高逼近()f x 的精度就越好。
但实际上并非如此,而是对任意的插值节点,当n →+∞的时候()n L x 不一定收敛到()f x ;而是有时会在插值区间的两端点附近会出现严重的()n L x 偏离()f x 的现象,即所谓的Runge 现象。
数值分析实验报告--实验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),即插值效果越来越好。
数值计算方法实验之Hermite多项式插值(Python代码)

数值计算⽅法实验之Hermite多项式插值(Python代码)⼀、实验⽬的在已知f(x),x∈[a,b]的表达式,但函数值不便计算,或不知f(x),x∈[a,b]⽽⼜需要给出其在[a,b]上的值时,按插值原则f(x i)= y i(i= 0,1…….,n)求出简单函数P(x)(常是多项式),使其在插值基点x i,处成⽴P(x i)= y i(i=0,1,……,n),⽽在[a,b]上的其它点处成⽴f(x)≈P(x).⼆、实验原理三、实验内容求f(x)=x4在[0,2]上按5个等距节点确定的Hermite插值多项式.四、实验程序1import numpy as np2from sympy import *3import matplotlib.pyplot as plt456def f(x):7return x ** 48910def ff(x): # f[x0, x1, ..., xk]11 ans = 012for i in range(len(x)):13 temp = 114for j in range(len(x)):15if i != j:16 temp *= (x[i] - x[j])17 ans += f(x[i]) / temp18return ans192021def draw(L, newlabel= 'Lagrange插值函数'):22 plt.rcParams['font.sans-serif'] = ['SimHei']23 plt.rcParams['axes.unicode_minus'] = False24 x = np.linspace(0, 2, 100)25 y = f(x)26 Ly = []27for xx in x:28 Ly.append(L.subs(n, xx))29 plt.plot(x, y, label='原函数')30 plt.plot(x, Ly, label=newlabel)31 plt.xlabel('x')32 plt.ylabel('y')33 plt.legend()3435 plt.savefig('1.png')36 plt.show()373839def lossCal(L):40 x = np.linspace(0, 2, 101)41 y = f(x)42 Ly = []43for xx in x:44 Ly.append(L.subs(n, xx))45 Ly = np.array(Ly)46 temp = Ly - y47 temp = abs(temp)48print(temp.mean())495051def calM(P, x):52 Y = n ** 453 dfP = diff(P, n)54return solve(Y.subs(n, x[0]) - dfP.subs(n, x[0]), [m,])[0] 555657if__name__ == '__main__':58 x = np.array(range(11)) - 559 y = f(x)6061 n, m = symbols('n m')62 init_printing(use_unicode=True)6364 P = f(x[0])65for i in range(len(x)):66if i != len(x) - 1:67 temp = ff(x[0:i + 2])68else:69 temp = m70for j in x[0:i + 1]:71 temp *= (n - j)72 P += temp73 P = expand(P)7475 P = P.subs(m, calM(P, x))76 draw(P, newlabel='Hermite插值多项式')77 lossCal(P)五、运算结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
姓 名 王丹 学 号 王丹 系 别 数学系 班级 专业 无 信息与计算科学 主讲教师 课程名称 指导教师 数值分析 实验日期
同组实验者
一、实验名称:
实验二、插值多项式的收敛性实验
二、实验目的:
1.理解插值的基本原理; 2.掌握多项式插值的概念、存在唯一性; 3.编写 MATLAB 程序实现 Lagrange 插值和 Newton 插值,验证 Runge 现象、分析插值多项式的收敛性。
三、实验内容及要求:
1.已知数据如下:
xi f ( xi )
0.2 0.98
0.4 0.92
0.6 0.81
0 MATLAB 语言编写按 Langrage 插值法和 Newton 插值法计算插值的程序,对以上数据进行插值; (2)利用 MATLAB 在第一个图中画出离散数据及插值函数曲线。 2.给定函数 f ( x) =
1
五、教师评语(或成绩)
教师签字 : 2013 年 月 日
2
1 , , x ? [ 1,1] ,利用上题编好的 Langrage 插值程序(或 Newton 插值程序) 1 + 25x2
分别取 3 个,5 个、9 个、11 个等距节点作多项式插值,分别画出插值函数及原函数 f ( x ) 的图形,以验证 Runge 现象、分析插值多项式的收敛性。
三、实验步骤(或记录)