数值分析报告上机实验报告(插值)

合集下载

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

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

实验报告:牛顿差值多项式&三次样条问题:在区间[-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 allclcx1=-1:0.2:1;y1=1./(1+25.*x1.^2);n=length(x1);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);endsyms PP=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 onxlabel('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)。

数值分析2024上机实验报告

数值分析2024上机实验报告

数值分析2024上机实验报告数值分析是计算数学的一个重要分支,它研究如何用数值方法来解决数学问题。

在数值分析的学习过程中,学生需要通过上机实验来巩固理论知识,并学会使用相应的数值方法来解决实际问题。

本篇报告将详细介绍2024年度数值分析上机实验的内容和结果。

一、实验内容2024年度数值分析上机实验分为四个部分,分别是:方程求根、插值与拟合、数值积分和常微分方程的数值解。

1.方程求根这部分实验要求使用数值方法求解给定的非线性方程的根。

常见的数值方法有二分法、牛顿法、割线法等。

在实验过程中,我们需要熟悉这些数值方法的原理和实现步骤,并对不同方法的收敛性进行分析和比较。

2.插值与拟合这部分实验要求使用插值和拟合方法对给定的一组数据进行拟合。

插值方法包括拉格朗日插值、牛顿插值等;拟合方法包括最小二乘拟合、多项式拟合等。

在实验中,我们需要熟悉插值和拟合方法的原理和实现步骤,并对不同方法的精度和稳定性进行比较。

3.数值积分这部分实验要求使用数值方法计算给定函数的积分。

常见的数值积分方法有梯形法则、辛普森法则、龙贝格积分等。

在实验过程中,我们需要熟悉这些数值积分方法的原理和实现步骤,并对不同方法的精度和效率进行比较。

4.常微分方程的数值解这部分实验要求使用数值方法求解给定的常微分方程初值问题。

常见的数值方法有欧拉法、改进的欧拉法、四阶龙格-库塔法等。

在实验中,我们需要熟悉这些数值解方法的原理和实现步骤,并对不同方法的精度和稳定性进行比较。

二、实验结果在完成2024年度数值分析上机实验后,我们得到了以下实验结果:1.方程求根我们实现了二分法、牛顿法和割线法,并对比了它们的收敛速度和稳定性。

结果表明,割线法的收敛速度最快,但在一些情况下可能会出现振荡;二分法和牛顿法的收敛速度相对较慢,但稳定性较好。

2.插值与拟合我们实现了拉格朗日插值和最小二乘拟合,并对比了它们的拟合效果和精度。

结果表明,拉格朗日插值在小区间上拟合效果较好,但在大区间上可能出现振荡;最小二乘拟合在整体上拟合效果较好,但可能出现过拟合。

数值分析上机实验报告(插值)

数值分析上机实验报告(插值)

数值分析第一次上机练习实验报告——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 ig 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 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 插值。

理论上我们根据区间[]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--插值法

数值分析实验报告--实验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),即插值效果越来越好。

lagrange插值法上机实践报告

lagrange插值法上机实践报告
3.625000000000000
五、计算结果的分析
三次Lagrange插值多项式为:

2.125000000000000; 0.375000000000000; 3.625000000000000.
六、计算中出现的问题,解决方法及体会
从上面的试验结果中我们可以看出拉格朗日插值法在实际中的巨大作用,它能使因试验得到的复杂数据处理更简单化,对于一些没有明确函数关系的数据处理,通过插值法构造的近似函数能有效的反映原数据的特性,又在插值法中,拉格朗日插值是一种多节点选取的插值法,其构造结果更加渐进真实结果,则在实际中用的更多,所以在今后的操作中,如何得到更加近似于原试验数据的构造函数,即如何减小拉格朗日插值多项式误差计算问题是我们以后做研究时要重点关注和去解决的难点。
四、数值结果五、计算结果的分析 六、计算中出现的问题,解决方法及体会
一、实验目的、内容
实验目的:
1.了解lagrange插值法的基本原理和方法;
2.掌握拉格郎日插值多项式的用法,适用范围及精确度;
3.学习掌握MATLAB软件有关的命令。
内容:
已知数据点 ,求三次Lagrange插值多项式 , 并求
二、相关背景知识介绍

其中 为以 为节点的n次插值基函数,则 是一次数不超过n的多项式,且满足
, j=0,1,…,n
再由插值多项式的唯一性,得
上式表示的插值多项式称为拉格朗日(Lagrange)插值多项式。
三、代码(Matlab)
functiony = lagrange(x0,y0,x)
n = length(x0);
m = length(x);
(3)拉格朗日插值法的概述
拉格朗日插值用来求n个节点的(n-1)次插值多项式,它就是线性插值和抛物线插值的推广和延伸。我们设有n个节点,则拉格朗日插值的表达式表示为:

插值数值实验报告(3篇)

插值数值实验报告(3篇)

第1篇一、实验目的1. 理解并掌握插值法的基本原理和常用方法。

2. 学习使用拉格朗日插值法、牛顿插值法等数值插值方法进行函数逼近。

3. 分析不同插值方法的优缺点,并比较其精度和效率。

4. 通过实验加深对数值分析理论的理解和应用。

二、实验原理插值法是一种通过已知数据点来构造近似函数的方法。

它广泛应用于科学计算、工程设计和数据分析等领域。

常用的插值方法包括拉格朗日插值法、牛顿插值法、样条插值法等。

1. 拉格朗日插值法拉格朗日插值法是一种基于多项式的插值方法。

其基本思想是:给定一组数据点,构造一个次数不超过n的多项式,使得该多项式在这些数据点上的函数值与已知数据点的函数值相等。

2. 牛顿插值法牛顿插值法是一种基于插值多项式的差商的插值方法。

其基本思想是:给定一组数据点,构造一个次数不超过n的多项式,使得该多项式在这些数据点上的函数值与已知数据点的函数值相等,并且满足一定的差商条件。

三、实验内容1. 拉格朗日插值法(1)给定一组数据点,如:$$\begin{align}x_0 &= 0, & y_0 &= 1, \\x_1 &= 1, & y_1 &= 4, \\x_2 &= 2, & y_2 &= 9, \\x_3 &= 3, & y_3 &= 16.\end{align}$$(2)根据拉格朗日插值公式,构造插值多项式:$$P(x) = \frac{(x-x_1)(x-x_2)(x-x_3)}{(x_0-x_1)(x_0-x_2)(x_0-x_3)}y_0 + \frac{(x-x_0)(x-x_2)(x-x_3)}{(x_1-x_0)(x_1-x_2)(x_1-x_3)}y_1 + \frac{(x-x_0)(x-x_1)(x-x_3)}{(x_2-x_0)(x_2-x_1)(x_2-x_3)}y_2 + \frac{(x-x_0)(x-x_1)(x-x_2)}{(x_3-x_0)(x_3-x_1)(x_3-x_2)}y_3.$$(3)计算插值多项式在不同点的函数值,并与实际值进行比较。

数值分析实验报告(插值法)

数值分析实验报告(插值法)

武汉理工大学学生实验报告书实验课程名称数值分析开课学院计算机科学与技术学院指导老师姓名学生姓名学生专业班级2010—2010学年第一学期实验课程名称:数值分析第二部分:实验调试与结果分析(可加页)一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)(1)用拉格朗日插值法计算时,输入及运行结果如下:拉格朗日插值法牛顿插值法(2)利用二次插值计算时,输入及运行结果如下:拉格朗日插值法牛顿插值法(3)用艾尔米特插值法计算时,f(x)的插值多项式H5(x)=(1+4*x)*(x-0.5)*(x-0.5)*(x-2)*(x-2)+(3.90807-6.03838*x)*(x-2)*(x-2)*x*x+(2.34573-4.16674*x)*x*x*(x-0.5)*(x-0.5)(4)各插值算法的精度差异比较经过比较,拉格朗日插值法要比牛顿插值法算法的计算量多一些,拉格朗日插值法后一次计算时用到了前一次计算的结果,提高了运算的效率,但拉格朗日插值法在构造艾尔米特插值法时很方便,将坐标点和对应的导数结合起来的精度比线性插值的精度又要高一些。

但从实验数据来看,在坐标不是很多的情况下,已知的点越多精度也就相对较高。

对于实验要求的第二组数据用拉格朗日插值法(或者牛顿插值法)实验结果如下:一下分别是二阶、三阶、四阶、五阶插值得到的结果以上只是实验结果的一部分,改变插值的位置时,得到的实验结果精度也是有所不同的。

由以上结果分析可知,插值次数并不是越多越好,多了反而会让结果更加偏离真实结果,这充分说明了高次插值存在“病态性质”,在已知点很多的情况下应该采用分段低次插值,将拉格朗日插值法和牛顿插值法运用到分段低次插值法当中,这样得到的结果可能胡更加精确。

数值分析插值实验报告

数值分析插值实验报告

数值分析插值实验报告引言插值是数值分析中常用的一种技术,通过已知点的函数值来推测未知点的函数值。

在实际应用中,我们经常需要根据有限的数据点来估计连续函数的值,这时插值就起到了关键作用。

本实验旨在通过插值方法来推测未知数据点的函数值,并对比不同插值方法的精度和效果。

实验目的1.了解插值的基本概念和方法;2.掌握常见的插值方法,如拉格朗日插值、牛顿插值等;3.对比不同插值方法的精度和效果,分析其优缺点。

实验步骤1.数据采集:选取一组已知数据点,作为插值的基础。

这些数据点可以是从实际场景中测量得到的,也可以是人为设定的。

2.插值方法选择:根据实验要求和数据特点,选择适合的插值方法。

常见的插值方法包括拉格朗日插值、牛顿插值、分段线性插值等。

3.插值计算:根据选定的插值方法,利用已知数据点进行计算,并得到插值结果。

4.结果分析:比较插值结果与实际数据的差异,并评估插值方法的精度和效果。

可以使用误差分析等方法进行评估。

5.优化调整:根据实验结果和需求,对插值方法进行优化调整,以提高插值的准确性和可靠性。

实验结果与讨论通过实验,我们得到了不同插值方法的结果,并进行了对比和分析。

根据实验数据和误差分析,我们可以得出以下结论:1.拉格朗日插值方法具有较高的插值精度,在一定程度上能够准确地模拟实际数据。

2.牛顿插值方法相对于拉格朗日插值方法而言,对于大量数据点的计算速度更快,但在少量数据点的情况下,两者的精度差异较小。

3.分段线性插值方法适用于数据点较为离散的情况,能够提供较为平滑的插值结果。

4.插值方法的选择应根据具体需求和数据特点进行,没有一种插值方法适用于所有情况。

实验总结通过本次实验,我们对插值方法有了更深入的了解,并掌握了常见的插值方法的原理和应用。

实验结果表明,插值方法在数值分析中起到了重要的作用,能够准确地推测未知点的函数值。

然而,在实际应用中,我们还需要考虑数据的特点、插值方法的适用性以及计算效率等因素。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数值分析第一次上机练习实验报告
——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 插值与三次样条插值
我们取15i i x =-+
,0,1,2,...,10i =,通过在i x 点的函数值()21
19i 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 插值。

理论上我们根据区间[]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 现象。

因此用高次插值多项式()n L x 近似()f x 的效果并不总是好的,
因而人们通常在选择插值方式的时候不用高次多项式插值,而用分段低次插值,而这样的插值效果往往是非常好的,能够克服高次多项式插值的弱点,达到令人满意的效果。

分段低次插值包括分段线性插值、分段三次Hermite 插值、三次样条插值等。

前两种插值函数都具有一致收敛性,但是光滑性较差,而在实际问题中我们往往要求函数具有二阶光滑度,即有二阶连续导数。

而对第三种插值方式,我们得到的是一个样条曲线,它是由分段三次曲线拼接而成,在连接点(即样点)上二阶导数连续。

我们记三次样条插值函数为()S x ,它在每个小区间1,,0,1,2,...,9j j x x j +⎡⎤=⎣⎦上是三次函数,因此在每个区间上需要确定4个参数,总共有10个小区间,因此共需确定40个未知
参数。

首先我们有插值条件:
()2
1
,0,1,2,...,1019j j j
S x y j x ==
=+ (3)
其次在每个节点,1,2,...,9j x j =上满足连续性条件:
()()()()()()00,'0'0,''0''0j j j j j j S x S x S x S x S x S x -=+-=+-=+ (4)
此外在端点处满足自然边界条件:
()()()()010''''10,''''10S x S S x S =-=== (5)
我们假设()
'',0,1,2,...,10j j S x M j ==。

则在每个小区间1,,0,1,2,...,9j j x x j +⎡⎤=⎣⎦上:
()()
()
3
3
221111
16666j j
j j j j j
j j
j j j j
j
j j
x x x x M h x x M h x x S x M M y y h h h h +++++--⎛⎫⎛⎫--=++-+- ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭(6) 其中:
1,,
0,1,2,...,9j j x x x j +⎡⎤∈=⎣⎦

1j j j h x x +=-
我们利用边界条件(3)(4)(5)可以得到:
112,1,2,...,9j j j j j j M M M d j μλ-+++== (7)
其中:
111,j j j j j j
j j
h h h h h h μλ---=
=
++
以及
11111,,66,,j j j j j j j j j j
f x x f x x d f x x x h h +--+-⎡⎤⎡⎤-⎣⎦⎣⎦⎡⎤==⎣⎦+ 两端点处的边界条件为:
0100M M == (8)
将边界条件写成矩阵形式为:
000111199991010102222M d M d M d M d λμλμλμ⎛⎫⎛⎫⎛⎫
⎪⎪ ⎪ ⎪⎪ ⎪ ⎪⎪ ⎪=
⎪⎪ ⎪
⎪⎪ ⎪ ⎪⎪ ⎪ ⎪⎪ ⎪ ⎪⎪ ⎪⎝
⎭⎝⎭⎝⎭
(9)
其中根据自然边界条件(8)有:
0100100,0d d λμ====
我们解方程(9)就可以得到,0,1,...,10j M j =,将他们代入(6)就可以得到各段区间上的()S x 的值。

三、 方案设计
我们通过编写Matlab 程序来进行10次Lagrange 插值与三次样条插值的工作。

在我们的程序文件中interplotion.m 文件是主程序文件;L10.m 文件是计算10次Lagrange 插值多项式
()10L x 的子程序文件,给它任一个[]1,1x ∈-,此程序将返回()10L x 的值;Mspline.m 是根
据(9)计算各节点二阶导数值,0,1,2,...,10j M j =的子程序文件,它将会返回在自然边界条件下的各节点的二阶导数值j M ;然后spline.m 是根据j M 以及(6)计算三次样条插值函数
()S x 的子程序文件。

然后运行主程序将给出三幅曲线图,分别是()f x 与()10L x 曲线,
()f x 与()S x 曲线,以及()f x 、()10L x 与()S x 三条曲线共同画在一幅图上得到的图象。

解决这个问题的思路很简单,按部就班的来就可以。

首先我们计算各节点i x 上的函数值()i i y f x =以备后用,然后调用Mspline.m 计算,0,1,2,...,10j M j =。

随后我们给出一系列x 的值,计算()f x ,并分别调用L10.m 与spline.m 分别计算()10L x 与()S x 。

然后根据我们得到的数据绘图观察插值结果。

具体程序的实现可参见所给程序的相关注释。

四、 计算结果及其分析
下面是我们根据程序计算结果得到的数据,其中分别给出了在各典型x 处的的原函数的值()f x 、Lagrange 插值结果()10L x 与样条插值结果()S x ;以及绝对误差()()10L x f x -和
()()S x f x -,相对误差
()()()10L x f x f x -,()()
()
S x f x f x -。

由于在两端点处进行Lagrange 插值
尽管从数据可以看出一些端倪,但是通过图象我们更能清楚地看到最终插值结果的定性情况。

首先我
们给出
()f x 与()10L x 曲线:
其中蓝色的曲线代表()f x 曲线,绿色的曲线代表()10L x 曲线。

可见此时两者之间具有很大的差别,尤其在端点附近会出现严重的()10L x 偏离()f x 的现象,即出现了所谓的Runge 现象。

而此时()f x 曲线与我们用样条插值得到的()S x 的曲线为:
其中蓝色的曲线代表()f x 曲线,绿色的曲线代表()S x 曲线,可见两条曲线几乎完全重合,
()S x 与()f x 符合的很好。

上面我们由曲线定性看到的结论也可以通过表中的数据定量的看出。

五、 结论
插值方法中最基本的是多项式插值,而我们可以通过Lagrange 多项式来方便的实现这种插值方式。

理论上我们根据给定区间上的给定的节点做出的插值多项式()n L x 近似于
()f x ,而多项式()n L x 的次数n 越高逼近()f x 的精度就越好。

但实际上对任意的插值节
点,当n →+∞的时候()n L x 不一定收敛到()f x ;而是有时会在插值区间的两端点附近会出现严重的()n L x 偏离()f x 的现象,即所谓的Runge 现象。

因此用高次插值多项式()n L x 近似()f x 的效果并不总是好的,而我们通过本次试验中的实际计算发现对本次试验中的函数确实出现了Runge 现象,插值结果很不令人满意;我们转而采用分段的三次样条插值,得到了非常好的插值效果。

相关文档
最新文档