插值实验报告

合集下载

插值法实验报告

插值法实验报告

插值法实验报告插值法实验报告一、引言插值法是一种常用的数值分析方法,用于通过已知数据点的函数值来估计在其他位置的函数值。

它在科学计算、图像处理、工程设计等领域有广泛的应用。

本实验旨在通过实际操作,深入理解插值法的原理和应用。

二、实验目的1. 掌握拉格朗日插值法和牛顿插值法的原理和计算方法;2. 通过实验比较不同插值方法的精度和效率;3. 分析插值法在实际问题中的应用。

三、实验步骤1. 收集实验数据:在实验室内设置几个测量点,记录它们的坐标和对应的函数值;2. 使用拉格朗日插值法计算其他位置的函数值:根据已知数据点,利用拉格朗日插值公式计算其他位置的函数值;3. 使用牛顿插值法计算其他位置的函数值:根据已知数据点,利用牛顿插值公式计算其他位置的函数值;4. 比较不同插值方法的精度和效率:通过计算误差和运行时间,比较拉格朗日插值法和牛顿插值法的性能差异;5. 分析插值法在实际问题中的应用:结合实验结果,探讨插值法在实际问题中的优势和局限性。

四、实验结果与分析1. 拉格朗日插值法的计算结果:根据已知数据点,利用拉格朗日插值公式计算其他位置的函数值;2. 牛顿插值法的计算结果:根据已知数据点,利用牛顿插值公式计算其他位置的函数值;3. 误差分析:比较插值结果与真实函数值之间的误差,分析误差的来源和影响因素;4. 运行时间分析:比较不同插值方法的运行时间,分析其效率和适用场景。

五、实验结论1. 拉格朗日插值法和牛顿插值法都是常用的插值方法,它们在不同场景下有各自的优势;2. 插值法在实际问题中的应用需要考虑数据的分布、函数的性质和计算效率等因素;3. 本实验结果表明,拉格朗日插值法和牛顿插值法在精度和效率上存在差异,具体选择哪种方法应根据实际需求进行权衡。

六、实验总结通过本次实验,我们深入了解了插值法的原理和应用。

实验结果表明,插值法在科学计算和工程设计中具有重要的作用。

在实际应用中,我们需要根据具体问题的要求和数据的特点选择合适的插值方法,以达到更好的效果。

newton插值法实验报告

newton插值法实验报告

竭诚为您提供优质文档/双击可除newton插值法实验报告篇一:牛顿插值法matlab程序《计算方法》数值实验报告篇二:数值分析实验报告(插值法)武汉理工大学学生实验报告书实验课程名称数值分析开课学院计算机科学与技术学院指导老师姓名学生姓名学生专业班级20XX—20XX学年第一学期实验课程名称:数值分析篇三:c++实现牛顿插值法实验报告数值实验用newton商差公式进行插值姓名:陈辉学号:13349006院系:数据科学与计算机学院专业:计算机科学与技术班级:计科一班日期:20XX-10-11指导老师:纪庆革目录一、二、三、四、五、六、七、八、实验目的................................................. .........................................3实验题目................................................. .........................................3实验原理与基础理论................................................. .......................3实验内容................................................. .........................................6实验结果................................................. .......................................10心得体会................................................. .......................................14参考资料................................................. .......................................14附录(源代码)............................................... (14)一、实验目的编写一个程序,用牛顿差商公式进行插值。

插值运算实验报告

插值运算实验报告

#### 一、实验目的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))```将数据点代入上述公式,得到牛顿插值多项式。

插值运算实验报告

插值运算实验报告

插值运算实验报告通过实验掌握插值运算的原理和方法,并利用插值运算技术对离散数据进行插值和逼近。

实验设备:计算机、Matlab软件实验原理:插值是利用已知数据点之间的关系,使用某种函数表达式来逼近未知点的值。

插值方法可以分为多种,如拉格朗日插值、牛顿插值等。

本次实验主要涉及的是拉格朗日插值和牛顿插值。

实验步骤:1. 采集实验数据,得到需要进行插值运算的离散数据。

2. 根据所给的离散数据,选择合适的插值方法,如拉格朗日插值或牛顿插值。

3. 利用Matlab软件进行编程,实现所选择的插值方法。

4. 运行程序,得到插值结果。

5. 根据插值结果,可以确定对未知数据点的函数值,也可以进行曲线拟合和逼近。

实验结果:经过对实验数据的处理和插值运算,得到了以下结果:1. 插值函数的形式,可以通过该函数计算未知数据点的函数值。

2. 插值曲线的图像,可以通过该曲线来拟合和逼近实验数据。

实验分析:通过实验结果的分析,可以得出以下结论:1. 插值方法的选择对结果有重要影响,不同的插值方法适用于不同的数据类型。

2. 插值运算可以有效地处理离散数据,得到连续函数的逼近值。

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),即插值效果越来越好。

插值数值实验报告(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)计算插值多项式在不同点的函数值,并与实际值进行比较。

拉格朗日插值实验报告

拉格朗日插值实验报告

引言概述:
拉格朗日插值是一种常用的数值分析方法,旨在通过已知的离散数据点来近似拟合出一个多项式函数,从而实现对未知数据点的预测和估计。

该方法在信号处理、图像处理、金融模型和机器学习等领域具有广泛的应用。

本实验报告将详细介绍拉格朗日插值的原理、算法和实验结果。

正文内容:
1.拉格朗日插值的原理
1.1多项式插值的概念
1.2拉格朗日插值多项式的形式
1.3拉格朗日插值多项式的唯一性证明
2.拉格朗日插值的算法
2.1插值多项式的计算方法
2.2插值多项式的复杂度分析
2.3多点插值方法的优缺点
3.拉格朗日插值的实验设计
3.1实验目的和步骤
3.2数据采集和预处理
3.3插值多项式的建模
3.4实验环境和工具选择
3.5实验结果分析和评估
4.拉格朗日插值的应用案例
4.1信号处理领域中的插值应用
4.2图像处理中的插值算法
4.3金融模型中的拉格朗日插值
4.4机器学习中的插值方法
5.拉格朗日插值的改进和发展
5.1经典拉格朗日插值的局限性
5.2最小二乘拉格朗日插值的改进
5.3多项式插值的其他方法
5.4拉格朗日插值在新领域的应用前景
总结:
拉格朗日插值作为一种经典的数值分析方法,在实际应用中具有广泛的用途。

本文通过介绍拉格朗日插值的原理和算法,以及实验设计和应用案例,全面展示了该方法的特点和优势。

同时,本文还指出了经典拉格朗日插值的局限性,并介绍了一些改进和发展的方向。

可以预见,拉格朗日插值在信号处理、图像处理、金融模型和机器学习等领域将继续发挥重要作用。

数值分析插值实验报告

数值分析插值实验报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

拉格朗日插值实验报告

拉格朗日插值实验报告

拉格朗日插值实验报告一、实验目的本实验旨在通过实际实验,深入理解拉格朗日插值法的原理和应用,掌握其计算过程和相关技巧。

二、实验原理Pn(x) = ∑ [yi * li(x)]其中,li(x)称为拉格朗日基函数,具体的计算公式如下:li(x) = ∏ [(x-xj)/(xi-xj)] (i≠j)利用拉格朗日插值法可以对数据进行插值计算,从而得到原函数未知的点的函数值。

三、实验步骤1.根据实验要求,选择一组离散的数据点,确保它们在横坐标轴上不共线。

2. 使用拉格朗日插值法计算插值多项式的各个基函数li(x)。

3.对插值多项式进行求和,得到最终的插值多项式Pn(x)。

4.在给定的范围内选择一些未知数据点,利用插值多项式Pn(x)计算其函数值。

5.将实际计算的函数值与原函数值进行对比,评估插值方法的准确性和精确度。

四、实验结果以实验要求给定的数据点为例,具体数据如下:x:1,2,3,4,5,6y:5,19,43,79,127,187根据拉格朗日插值法的计算公式,可以得到以下结果:l0(x)=(x-2)(x-3)(x-4)(x-5)(x-6)/(-120)l1(x)=(x-1)(x-3)(x-4)(x-5)(x-6)/120l2(x)=(x-1)(x-2)(x-4)(x-5)(x-6)/(-48)l3(x)=(x-1)(x-2)(x-3)(x-5)(x-6)/48l4(x)=(x-1)(x-2)(x-3)(x-4)(x-6)/(-20)l5(x)=(x-1)(x-2)(x-3)(x-4)(x-5)/20插值多项式Pn(x)=5*l0(x)+19*l1(x)+43*l2(x)+79*l3(x)+127*l4(x)+187*l5(x)综合以上计算结果,可以对给定范围内的未知数据点进行插值计算,从而得到相应的函数值。

五、实验分析与结论在实际实验中,我们可以利用拉格朗日插值法对任意给定的函数进行逼近计算,从而得到函数在离散数据点之间的近似值。

拉格朗日插值法实验报告

拉格朗日插值法实验报告

拉格朗日插值法实验报告一、实验目的本实验旨在通过使用拉格朗日插值法,以给定的一些数据点为基础,来预测其他未给定数据点的函数值。

通过实验,掌握拉格朗日插值法的具体计算步骤和应用范围。

二、实验原理给定 n+1 个互异的点 (x0, y0), (x1, y1), ..., (xn, yn),其中n 为自然数,我们希望通过这些点来构建一个多项式函数 P(x),满足P(xi) = yi,其中 i = 0, 1, ..., n。

构建多项式的具体步骤如下:1. 对于每个 xi,令Li(x) = ∏ (x - xj) / (xi - xj),其中 j ≠ i。

2. 最终的多项式P(x) = ∑ yi * Li(x)。

三、实验步骤1. 给定一组数据点 (x0, y0), (x1, y1), ..., (xn, yn)。

2. 对于每个 xi,计算Li(x) = ∏ (x - xj) / (xi - xj),其中 j ≠ i。

3. 构建多项式P(x) = ∑ yi * Li(x)。

4.给定一个新的x值,使用多项式P(x)预测对应的函数值。

四、实验结果和分析在本实验中,我们给定了如下的一组数据点:(0,1),(1,5),(2,17),(3,41),(4,83)。

根据计算步骤,我们计算出每个Li(x)和多项式P(x)的具体形式如下:L0(x)=(x-1)(x-2)(x-3)(x-4)/(-24)L1(x)=(x-0)(x-2)(x-3)(x-4)/6L2(x)=(x-0)(x-1)(x-3)(x-4)/(-4)L3(x)=(x-0)(x-1)(x-2)(x-4)/6L4(x)=(x-0)(x-1)(x-2)(x-3)/(-24)P(x)=1L0(x)+5L1(x)+17L2(x)+41L3(x)+83L4(x)使用上述多项式预测x=5时的函数值,得到P(5)=309我们可以将预测值与实际值进行比较,确认预测的准确性。

如果有多组数据点,我们可以使用更多的数据点来构建多项式,提高预测的精度。

插值法 实验报告

插值法 实验报告

学号:06450118姓名:李鹏实验二插值法实验2.1(多项式插值的振荡现象)问题提出:考虑一个固定的区间上用插值逼近一个函数。

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

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

龙格给出了一个极著名例子。

设区间[-1,1]上函数f(x)=1/(1+25x^2)实验内容:考虑区间[-1,1]的一个等距划分,分点为:x(i)=-1+2i/n,i=0,1,2…,n则拉格朗日插值多项式为:L(x)=∑l(i)(x)/(1+25x(j)^2 ) i=0,1,…n 其中l(i)(x), i=0,1,…n,n是n次拉格朗日插值基函数。

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

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

(3)区间[a,b]上切比雪夫点的定义为:x k=(b+a)/2+((b-a)/2)cos((2k-1)π/(2(n+1))),k=1,2,^,n+1以x1,x2^x(n+1)为插值节点构造上述各函数的拉格朗日插值多项式,比较其结果。

实验过程:程序:Lp2.1:%lagrange insertfunction y=lagranged=input('d=');longn=input('longn=');x0=linspace(-d,d,longn);y0=1./(1.+25.*x0.^2);x=sym('x');n=length(x0);m=length(x);for i=1:mz=x(i);s=0.0;for k=1:np=1.0;for j=1:nif j~=kp=p*(z-x0(j))/(x0(k)-x0(j));endends=p*y0(k)+s;endy(i)=s;endsubplot(1,2,1)y=simple(y);ezplot('1/(1+25*x^2)')hold onsubplot(1,2,2)ezplot(y,[-d,d])hold offLp2.2:%lagrange insertfunction y=lagranged=input('d=');longn=input('longn=');x0=linspace(-d,d,longn);y0=x0./(1+x0.^4);x=sym('x');n=length(x0);m=length(x);for i=1:mz=x(i);s=0.0;for k=1:np=1.0;for j=1:nif j~=kp=p*(z-x0(j))/(x0(k)-x0(j));endends=p*y0(k)+s;endy(i)=s;endsubplot(1,2,1)y=simple(y);ezplot('x0./(1+x0.^4)')hold onsubplot(1,2,2)ezplot(y,[-d,d])hold off数值实验结果:函数 f(x) h(x)g(x)分点数n=2n=5n=8n=11n=14实验分析:如上图所示,针对第一列的f(x),随着分点数n 的增加,插值多项式L(x)的在[-1,1]的图象在边界处与函数图像的差别越来越大。

插值与拟合的实验报告心得

插值与拟合的实验报告心得

插值与拟合的实验报告心得1.引言1.1 概述插值与拟合是数值分析和数据处理领域中常见的重要技术方法,通过对已知数据点进行插值计算,得到未知点的数值估计。

插值方法可以帮助我们填补数据间的空缺、平滑曲线和预测未来趋势,因此在科学研究、工程建模和数据分析中具有广泛的应用价值。

本实验报告将对插值的基本概念进行介绍,探讨插值方法的分类和在实际应用中的意义。

同时,我们将总结实验结果,评述插值与拟合的优缺点,并提出对进一步研究的建议,希望通过本报告对插值与拟合的方法和应用有一个全面的了解。

1.2文章结构文章结构部分的内容可以包括:在本报告中,将包括以下几个部分的内容:1. 引言:介绍插值与拟合的基本概念,以及本实验的目的和意义。

2. 正文:包括插值的基本概念、插值方法的分类以及插值在实际应用中的意义。

我们将深入探讨这些内容,并解释它们在实验中的具体应用。

3. 结论:总结本次实验的结果,分析插值与拟合的优缺点,并提出对进一步研究的建议。

通过以上内容的分析和探讨,我们希望能够全面地了解插值与拟合的理论基础和实际应用,为进一步的研究和实践提供一定的参考和启发。

1.3 目的本实验的目的在于通过对插值和拟合的实验研究,探索和了解这两种数学方法在现实生活中的应用。

通过实验,我们将深入了解插值的基本概念和分类方法,以及插值在实际应用中的意义。

同时,我们还将对插值和拟合的优缺点进行分析,为进一步的研究提供建议和启示。

通过本实验,我们的目的是掌握插值与拟合方法的应用和特点,为实际问题的求解提供更多的数学工具和思路。

2.正文2.1 插值的基本概念插值是指通过已知数据点构建出一个函数,该函数经过这些数据点,并且在每个数据点上都有相应的函数值。

换句话说,插值是一种通过已知离散数据点来推断未知数据点的方法。

在数学上,插值可以用于近似未知函数的值,或者用于填补数据间的空隙。

在插值过程中,我们通常会选择一个合适的插值函数,比如多项式函数、三角函数或者样条函数等,来拟合已知的数据点。

数值计算插值法实验报告

数值计算插值法实验报告

数值计算插值法实验报告
一、实验目标
本实验的目标是学习和掌握插值法的基本原理,通过实际操作,验证插值法的有效性,并利用插值法解决实际问题。

二、实验原理
插值法是一种数学方法,用于通过已知的离散数据点,构造一个连续的函数来近似地表示未知的函数值。

常用的插值法包括线性插值、多项式插值、样条插值等。

其中,多项式插值是一种常用的方法,其基本思想是选择一个多项式来逼近已知的数据点,从而得到未知点的近似值。

三、实验步骤
1.准备数据:收集一组已知的数据点,并将其整理成表格形式。

2.选择插值方法:根据实际情况选择适当的插值方法,如线性插值、多项式插值或样条插值等。

3.计算插值函数:根据选择的插值方法,利用已知的数据点计算插值函数的系数。

4.验证插值函数:利用已知的数据点对插值函数进行验证,检查其精度和误差。

5.应用插值函数:利用插值函数计算未知点的近似值,并将结果与实际值进行比较。

四、实验结果及分析
下面是本次实验的结果及分析:
1.已知数据点:。

拉格朗日插值算法及应用实验报告

拉格朗日插值算法及应用实验报告

拉格朗日插值算法及应用实验报告一、引言拉格朗日插值法是一种常用的数值插值方法,可用于在已知数据点之间估计函数值。

该方法的基本思想是通过构造一个多项式来逼近给定的数据点集合,从而实现对函数的插值。

本实验旨在通过实际计算的方式探讨拉格朗日插值法的基本原理与应用。

二、拉格朗日插值法原理拉格朗日插值法利用多项式的性质来对给定的数据进行插值。

给定n+1个不同的数据点(x_0,y_0),(x_1,y_1),...,(x_n,y_n),其中x_i表示自变量,y_i表示因变量。

拉格朗日插值多项式的表达式为:P_n(x)=y_0*L_0(x)+y_1*L_1(x)+...+y_n*L_n(x)其中L_i(x)为拉格朗日基函数,定义如下:L_i(x)=(x-x_0)(x-x_1)...(x-x_i-1)(x-x_i+1)...(x-x_n)/[(x_i-x_0)(x_i-x_1)...(x_i-x_i-1)(x_i-x_i+1)...(x_i-x_n)]三、应用实验本实验选取了不同的数据点集合,并利用拉格朗日插值法计算相应的拟合多项式,从而对函数进行插值。

数据点集合1:(x_0,y_0)=(0,1)(x_1,y_1)=(1,2)(x_2,y_2)=(2,3)(x_3,y_3)=(3,5)利用拉格朗日插值法得到的多项式为:P_3(x)=1*L_0(x)+2*L_1(x)+3*L_2(x)+5*L_3(x)将基函数带入,得到多项式表达式为:P_3(x)=1/6*x^3-3/2*x^2+11/6*x+1数据点集合2:(x_0,y_0)=(0,1)(x_1,y_1)=(1,4)(x_2,y_2)=(2,9)(x_3,y_3)=(3,16)利用拉格朗日插值法得到的多项式为:P_3(x)=1*L_0(x)+4*L_1(x)+9*L_2(x)+16*L_3(x)将基函数带入,得到多项式表达式为:P_3(x)=1/6*x^3+1/2*x^2+1/3*x+1四、实验结果与讨论通过利用拉格朗日插值法,我们得到了不同数据点集合的拟合多项式。

数值分析实验报告--实验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. 引言牛顿插值法是利用多项式插值理论及差商的概念等数学方法而构造得到的插值公式。

它是一种常用的数值计算方法,广泛应用于实际问题的解决中。

牛顿插值法的主要思想是通过构造一个特定的式子来逼近给定的数据集,从而近似计算出数据集中未知位置处的函数值。

2. 实验设计在本实验中,我们选取一组有序的数据集,用牛顿插值法计算出其插值多项式,并利用该多项式来逼近原函数图像。

实验的主要步骤包括:- 数据集的选取:选择一组具有代表性的数据集,以便更好地观察插值效果。

- 插值计算:根据给定的数据集使用牛顿插值公式进行计算,得到插值多项式。

- 函数逼近:利用插值多项式来逼近原函数图像,比较插值结果与实际函数图像的差异。

3. 实验结果以数据集{(1, 3), (2, 6), (3, 8), (4, 10)}为例,进行插值计算和函数逼近。

首先,根据数据集计算差商表格如下:x f[x] f[x, x+1] f[x, x+1, x+2] f[x, x+1, x+2, x+3]--------------------------------------------------------------1 33/1 = 32/2 = 11/3 = 0.333332 62/1 = 21/1 = 13 82/1 = 24 10根据差商表格,可以得到插值多项式为:P(x) = 3 + 3(x-1) + 1(x-1)(x-2) + 0.33333(x-1)(x-2)(x-3)其逼近效果如下图所示:插值效果图由图可见,插值多项式几乎完全重合于原函数图像,表明牛顿插值法能够较好地逼近原函数,实现精确的函数逼近。

牛顿插值法实验报告

牛顿插值法实验报告

牛顿插值法实验报告x一、实验目的1. 了解牛顿插值法的理论原理;2. 通过Matlab软件模拟实现牛顿插值法的程序;3. 学习利用牛顿插值方法求解函数在指定单点上的值。

二、实验过程1. 理论推导牛顿插值法是用数值分析的有效的一类插值方法,在一定程度上,可以得到函数的求解结果。

其核心思想是把所求函数拟合成一系列的多项式,以此实现函数的求解。

牛顿插值法可以通过牛顿第二型插值多项式来实现,该多项式的构造方法如下:令n+1个数据点分别为x_0,x_1,…,x_n,对应的函数值为y_0,y_1,…,y_n ,则该多项式为:P_n(x)=y_0+sum_{i=1}^n[y_i-y_{i-1}]frac{(x-x_0)(x-x_1)cdots (x-x_{i-1})}{(x_i-x_0)(x_i-x_1)cdots(x_i-x_{i-1})}2. 编程实现(1)使用Matlab编程,实现牛顿插值算法。

(2)在给定的函数中,求解函数在[1,2]之间的牛顿插值。

% 目标函数f = @(x) x.*sin(2.*pi.*x);% 样本点xx = [1 2];% 函数值yy = f(xx);% 插值点x = 1.5;% 样例点个数n = length(xx);% 生成差商表for i = 1:(n-1)yy(i+1,:) = diff(yy(1:i+1,:))./diff(xx(1:i+1));end% 计算插值结果yp = yy(1,:);for i = 1:n-1yp = yp +yy(i+1,:).*prod((x-xx(1:i))./(xx(i+1)-xx(1:i)));endfprintf('函数在x=1.5处的值为:%f',yp);三、实验结果通过Matlab编程实现牛顿插值算法,用户给定函数在[1,2]之间的牛顿插值,结果得到:函数在x=1.5处的值为:1.055738。

四、实验结论本次实验通过Matlab实现牛顿插值算法,完成了实验目的,学习利用牛顿插值方法求解函数在指定单点上的值。

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

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

实验报告:牛顿差值多项式&三次样条... . (1)问题:在区间[-1,1]上分别取n=10、20用两组等距节点对龙格函数f (x)---作多项式插25 x 2值及三次样条插值对每个n值,分别画出插值函数矽(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 A10+494.91*x A8-9.5065e-14*x A7-381.43*x A6-8.504e-14*x A5+123.36*x A4+2.0202e-14*x A3-16.855*x A2-6.6594e-16*x+1.0并且这里也能得到该牛顿插值多项式的在[-1,1]上的图形,并和原函数进行对比(见Fig.1)。

插值方法_实验报告

插值方法_实验报告

肖建 计科三班 20095420开课学院、实验室: 数统学院实验时间 :2011年 5 月 8 日实验项目类型课程名称数学实验实验项目名 称插值方法验证演示综合设计其他指导教师李东成 绩实验5 插值方法一、实验目的及意义[1] 了解插值的基本原理[2] 了解拉格朗日插值、线性插值、样条插值的基本思想; [3] 了解三种网格节点数据的插值方法的基本思想;[4] 掌握用MATLAB 计算三种一维插值和两种二维插值的方法;[5] 通过范例展现求解实际问题的初步建模过程;通过自己动手作实验学习如何用插值方法解决实际问题,提高探索和解决问题的能力。

通过撰写实验报告,促使自己提炼思想,按逻辑顺序进行整理,并以他人能领会的方式表达自己思想形成的过程和理由。

提高写作、文字处理、排版等方面的能力。

二、实验内容1.编写拉格朗日插值方法的函数M 文件;2.用三种插值方法对已知函数进行插值计算,通过数值和图形输出,比较它们的效果;3.针对实际问题,试建立数学模型,并求解。

三、实验步骤1.开启软件平台——MATLAB ,开启MATLAB 编辑窗口; 2.根据各种数值解法步骤编写M 文件3.保存文件并运行;4.观察运行结果(数值或图形);5.写出实验报告,并浅谈学习心得体会。

四、实验要求与任务根据实验内容和步骤,完成以下具体实验,要求写出实验报告(实验目的→问题→数学模型→算法与编程→计算结果→分析、检验和结论→心得体会)基础实验1. 一维插值 利用以下一些具体函数,考察分段线性插值、三次样条插值和拉格朗日多项式插值等三种插值方法的差异。

1),x ∈[-5,5]; 2)sin x , x ∈[0,2π]; 3)cos 10x , x ∈[0,2π].211x+M 文件:(1)clcx=linspace(-5,5,11);y=1./(1+x.^2);x0=linspace(-5,5,101);y0=1./(1+x.^2);y1=interp1(x,y,x0,'spline')y2=interp1(x,y,x0);A=[ones(11,1) x' (x.^2)' (x.^3)' (x.^4)' (x.^5)' (x.^6)' (x.^7)' (x.^8)' (x.^9)' (x.^10)']a=A\y';y3=a(1)+a(2).*x0+a(3).*x0.^2+a(4).*x0.^3+a(5).*x0.^4+a(6).*x0.^5+a(7).*x0.^6+a(8).*x0.^7+a(9).*x0.^8+a(10).*x0.^9+a(11).*x0.^10;plot(x0,y3,'r'),gtext('Lagr.'),hold on ,plot(x0,y2,'b'),gtext('Pies.Lin.'),hold on ,plot(x0,y1,'m'),gtext('Spline')hold off(2)x=linspace(0,2*pi,11); y=cos(x);x0=linspace(0,pi,101);y0=cos(x0);剩余代码和(1)中相同(3)x=linspace(0,pi,11);y=cos(x).^10;x0=linspace(0,pi,101);y0=cos(x0).^10;剩余代码和(1)中相同注意:适当选取节点及插值点的个数;比较时可以采用插值点的函数值与真实函数值的差异,或采用两个函数之间的某种距离。

克里金插值实验报告自我评价

克里金插值实验报告自我评价

克里金插值实验报告自我评价克里格方法的原理。

世界上最坑的事, 莫过于花大量时间苦心钻研书上的数学公式, 最后却发现书中的公式推导存在严重错误——其实作者只是在忽悠人。

我在学习地统计学的时候就碰到了这种问题, 此外还有不同文献中概念命名、定义不一致带来的困扰。

在这里推荐刘爱利等人编著的《地统计学概论》这本书, 根据我的检验, 书中理论精简清楚, 公式推导不存在错误。

对于书中没有具体推导出的一些计算公式, 只要自己肯花时间捋清思路, 读过书后自己也能推出来。

克里格插值的实现。

ArcGIS的地统计分析模块提供了强大的插值分析功能, 包括各种克里金插值。

《地统计学概论》中花大量篇幅介绍了使用ArcGIS进行克里金插值的方法, 但还是太过简略与模糊。

如果要准确了解ArcGIS中各克里格插值的设计框架、操作步骤与各种选项参数的含义, 建议阅读ArcGIS的帮助文档或ArcGIS网页版在线官方帮助文档。

然而, ArcGIS对插值算法的具体计算过程没有说明(至少我没找到), 对一些名词的定义与解释也与我了解的克里格理论有区别(比如“基台值”、“漂移”), 另外ArcGIS的克里格插值比严格按理论公式进行的插值方法快太多, 还经常出现“基台值矩阵不是正定的”这种不明道理的报错, 因此很难保证ArcGIS的克里格插值就是国内各种书籍文章中描述的那种算法。

如果有能力有时间的话,建议自己找开源的克里格插值代码来使用或修改后使用, 这样就能保证“我用的方法就是我想的方法”。

ArcGIS地统计模块中, 除了传统的包含各种属性值的样点数据, 还可以将栅格数据选择为一个变量, 这在考虑多个变量(也就是考虑交叉相关性)的地统计分析中有用。

我推测, ArcGIS在计算时认为栅格数据每个像元代表一个采样点, 采样点坐标为像元中心, 属性值为像元值。

很多文章指出“残差克里格法”——先用多元回归方法求出趋势面, 再对残差进行克里格插值形成残差面, 最后将趋势面和残差面相加作为插值输出的方法——插值精度高, 优势特别明显。

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

几个插值的实验报告姓名: 王维滨 学号:0842011157 姓名: 李佳乐 学号:0842011034 姓名: 谢朝 学号:0842011062 姓名: 杨其荣 学号:08420110721.实验项目的性质和任务对n 个节点插值,进一步理解差分和差商的意义,并编写matlab 程序,实现这些功能2.算法设计和matlab 编程。

原理:n+1个已知方程唯一确定一个n 次多项式,由范德玛行列式可得存在唯一。

总前提:x i 第i 点的横坐标i y 第i 点的纵坐标Lagrange 插值:1211112111()()....()()..()q ()()()....()()..()k k n k k k k k k k k n x x x x x x x x x x x x x x x x x x x x x -++-++-----=-----11()()n i i w x x x +==-∏,'()()()()k k k w x q x x x w x =- ,11()()n k k k P x y q x +==∑ Neville 插值:运用迭代求解,新加一个点进去很容易计算,1 1..1 2..112 (11111)()()()()()k k k k k k x x P x x x P x P x x x x x +++++--=+-- Newton 插值:运用差商来表示“相对系数 ”。

差商: 2..1 1..12 (111)()()()k k k k f x f x f x x x +++-=-,或112...1112111()()()()....()()..()k i k i i i i i i i i k f x f x x x x x x x x x x x ++=-++=-----∑11211211()()(,)()..(,..,)()..()n n Q x f x f x x x x f x x x x x x x +=+-++--等距节点插值:(只考虑表出公式)差分:111()()()k k k i i i f x f x f x --+∆=∆-∆或0k ()(1)()k k j i k i j j f x f x j +-=⎛⎫∆=- ⎪⎝⎭∑ 差分跟差商的关系:121()(,,..,)!k i k k kf x f x x x x k h +∆= 110()()kj j p P x ph f x j =⎛⎫+=∆ ⎪⎝⎭∑重节点差商与Hermite 插值:1111111111()()(,)()...(,..,..,..)()..()s t s k kt k P x f x f x x x x f x x x x x x x x -=+-++--1)Lagrange 插值插值21125x 的函数,观看runge 现象,a .实验方案与原理:%rungeÏÖÏó£¬y=1/£¨1+25x^2£©,[-1.1]x=-1:0.01:1;y=1./(1+25*x.^2);xArr=[-1 -0.5 0 0.5 1];yArr=1./(1+25*xArr.^2);2)Neville 插值%Neville²åÖµ£ºy=sin(x),[-pi/2,pi/2]x=-pi/2:0.01:pi/2;y=sin(x);xArr=[-pi/2,-pi/4,0,pi/4,pi/2];yArr=sin(xArr);3)Newton 插值%Newton²åÖµ£ºy=sqrt(x)[0 5]x=0:0.01:5;y=sqrt(x);xArr=[0 1 2 3 4 5];yArr=sqrt(xArr);4)等距节点插值%µÈ¾à½Úµã²åÖµ£ºy=y=exp(x) [-1,1]x=-1:0.01:1;y=exp(x);x1=-1;h=0.5;xArr=[-1,-0.5,0,0.5,1];yArr=exp(xArr);5)Hermite 插值%Hermite 插值y=ln(x),[1 5]x=1:0.01:5;y=log(x);xArr=[1 1 2 2 3 4 5 5];yArr(1)=0;yArr(2)=1;yArr(3)=log(2);yArr(4)=0.5;yArr(5)=log(3);yArr(6)=log(4);yArr(7)=log(5);yArr(8)=0.2;b .编写程序:见附录调用NumTest,每次显示一个图像,关闭后按回车继续显示下一幅。

C .实验结果分析和拓展实验结论:(1)Lagrange 插值:runge 现象:21125y x =+(2) Neville 插值:y=sin(x)(3)newton插值:y(4)等距节点插值:x=y e(5)Hermite插值:lny x附录fact.m%求阶乘function yfac=fact(n)%if n<0disp 'ÊäÈë²ÎÊý´íÎó'yfac=0;returnendyfac=1;while (n>0)yfac=yfac*n;n=n-1;endendEqual.mfunction yEqual=Equal(x,y)%看两个实数是否相等yEqual=(abs(x-y)<10^(-6));endDifference.mfunction yDiffArr=Difference(yArr)%求差分[~,length]=size(yArr);lastArr(1)=yArr(1);yDiffArr(length)=0;yDiffArr(1)=lastArr(1);for i=2:lengthlastArr=Difference_GetLastArr(yArr(i),lastArr);yDiffArr(i)=lastArr(i);endDifference_GetLastArr.mfunction lastArr= Difference_GetLastArr(newy,oldLastArr) %根据书上的表格,迭代求下一行[~,oldLength]=size(oldLastArr);length=oldLength+1;syms x;lastArr(length)=x;for i=2:lengthlastArr(i)=lastArr(i-1)-oldLastArr(i-1);endendDifference_GetResult.mfunction yDifferenceResult=Difference_GetResult(x1,h,yArr)%有差分得到最终的多项式表达式[~,length]=size(yArr);differenceArr=Difference(yArr);diffQuotArr=GetDiffQuotFromDifference(h,differenceArr);xArr(length)=0;for i=1:lengthxArr(i)=x1+(i-1)*h;endyDifferenceResult=DiffQuot_GetResult(xArr,diffQuotArr);endDiffQuot_GetLastArr.mfunction[lastArr,count]=…DiffQuot_GetLastArr(newx,newy,xArr,oldLastArr,count) % count为重复点数,若没重复则为0%迭代得到差商的下一行if nargin<3disp ¡¯ÊäÈë²ÎÊý´íÎó¡®lastArr=0;returnend[~,oldLength]=size(oldLastArr);length=oldLength+1;if nargin==3count=0;endif Equal(newx,xArr(oldLength))count=count+1;elsecount=0;endsyms x;lastArr(count+1)=newy;for i=1:countlastArr(i)=oldLastArr(i);endfor i=(count+2):lengthlastArr(i)=(lastArr(i-1)-oldLastArr(i-1))/(newx-xArr(length-i+1)); endendDiffQuot_GetResult.mfunction yfun=DiffQuot_GetResult(xArr,diffQuotArr)%针对差商,由差商求结果的多项式表达式[~,length]=size(xArr);yfun=0;syms x;for i=length:-1:2yfun = (yfun+diffQuotArr(i))*(x-xArr(i-1));endyfun=yfun+diffQuotArr(1);endExchange.mfunction [xx,yy]= Exchange(x,y)%交换两个数的值xx=y;yy=x;endGetDiffQuotFromDifference.mfunction yDiffQuotArr=GetDiffQuotFromDifference(h,differenceArr) %由差分得到差商[~,length]=size(differenceArr);yDiffQuotArr(length)=0;for i=1:lengthyDiffQuotArr(i)=differenceArr(i)/Fact(i-1)/h^(i-1);endendHermite_DiffQuot.mfunction yDiffQuotArr=Hermite_DiffQuot(xArr,yArr)%求Hermite差商syms x;[~,length]=size(xArr);lastArr(1)=yArr(1);yDiffQuotArr(length)=x;yDiffQuotArr(1)=lastArr(1);count=0;for i=2:length[lastArr,count]=DiffQuot_GetLastArr(xArr(i),yArr(i),xArr,lastArr,coun t);yDiffQuotArr(i)=lastArr(i);endendLag_px.mfunction yy=Lag_px(xArr,yArr)%得到多项式表达式[~,length]=size(xArr);tempqx=Lag_qx(xArr);yy=0;for i=1:lengthyy=yy +yArr(i)*tempqx(i);endendLag_qx.mfunction qkx=Lag_qx(xArr)%求qk[~,length]=size(xArr);syms x;qkx(length)=x;for k=1:length[xArr(1),xArr(k)]=Exchange(xArr(1),xArr(k));qkx(k)=1;for j=2:lengthqkx(k)=qkx(k)*(x-xArr(j))/(xArr(1)-xArr(j));end[xArr(1),xArr(k)]=Exchange(xArr(1),xArr(k));endendNev_GetLastArr.mfunction newLastArr= Nev_GetLastArr(newx,newy,xArr,oldLastArr) %迭代得到下一行的值neville[~,oldLength]=size(oldLastArr);syms x;length=oldLength+1;newLastArr(length)=x;newLastArr(1)=newy;for i=2:lengthtemp=(newx-x)/(newx-xArr(length-i+1));newLastArr(i)=temp*oldLastArr(i-1) +(1-temp)*newLastArr(i-1); endendNev_px.mfunction ypx=Nev_px(xArr,yArr)%多项式表达式syms x;[~,length]=size(xArr);lastArr(1)=yArr(1);for i=2:lengthlastArr=Nev_GetLastArr(xArr(i),yArr(i),xArr,lastArr);endypx=lastArr(length);endNewton_DiffQuot.mfunction yDiffQuotArr=Newton_DiffQuot(xArr,yArr)%newton差商syms x;[~,length]=size(xArr);lastArr(1)=yArr(1);yDiffQuotArr(length)=x;yDiffQuotArr(1)=lastArr(1);for i=2:lengthlastArr=DiffQuot_GetLastArr(xArr(i),yArr(i),xArr,lastArr);yDiffQuotArr(i)=lastArr(i);endend%NumTest.m%数值实验的例子,可以直接调用NumTest来看实验报告上的图像%清屏和工作区间clearclc%Lagrange插值:runge现象,y=1/(1+25x^2),[-1.1]x=-1:0.01:1;y=1./(1+25*x.^2);xArr=[-1 -0.5 0 0.5 1];yArr=1./(1+25*xArr.^2);fun=Lag_px(xArr,yArr);ezplot(fun,[-1,1]);hold onplot(x,y);hold onplot(xArr,yArr,'o');pause%Neville插值:y=sin(x),[-pi/2,pi/2]x=-pi/2:0.01:pi/2;y=sin(x);xArr=[-pi/2,-pi/4,0,pi/4,pi/2];yArr=sin(xArr);fun=Nev_px(xArr,yArr);ezplot(fun,[-pi/2,pi/2]);hold onplot(x,y);hold onplot(xArr,yArr,'o');pause%Newton插值:y=sqrt(x)[0 5]x=0:0.01:5;y=sqrt(x);xArr=[0 1 2 3 4 5];yArr=sqrt(xArr);%注意跟上面调用不同diffQuot=Newton_DiffQuot(xArr,yArr);fun=DiffQuot_GetResult(xArr,diffQuot);%ezplot(fun,[0,5]);hold onplot(x,y);hold onplot(xArr,yArr,'o');pause%等距节点插值:y=exp(x) [-1,1]x=-1:0.01:1;y=exp(x);x1=-1;h=0.5;xArr=[-1,-0.5,0,0.5,1];yArr=exp(xArr);%跟上面不同fun=Difference_GetResult(x1,h,yArr);ezplot(fun,[-1,1]);hold onplot(x,y);hold onplot(xArr,yArr,'o');pause%Hermite插值:y=ln(x),[1 5]x=1:0.01:5;y=log(x);xArr=[1 1 2 2 3 4 5 5];yArr(1)=0;yArr(2)=1;yArr(3)=log(2);yArr(4)=0.5;yArr(5)=log(3);yArr(6)=log(4);yArr(7)=log(5);yArr(8)=0.2;diffQuot=Hermite_DiffQuot(xArr,yArr); fun=DiffQuot_GetResult(xArr,diffQuot); ezplot(fun,[1 5]);hold onplot(x,y);hold on%end。

相关文档
最新文档