实验二 多项式插值法

合集下载

讲解多项式插值(包含例题)

讲解多项式插值(包含例题)

第三章多项式插值方法教学目的及要求:要求掌握基本的定理及各种插值方法。

插值方法是数学分析中很古老的一个分支.它有悠久的历史.等距结点内插公式是由我国隋朝数学家刘焯(公元544—610年)首先提出的;而不等距结点内插公式是由唐朝数学家张遂(公元683—727年) 提出的.这比西欧学者相应结果早一千年.插值方法在数值分析的许多分支(例如, 数值积分, 数值微分, 微分方程数值解,曲线曲面拟合,函数值近似计算,等等)均有应用.下面仅以近似计算函数值为例来说明设已知某个函数关系()x f y =的列表函数值nn y y y yx x x x110而()n i x x i ,1,0=≠问应该如何估值().x f y =对于函数关系()x f y =,我们所知道仅仅上述的表列值,它们常常是间接求得的.例如是由实验(观测)得来的,或者是从级数或微分方程求得的.我们可以使用插值方法估计y. 插值方法的目的是寻求简单的连续函数()x ϕ,使它在n+1个点n x x x ,,,10 处取给定值()()),,1,0(n i x f y x i i i ===ϕ,而在别处希望它也能近似地代表函数()x f .因为()x ϕ已是有解析表达式的简单函数,所以它在x x =处的值可以按表达式精确地计算出来.这样我们就可以将()x ϕ看成().x f y =的近似值了给定点n x x x ,,,10 为插值结点.称函数()x ϕ为函数()x f 的关于n x x x ,,,10 的插值函数.称()x f y =为被插函数.严格的说,插值方法一词只用于x 落在给定点n x x x ,,,10 之间的情形,所以也称它为内插法.如果x 落在给定点n x x x ,,,10 之外,并且仍以插值函数()x ϕ在x 处近似地代替().x f ,则一般称这种近似计算函数的方法为外插法.本章我只研究多项式插值,亦即()x ϕ是x 的多项式的情形.这不仅仅因为多项式是最简单的函数,而且因为在许多场合,函数()x f 容易用多项式近似地表示出来.此外,用多项式作插值函数可满意地解决一系列有应用价值的重要问题.特别是数值积分与数值微分的问题.本章讲不涉及三角插值法.其实,只要理解了代数多项式插值方法的实质读者就不难自行导出关于三角多项式插值方法的一系列相应与代数多项式插值方法的理论结果§1. Lagrange 插值公式设()x f y =是实变量x 得单值函数,且已知()x f 在给定的n+1个互异点n x x x ,,,10 处的值n y y y ,,,10 ,即().,,0,n i x f y i i ==插值的基本问题是,寻求多项式()x p ,使得 ()()1.1.,0,n i y x p i i ==设()x p 是一个m 次多项式()0,2210≠++++=m m m a x a x a x a a x p则插值问题是,如何确定()x p 中的系数m a a a ,,,10 ,使得(1.1)式得以满足.所以该问题等价于求解下述的线性方程组:()2.1,,,22101121211000202010⎪⎪⎩⎪⎪⎨⎧=++++=++++=++++n m n m n n mm mm y x a x a x a a y x a x a x a a y x a x a x a a上述的线性方程组的系数矩阵为⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=m n m m nnx x x x x x x x x A102211200111 它是一个(n+1)×(m+1)矩阵.当m>n 时,A 的列数大于行数.不难证明矩阵A 的秩数为n+1.因为A 的前n+1列所组成的行列式为(称为Vandermonde 行列式)()mnmm n n n n x x x x x x x x x d e f x x x W10221120010111,.,-我们有()()()3.1,.,10∏>--=ij i j n n x x x x x W为证(1.3),考虑n 次多项式()nnnn n n n n n xx xx x x x x x x x x x x x W2121112110200101111,.,----= 显然110,,,-n x x x 均为它的零点,且它的n x 系数恰为()10.,-n x x W 即 ()()()()101010.,,.,-----=n n n x x x x x x W x x x W 从而有下述递推关系式()()()()101010.,,.,-----=n n n n n n x x W x x x x x x x W运用它即可证明(1.3)式根据(1.3),并注意到诸n x x x ,,,10 互异,从而线性方程组(1.2)的系数矩阵的秩数为n+1 .它表明(1.2)的解是不唯一的,即插值问题(1.1)的解不唯一。

多项式的插值多项式与Newton插值知识点

多项式的插值多项式与Newton插值知识点

多项式的插值多项式与Newton插值知识点多项式的插值多项式是数值分析中的一个重要概念,它用于将给定的一组数据点拟合为一个多项式函数。

在多项式的插值问题中,给定n + 1个数据点(x0, y0), (x1, y1), ... , (xn, yn),其中xi不相等,yi可以是任意实数,要求找到一个n次多项式P(x),使得P(xi) = yi,i = 0, 1, ..., n。

插值多项式的目的是通过已知的数据点,找到一个多项式函数,从而能够在这些数据点上精确地插值。

Newton插值是一种常用的插值方法,它采用了差商的概念。

差商是一种用于表示多项式系数的方法,通过递推关系可以快速计算出插值多项式的系数。

为了使用Newton插值,首先需要计算出差商表。

差商表的第一列是给定的数据点的纵坐标值,第二列是相邻数据点的差商,第三列是相邻差商的差商,以此类推。

差商表的对角线上的元素即为插值多项式的系数。

插值多项式的计算过程可以通过以下步骤来完成:1. 根据给定的数据点,构建差商表。

2. 根据差商表的对角线上的元素,计算插值多项式的系数。

3. 根据插值多项式的系数,构建插值多项式。

在实际应用中,多项式的插值多项式可以用于数据的拟合和插值计算。

通过插值多项式,我们可以通过已知数据点推断出未知数据点的值,从而实现对数据的预测和估计。

总结起来,多项式的插值多项式与Newton插值是数值分析中常用的方法。

它们通过利用已知的数据点,构建插值多项式来拟合数据,从而实现数据的预测和插值计算。

在实际应用中,我们可以根据具体的问题和数据特点选择适合的插值方法,并利用插值多项式进行数据的分析和处理。

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

数值计算方法实验之Hermite多项式插值(Python代码)

数值计算方法实验之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)五、运算结果。

第二章插值法多项式插值的存在性

第二章插值法多项式插值的存在性

第二章 插值法⏹ 多项式插值的存在性 ⏹ Lagrange 插值 ⏹ Newton 插值 ⏹ Hermit 插值 ⏹ 分段低次插值 ⏹ 三次样条插值在生产实践和科学研究所遇到的大量函数中,相当一部分是通过测量或实验得到的。

虽然其函数关系)(x f y =在某个区间[]b a ,是客观存在的,但是却不知道具体的解析表达式,只能通过观察、测量或实验得到函数在区间a ,b]上一些离散点上的函数值、导数值等,因此,希望对这样的函数用一个比较简单的函数表达式来近似地给出整体上的描述。

还有些函数,虽然有明确的解析表达式,但却过于复杂而不便于进行理论分析和数值计算,同样希望构造一个既能反映函数的特性又便于计算的简单函数,近似代替原来的函数。

插值法就是寻求近似函数的方法之一.在用插值法寻求近似函数的过程中,根据所讨论问题的特点,对简单函数的类型可有不同的选取,如多项式、有理式、三角函数等,其中多项式结构简单,并有良好的性质,便于数值计算和理论分析,因此被广泛采用。

本章主要介绍多项式插值、分段多项式插值和样条插值. 2.1 插值多项式的存在唯一性 2.1.1 插值问题设函数)(x f y =在区间],[b a 上有定义,且已知函数在区间],[b a 上n+1个互异点n x x x ,,,10 处的函数值)(i i x f y = i=0,1,…,n ,若存在一个简单函数)(x p y =,使其经过)(x f y =上的这n+1个已知点),(,),,(),,(1100n n y x y x y x (图5-1),即n i y x p i i ,,1,0 ,)( == (2.1.1)那么,函数)(x p 称为插值函数,点n x x x ,,,10 称为插值节点,],[b a 称为插值区间,求)(x p 的方法称为插值法,)(x f 称为被插函数。

若)(x p 是次数不超过n 的多项式,记为)(x p n ,即n n n x a x a a x p +++= 10)(则称)(x p n 为n 次插值多项式,相应的插值法称为多项式插值;若)(x p 为分段多项式,称为分段插值,多项式插值和分段插值称为代数插值。

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

数值分析实验报告 第二次

数值分析实验报告 第二次

华中科技大学本科实验报告课程名称:数值分析姓名:姜福鑫学号:U201310044专业班级:应数1302指导老师:黄乘明实验题目:多项式的插值解法日期:2015-4-23实验成绩:1.实验目的1.理解插值的基本原理;2.掌握多项式插值的概念、存在唯一性;3.编写MATLAB 程序实现Lagrange 插值和Newton 插值,验证Runge 现象、分析插值多项式的收敛性。

2.实验题目4.1编制拉格朗日插值法MATLAB 程序,求ln0.53的近似值。

已知)(x f =ln x 的数值表如下所示:x0.40.50.60.7ln x -0.916291-0.693147-0.510826-0.3577654.2编制牛顿插值法MATLAB 程序,求)5.0(f 的近似值。

已知的数值如下表所示:ix 0.00.20.40.60.8)(i x f 0.19950.39650.28810.77210.94313.程序文本4.1function yy=malagr(x,y,xx)m=length(x);n=length(y);if m~=n,error('向量x与y的长度必须一致');ends=0;for i=1:nt=ones(1,length(xx));for j=1:nif j~=it=t.*(xx-x(j))/(x(i)-x(j));endends=s+t*y(i);endyy=s;4.2function yi=maNew(x,y,xi)n=length(x);m=length(y);if n~=merror('向量x与y的长度必须一致');endY=zeros(n);Y(:,1)=y';for k=1:n-1for i=1:n-kif abs(x(i+k)-x(i))<epserror('数据错误');endY(i,k+1)=(Y(i+1,k)-Y(i,k))/(x(i+k)-x(i));endendyi=0;for i=1:nz=1;for k=1:i-1z=z*(xi-x(k));endyi=yi+Y(1,i)*z;end4.运行结果与分析4.1xx=0.5300yy=malagr(x,y,xx)yy=-0.63474.2x=[0.00.20.40.60.8];>>y=[0.19950.39650.58810.77210.9461];xi=0.5;>>yi=maNew(x,y,xi)yi=0.6812分析:Lagrange插值法和Newton插值法解决实际问题中关于只提供复杂的离散数据的函数求值问题,通过将所考察的函数简单化,构造关于离散数据实际函数f(x)的近似函数P(x),从而可以计算未知点出的函数值,是插值法的基本思路。

数值分析实验报告1

数值分析实验报告1
end
p
得到m=(00)T
即M0=0 ;M1=;M2=;M3=;M4=0
则根据三次样条函数定义,可得:
S(x)=
接着,在Command Window里输入画图的程序代码,
下面是画牛顿插值以及三次样条插值图形的程序:
x=[ ];
y=[ ];
plot(x,y)
hold on
for i=1:1:5
y(i)= *(x(i)*(x(i)*(x(i)*(x(i)*(x(i)*(x(i)*(x(i)
Pn=f(x0)+f[x0,x1](x-x0)+ f[x0,x1,x2](x-x0) (x-x1)+···+ f[x0,x1,···xn](x-x0) ···(x-xn-1)
我们要知道牛顿插值多项式的系数,即均差表中得部分均差。
在MATLAB的Editor中输入程序代码,计算牛顿插值中多项式系数的程序如下:
【实验原理】
《数值分析》第二章“插值法”的相关内容,包括:牛顿多项式插值,三次样条插值,拉格朗日插值的相应算法和相关性质。
【实验环境】(使用的软硬件)
软件:
MATLAB 2012a
硬件:
电脑型号:联想 Lenovo 昭阳E46A笔记本电脑
操作系统:Windows 8 专业版
处理器:Intel(R)Core(TM)i3 CPU M 350 @
实验内容:
【实验方案设计】
第一步,将书上关于三种插值方法的内容转化成程序语言,用MATLAB实现;第二步,分别用牛顿多项式插值,三次样条插值,拉格朗日插值求解不同的问题。
【实验过程】(实验步骤、记录、数据、分析)
实验的主要步骤是:首先分析问题,根据分析设计MATLAB程序,利用程序算出问题答案,分析所得答案结果,再得出最后结论。

二次插值方法

二次插值方法

二次插值方法二次插值方法是一种常用的数值计算方法,用于在给定一组离散数据点的情况下,通过插值来估计在其他位置的函数值。

该方法的基本思想是通过构建一个二次多项式,通过已知数据点的特性来逼近未知位置的函数值。

本文将介绍二次插值方法的原理、步骤和应用。

一、原理二次插值方法基于拉格朗日插值公式,其基本假设是函数在已知点附近是近似二次形式的。

二次插值多项式的一般形式为:f(x) = ax^2 + bx + c,其中a、b、c为待求系数。

通过已知数据点的特性,可以构建一个二次多项式,然后用该多项式来近似未知位置的函数值。

二、步骤进行二次插值的步骤如下:1. 获取已知数据点:首先需要获取一组已知的数据点,这些数据点可以是实验测量得到的,也可以是理论计算得到的。

2. 构建二次多项式:根据已知数据点,利用拉格朗日插值公式构建一个二次多项式。

通过将已知数据点带入多项式中,可以得到方程组,从而求解系数a、b、c。

3. 插值计算:得到二次多项式后,就可以利用这个多项式来估计其他位置的函数值。

将待求位置的自变量带入多项式中,即可得到相应的函数值。

三、应用二次插值方法在实际应用中具有广泛的用途,下面简要介绍几个常见的应用领域:1. 数据处理:在数据处理领域,二次插值可以用于填充缺失值、平滑曲线、去除噪声等。

通过利用已知数据点的特性,可以对缺失的数据进行估计,从而得到完整的数据集。

2. 图像处理:在图像处理中,二次插值可以用于图像的放大和缩小。

通过在已知像素点之间插入新的像素点,可以实现图像的放大;反之,通过对已知像素点进行插值,可以实现图像的缩小。

3. 数值分析:在数值分析中,二次插值方法可以用于数值积分和数值微分。

通过构建二次多项式,可以对函数进行逼近,从而得到函数的积分值或导数值。

四、总结二次插值方法是一种常用的数值计算方法,通过构建二次多项式来估计未知位置的函数值。

它在数据处理、图像处理和数值分析等领域都有广泛的应用。

多项式插值计算方法

多项式插值计算方法

多项式插值计算方法引言:在数学和计算机科学中,插值是一种常见的数值计算方法,用于通过已知的数据点来估计未知的数据点。

多项式插值是插值方法中的一种,通过构造一个多项式函数来逼近数据点,从而实现插值的目的。

本文将介绍多项式插值的基本概念、计算方法和应用领域。

一、多项式插值的基本概念多项式插值是指通过已知的n个数据点(x1, y1), (x2, y2), ..., (xn, yn),构造一个n次多项式函数P(x)来逼近这些数据点。

通过将P(x)代入已知的数据点,可以满足P(xi) = yi,即多项式函数经过已知数据点。

二、多项式插值的计算方法1. 拉格朗日插值法拉格朗日插值法是一种常用的多项式插值计算方法。

通过构造一个满足已知数据点的n次多项式函数P(x),可以使用拉格朗日插值公式来计算多项式的系数。

具体步骤如下:- 构造插值多项式P(x) = L1(x)y1 + L2(x)y2 + ... + Ln(x)yn,其中Li(x)为拉格朗日基函数。

- 拉格朗日基函数的计算公式为Li(x) = Π(j=1 to n, j ≠ i)(x-xj)/(xi-xj),即除了第i个数据点外,其他数据点的插值基函数的乘积。

- 将已知数据点代入插值多项式,可以得到相应的系数,进而得到插值多项式P(x)。

2. 牛顿插值法牛顿插值法是另一种常用的多项式插值计算方法。

通过构造一个满足已知数据点的n次多项式函数P(x),可以使用牛顿插值公式来计算多项式的系数。

具体步骤如下:- 构造插值多项式P(x) = c0 + c1(x-x0) + c2(x-x0)(x-x1) + ... + cn(x-x0)(x-x1)...(x-xn-1),其中ci为差商。

- 差商的计算公式为ci = f[x0, x1, ..., xi]/(xi-x0)(xi-x1)...(xi-xi-1),即已知数据点的函数值的差商。

- 使用差商递推公式可以计算出所有的差商,进而得到插值多项式P(x)。

试验二--插值法

试验二--插值法

试验二 插值法一、实验目的(1) 学会Lagrange 插值和牛顿插值等基本插值方法; (2) 讨论插值的Runge 现象,掌握分段线性插值方法;(3) 学会Matlab 提供的插值函数的使用方法,会用这些函数解决实际问题。

二、实验要求(1) 按照题目要求完成实验内容; (2) 写出相应的Matlab 程序;(3) 给出实验结果(可以用表格展示实验结果); (4) 分析和讨论实验结果并提出可能的优化实验。

(5) 写出实验报告。

三、实验步骤1、用编好的Lagrange 插值法程序计算书本P66 的例1、用牛顿插值法计算P77的例1。

2、已知函数在下列各点的值为:试用4次牛顿插值多项式4()P x 对数据进行插值,根据{(,),0.20.08,0,1,2,,10i i i x y x i i =+=},画出图形。

3、在区间[-1,1]上分别取10,20n =用两组等距节点对龙格函数21(),(11)125f x x x =-≤≤+作多项式和线性插值,对不同n 值,分别画出插值函数及()f x 的图形。

3、下列数据点的插值可以得到平方根函数的近似,在区间[0,64]上作图。

(1) 用这9个点作8次多项式插值8()L x 。

一、实验目的1、学会Lagrange 插值、牛顿插值和 分段线性插值等基本插值方法;2、讨论插值的Runge 现象,掌握分段线性插值方法3、学会Matlab 提供的插值函数的使用方法,会用这些函数解决实际问题。

二、实验原理1、拉格朗日插值多项式2、牛顿插值多项式3、分段线性插值三、实验步骤1、用MATLAB 编写独立的拉格朗日插值多项式函数2、用MATLAB 编写独立的牛顿插值多项式函数3、利用编写好的函数计算本章书本P66 的例1、用牛顿插值法计算P77的例1。

4、利用编写好的函数计算实验步骤中要求的各道题。

(注意:这里需将要做得的题目抄下来,仅以上机实习题2为例:)2、在区间[-1,1]上分别取10,20n =用两组等距节点对龙格函数21(),(11)125f x x x=-≤≤+作多项式和线性插值,对不同n 值,分别画出插值函数及()f x 的图形。

多项式插值与拟合

多项式插值与拟合

多项式插值与拟合多项式插值与拟合技术是数学领域中一种常用的数据处理方法。

它可以有效地根据给定的数据点集,通过构造一个多项式函数,来近似描述数据的整体趋势。

本文将介绍多项式插值与拟合的基本原理、方法和应用。

一、多项式插值的原理和方法多项式插值是一种通过已知数据点集来构造与之完全吻合的多项式函数的方法。

它基于一个重要的数学定理:给定n+1个不同的数据点,存在一个n次多项式可以通过这些数据点。

在多项式插值中,最常用的插值方法是拉格朗日插值和牛顿插值。

拉格朗日插值使用一个n次多项式来逼近给定的数据点,使得多项式通过所有数据点;而牛顿插值则利用了差商的概念,使用一个n次多项式来逼近数据点,从而构造插值多项式。

二、多项式拟合的原理和方法多项式拟合是一种通过已知数据点集来找到一个次数较低的多项式函数,以最佳拟合数据的方法。

与多项式插值不同,多项式拟合不要求多项式经过所有数据点,而是通过最小化误差函数来找到最优解。

最常见的多项式拟合方法是最小二乘拟合,也称为线性最小二乘拟合。

该方法通过最小化数据点到拟合曲线的垂直距离之和,来得到最优的拟合曲线。

经过最小二乘拟合后,可以得到一个最佳的多项式函数,以最小化误差。

三、多项式插值与拟合的应用多项式插值与拟合广泛应用于各个领域的数据处理和分析中。

以下列举几个典型的应用场景:1. 数据重建:当给定一组具有缺失数据点的数据集时,通过多项式插值可以估计出缺失数据点的数值,从而恢复完整的数据集。

2. 数据平滑:多项式拟合可以通过将原始数据点拟合为平滑的曲线或者曲面,从而更好地展示数据的整体趋势,去除数据的噪声干扰。

3. 数据预测:基于已知的数据点,可以使用多项式拟合方法预测未来或未知的数据点的数值,为决策和规划提供依据。

4. 图像处理:多项式插值和拟合在图像处理中也有广泛应用,例如图像修复、数字图像放大等。

总结:多项式插值与拟合是一种有效的数据处理方法,可以用于数据重建、数据平滑、数据预测和图像处理等领域。

《数值计算方法》---多项式插值实验报告

《数值计算方法》---多项式插值实验报告
x
1
2
3
4
5
6
y
0
0.6931
1.0986
1.3863
1.6094
1.7918
2根据下面的数据点,分别求牛顿前插多项式和牛顿后插多项式,并计算x=1.55时y的值。
x
1
2
3
4
5
6
y
0
0.6931
1.0986
1.3863
1.6094
1.79ቤተ መጻሕፍቲ ባይዱ8
3根据下面的数据点,求埃尔米特插值多项式,并计算x=1.44时y的值。
《数值计算方法》---多项式插值实验报告
实验名称:多项式插值
实验目的:
1、熟悉Matlab的编程。
2、学会求解拉格朗日插值、牛顿插值及埃尔米特插值多项式并估计函数在某点处的值。
实验设备与环境:计算机,Windows系统,Matlab等。
实验内容:
1.根据下面的数据点,分别求拉格朗日插值多项式和牛顿插值多项式,并计算x=1.5时y的值。
x
1
1.2
1.4
1.6
1.8
y
1
1.0954
1.1832
1.2649
1.3416
y’
0.5000
0.4564
0.4226
0.3953
0.3727
f =
10850.7*(t - 1.0)^2*(t - 1.4)^2*(t - 1.6)^2*(t - 1.8)^2*(9.58473*t - 10.4063) - 10850.7*(t - 1.0)^2*(t - 1.2)^2*(t - 1.4)^2*(t - 1.8)^2*(10.1455*t - 17.4978) + 24414.1*(t - 1.0)^2*(t - 1.2)^2*(t - 1.6)^2*(t - 1.8)^2*(0.4226*t + 0.59156) - 678.168*(27.5773*t - 50.9807)*(t - 1.0)^2*(t - 1.2)^2*(t - 1.4)^2*(t - 1.6)^2 + 678.168*(t - 1.2)^2*(t - 1.4)^2*(t - 1.6)^2*(t - 1.8)^2*(21.3333*t - 20.3333)

用牛顿基底求二次插值多项式

用牛顿基底求二次插值多项式

用牛顿基底求二次插值多项式好嘞,今天咱们聊聊牛顿基底和二次插值多项式。

听名字可能觉得有点高大上,其实就是个数学小把戏,让咱们在已知的点之间,找到一个好用的公式来预测其他的点。

想象一下,咱们有几个小朋友在操场上玩,记录下他们的身高和年龄。

现在你想知道,一个七岁的小朋友的身高,那可怎么办呢?这时候,牛顿基底就派上用场了。

咱们得知道什么是牛顿基底。

别看它名字长,其实就是一套巧妙的方法,能让你用少量的数据点来推算出更多的值。

比如,你有三个点(x0, y0)、(x1, y1)、(x2,y2),这三个人的小数据就可以帮助你找到一个二次多项式,像个神算子一样,让你能预测出其他的点。

就像咱们知道了几个人的身高,利用这些数据,推算出更多小朋友的身高,简单又方便。

咱们开始动手吧!先把这三个点用一个多项式表达出来。

一般来说,这个二次插值多项式的形式是这样的:P(x) = a0 + a1(x x0) + a2(x x0)(x x1)。

听起来是不是有点复杂,其实不然,咱们一步一步来。

首先得找到a0、a1和a2这几个系数,得用到一些聪明的公式。

首先a0就是第一个点的y值,直接拿过来就行了。

a1和a2就稍微麻烦一点儿,得用差商来计算。

这可像是在做美食,一步一步加料,最后才能出锅。

你会发现,差商这玩意儿特别有趣,像极了生活中的一些小秘密。

简单来说,差商就是用后一个点的y值减去前一个点的y值,还得除以对应的x值差。

比如说,y1y0除以x1x0,这就是a1了。

类似的,a2就需要用到两个差商,听起来是不是有点像谜语?你算出来后,牛顿的魔法就会显现出来,嘿嘿,直接就能求出二次插值多项式。

想象一下,咱们拿到了这个多项式,就像拿到了一张藏宝图。

你只需把想要预测的x值代进去,嘿,你就能得到对应的y值!就好比你知道了小明在操场的身高,咱们就可以大胆推测,小红和小丽的身高也不会差太远。

特别适合那些学数学的孩子,哦不,是年轻的朋友们,哈哈。

别以为二次插值就完事了,咱们还有更深的知识要挖掘。

插值法

插值法

插值法实验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]上切比雪夫点的定义为:xk=(b+a)/2+((b-a)/2)cos((2k-1)π/(2(n+1))),k=1,2,^,n+1 以x1,x2^x(n+1)为插值节点构造上述各函数的拉格朗日插值多项式,比较其结果。

实验过程:程序:多项式插值的震荡现象(实验2.1)for m=1:6subplot(2,3,m) %把窗口分割成2*3大小的窗口largrang(6*m) %对largrang函数进行运行if m==1title('longn=6')elseif m==2title('longn=12')elseif m==3title('longn=18')elseif m==4title('longn=24')elseif m==5title('longn=30')elseif m==6title('longn=36')end %对每个窗口分别写上标题为插值点的个数end保存为:chazhi.mfunction largrang(longn)mm=input('please input mm(运行第几个函数就输入mm为几):mm=')if mm==1 %d表示定义域的边界值d=1;elseif mm==2||mm==3d=5;endx0=linspace(-d,d,longn); %x的节点if mm==1y0=1./(1.+25.*x0.^2);elseif mm==2y0=x0./(1.+x0.^4);elseif mm==3y0=atan(x0);endx=sym('x');n=length(x0); s=0.0;for k=1:np=1.0;for j=1:nif j~=kp=p*(x-x0(j))/(x0(k)-x0(j));endends=p*y0(k)+s;endy=s;if mm==1ezplot('1/(1+25*x^2)')elseif mm==2ezplot('x/(1+x^4)')elseif mm==3ezplot('atan(x)')endhold onezplot(y,[-d,d])hold off保存为:largrang.m数值实验结果及分析:对于第一个函数f(x)=1/(1+25x2)对于第二个函数h(x)=x/(1+x 4)对于第三个函数g(x)=arctan(x)-10100.20.40.6x-10100.51x-101-0.500.51x-101-0.500.511.5xlongn=24-101-2-1012xlongn=30-101-0.500.511.5xlongn=36-505-0.500.5xlongn=6-505-101xlongn=12-505-101xlongn=18-505-4-2024xlongn=24-505-202xlongn=30-505-2020xlongn=36讨论:通过对三个函数得出的largrang 插值多项式并在数学软件中的运行,得出函数图象,说明了对函数的支点不是越多越好,而是在函数的两端而言支点越多,而largrang 插值多项式不是更加靠近被逼近的函数,反而更加远离函数,在函数两端的跳动性更加明显,argrang 插值多项式对函数不收敛。

多项式插值计算方法

多项式插值计算方法

多项式插值计算方法一、引言多项式插值是数值分析中常用的一种方法,它可以通过已知的数据点来构造一个多项式函数,从而在数据点之间进行插值。

多项式插值方法在实际应用中具有广泛的用途,例如图像处理、数据拟合、信号处理等领域。

本文将介绍多项式插值的基本原理和几种常用的计算方法。

二、基本原理多项式插值的基本原理是通过已知的数据点来构造一个多项式函数,使得该函数经过这些数据点。

假设已知的数据点为(x1, y1), (x2, y2), ..., (xn, yn),其中xi和yi分别表示自变量和因变量的取值。

我们希望找到一个多项式函数P(x),使得P(xi) = yi。

根据插值定理,只要选取足够多的数据点,就可以找到一个唯一的多项式函数满足插值条件。

三、拉格朗日插值法拉格朗日插值法是一种常用的多项式插值方法。

它基于拉格朗日插值多项式的思想,通过构造一个n次多项式来实现插值。

具体步骤如下:1. 根据已知的n+1个数据点,构造拉格朗日插值多项式的基函数Li(x),其中i表示第i个数据点。

2. 将基函数Li(x)与对应的因变量yi相乘,得到Li(x)*yi。

3. 将所有的Li(x)*yi相加,得到最终的插值多项式P(x)。

4. 将自变量x代入插值多项式P(x)中,即可得到对应的插值结果。

拉格朗日插值法的优点是简单易懂,计算量较小。

但当数据点较多时,计算复杂度会增加,同时在边界处的插值结果可能会出现较大误差。

四、牛顿插值法牛顿插值法是另一种常用的多项式插值方法。

它基于差商的概念,通过构造一个n次多项式来实现插值。

具体步骤如下:1. 根据已知的n+1个数据点,计算差商表。

2. 根据差商表的值,构造牛顿插值多项式。

3. 将自变量x代入插值多项式中,即可得到对应的插值结果。

牛顿插值法的优点是计算效率高,尤其适用于数据点较多的情况。

但在插值区间较大时,插值结果可能会出现振荡现象。

五、埃尔米特插值法埃尔米特插值法是一种基于导数信息的多项式插值方法。

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

实验报告——实验二 多项式插值法
一、实验要求
1、对[-5,5]作等分划x i =−5+iℎ,h =
10n
,i =0,1,…,n ,并对Runge 给出的函数f (x )=
1/(1+16x 2)作Lagrange 插值,观察Runge 现象的发生。

(a )分别取n=10、20作Lagrange 代数插值L 10(x)和L 20(x)
(b )给出f(x)、L 10(x)和L 20(x)在区间[-5,5]的函数图象,观察其不同。

(c )考察上述两个插值函数在x=4.8处的误差,并作分析。

2、已知直升飞机旋转机翼外形曲线部分坐标如下表:
及两端的一阶导数值为y 0’=1.86548,y n ’=−0.046115
利用第一类边界条件的三次样条插值函数计算翼型曲线在x =2,30,133,390,470,515各点上的函数值及一二阶导数近似值。

二、实验原理 1、Lagrange 插值
(1)已知n+1个节点x 0<x 1<⋯<x n ,若n 次多项式l j (x ) (j =0,1,…,n)满足:
就称这n+1个n 次多项式l j (x ) (j =0,1,…,n)为节点x 0, x 1,…, x n 上的n 次插值基函数。

那么就有l k (x )=w
n+1
(x )
(x−x k
)w n+1′
(x k )
,其中w n+1(x )=∏(x −x i )n i=0,w n+1′
(x k )=∏(x k −x i )n i=0i!=k
(2)于是可得Lagrange 插值多项式
L n (x )=∑y k n
k=0
l k (x )
2、三次样条插值
(1)已知n+1个节点(x j ,y j ),且x 0<x 1<⋯<x n ,若S (x )在每个小区间[x j ,x j+1]上是三次多项式,且同时满足连续性条件(3n-3个)、插值条件(n+1个)和边界条件(2个),则称其为三次样条插值函数。

在区间[x j ,x j+1]上,由于S (x )是三次多项式,故S“(x )是线性函数,记为
S”(x )=M j x j+1−x ℎj +M j+1x −x j
ℎj
(2)利用插值条件可得
S(x)=M j (x j+1−x)3
6ℎj
+M j+1
(x−x j)3
6ℎj
+(y j−
M jℎj2
6
)
x j+1−x
ℎj
+(y j+1−
M j+1ℎj2
6
)
x−x j
ℎj
对上式求导可得
S′(x)=−M j (x j+1−x)2
j
+M j+1
(x−x j)2
j
+
y j+1−y j
j

M j+1−M j
ℎj
(3)利用连续性条件可得
μj M j−1+2M j+λj M j+1=d j,j=1,2,…,n−1
其中,μj=ℎj−1
ℎj−1+ℎj ,λj=ℎj
ℎj−1+ℎj
,d j=6f[x j, x j+1]−f[x j−1, x j]
ℎj−1+ℎj
=6f[x j−1,x j,x j+1]
对于第一类边界条件(已知两端一阶导数值),
μn=1,λ0=1,d0=6
ℎ0
(f[x0, x1]−f0′),d n=
6
ℎn−1
(f n′−f[x n−1, x n])
(4)要求得M0,M1,…,M n,解线性方程组即可:
三、算法设计
1、Lagrange插值:
(1)定义函数L n(x),输入参数有f()、a、b、n和x,返回值为插值结果
(2)初始化,h = (b - a) / n,x[i]= a + i * h,k=0,ln=0
(3)ln += f(x[k]) * lk(x)
(4)k+1→ k,若k<n,转(3)继续计算;否则终止计算,返回插值结果ln。

(5)选定区间[a,b]上足够多的x进行上述运算,获得足够多的数据点(x,y),绘制图像。

2、三次样条插值:
(1)定义函数S(x),输入参数有x[n+1]、y[n+1]、y0’、yn‘,返回值为插值结果
(2)初始化,按公式依次求得ℎj=x j+1−x j,μj=ℎj−1
ℎj−1+ℎj ,λj=ℎj
ℎj−1+ℎj
,d j=6f[x j−1,x j,
x j+1]
(3)解线性方程组μj M j−1+2M j+λj M j+1=d j,j=1,2,…,n−1,求得M0,M1,…,M n
(4)得到三次样条插值函数S(x),求导,再求导。

(5)对给定的x值进行插值,绘制散点图比较结果。

四、预习计算
无。

五、实验结果及分析
1、Lagrange插值:
(1)对插值得到的数据绘制图像,f(x)、L10(x)和L20(x)在区间[-5,5]的函数图象依次如下:
(2)分析:上述函数中,红色曲线是龙格函数,黄色曲线是10阶多项式,绿色曲线是20阶多项式,从图中可以很直观的看出,随着阶次的增加,误差逐渐变大。

(3)计算两个插值函数在x=4.8处的误差可得:
|L10(4.8)-f(4.8)|=129.05044880234433 |L20(4.8)-f(4.8)|=27088.933172143297
我们可以看出,两个插值函数在x=4.8处的误差非常大,原因是,插值多项式的阶数增多时插值误差甚至会趋向无限大:
这个现象表明高阶多项式通常不适合用于插值。

要避免这个问题,可以使用分段多项式样条,而且构成样条的多项式的数目越多(阶次不变),误差越小。

第2题就是一个很好的例子。

2、三次样条插值:
(1)求得的插值函数S(x)及其一阶导数、二阶导数:
(2)对给定的x=2, 30, 133, 390, 470, 515的插值结果:
(3)已知n+1个节点的散点图和插值结果的散点图
(4)上述图中黑点为原始数据,红点为通过三次样条插值得到的结果,可以看出,两个数据集很契合,说明插值效果很好。

这也印证了第1题中的分析结论,使用分段多项式样条可以避免Runge现象,能够有效减小误差。

六、体会与问题
1、通过对实验原理的重新推导,对理论有了更深的理解和掌握。

2、对编程能力也能得到一定加强,不至于太生疏。

3、本次实验原理不难,但是推导及编程过程很繁琐,需要耐心和细心。

附件:
Exp2.java 源码
results-Lagrange/x-f.txt 函数f(x)在区间[-5, 5]上的样本点集
results-Lagrange/x-L10.txt 函数L10(x)在区间[-5, 5]上的样本点集
results-Lagrange/x-L20.txt 函数L20(x)在区间[-5, 5]上的样本点集
results-Intsplin/x-y.txt 原始数据点集
results-Intsplin/x-S(x).txt 三次样条插值函数的样本点集。

相关文档
最新文档