数值分析牛顿插值多项式

合集下载

数值分析牛顿插值多项式

数值分析牛顿插值多项式

数值分析第二次程序作业PB09001057 孙琪【问题】对函数 f (x )=11+x 2 ,x ∈[−5,5] 构造牛顿插值多项式p L (x),插值点取为: 1. x i =5−10Ni , i =0,1,…,N2. x i =−5cos (2i+12N+2π) ,i =0,1,…,N 并计算如下误差:max i{|f (y i )−p (y i )| ,y i =i10−5 ,i =0,1,…,100} 对N=5,10,20,40比较以上两组节点的结果。

【牛顿插值法】通过递推和求解方程组,可以得到牛顿插值公式为如下形式:p (x )=∑c k q k (x )=∑f[x 0,…,x k ]∏(x −x j )k−1j=0nk=0nk=0其中系数为差分,满足公式 f [x 0,…,x k ]=f [x 1,…,x k ]−f[x 0,…,x k−1]x k −x 0因此只需对所给出的插值点求出其相应的差分,代入原方程就可求出牛顿插值方程。

【牛顿插值法算法描述】1.对给定函数选取其区间上的一系列节点并计算其函数值,得到点列(x0,y0),…,( x n , y n);2.通过所给出的节点,求得相应的差分;3.代入公式求出牛顿插值多项式,并由题目中的要求求得其最大误差。

【实验】通过Mathematica编写程序得到如下结果:N=5:1.取x i=5−10i , i=0,1,…,N得到:N(1)插值点为:(2)由上述插值点构造出牛顿插值函数:(3)由题目所给出的条件计算误差得到:插值函数与原函数的图像为:其中蓝色为原函数图像,红色为插值函数图像,可以看出在0点误差最大,与我们的计算结果相吻合。

2.取x i=−5cos(2i+1π) ,i=0,1,…,N得到:2N+2(1)插值点为:(2)由上述插值点构造出牛顿插值函数:由于该函数太长了,在此就不写出了。

(3)由题目所给出的条件计算误差得到:插值函数与原函数的图像为:其中蓝色为原函数图像,红色为插值函数图像,可以看出在0点误差最大,与我们的计算结果相吻合。

牛顿(newton)插值法

牛顿(newton)插值法

牛顿(newton)插值法牛顿插值法是一种数值分析中的插值方法,它用于找到一个多项式函数,该函数会经过给定的一系列数据点。

该方法最初由英国数学家艾萨克·牛顿(Isaac Newton)发明并称为插值多项式,它也被称作差分插值法。

插值是数学和工程学中的一项重要任务,它是用于在给定数据点之间构建连续函数的一种数值方法。

插值方法通常涉及过渡从观察结果派生出抽象结果的过程,从而使得预测可能的结果取得更加准确。

下面介绍牛顿插值法的基本原理。

插值基础插值基础是插值方法中的一个重要概念。

在这里,我们将对牛顿插值法中用到的插值基础进行简要介绍。

一个插值基础是指一个已知数据点的集合,通常是一个 x 坐标和对应的 y 坐标。

每个插值基础一般定义为一个数据点的函数,该函数包含了给定点的所有信息并将这些信息用于构建连续函数。

在牛顿插值法中,我们使用差分来定义插值基础。

差分是指两个相邻数据点之间 y 坐标的差值。

具体来说,若给定以下节点:x0, y0x1, y1x2, y2...xn, yn我们则通过以下的 "+" 符号所示的不断进行差分的方式来构建一个插值基础:y0y1-y0…yn-yn-1 yn-yn-1 yn-yn-2 ... yn-y0上述图表所展示的差分的值即为定义插值基础的差商(divided difference)。

牛顿插值公式基于上述插值基础和差商,我们现在可以使用牛顿插值公式来实现插值。

具体来说,牛顿插值公式可以表示为:f(x) = y0 + d1*f[x0,x1] + d2*f[x0,x1,x2] + ... + dn*f[x0,x1,...,xn]其中 f(x) 是插值函数,x0, x1, ..., xn 是给定的节点,y0, y1, ..., yn 是对应的 y 值,f[x0,x1] 是差商 f(x0,...,x1) 的值,d1, d2, ..., dn 也是差商。

请注意,插值函数的次数最高为 n - 1,这意味着插值函数与插值基础的次数相同。

数值分析2-3(牛顿插值法)

数值分析2-3(牛顿插值法)

二阶差商
f [ xi , x j , xk ]
一般的k阶差商定义为
f [ x0 , x1 ,..., x k ] f [ x0 ,..., x k 2 , x k ] f [ x0 , x1 ,..., x k 1 ] x k x k 1
特别地,f(x)关于一个点xi的零阶 差商定义为函数值本身,即
§3
差 商 与 牛 顿 插 值
一、差商及其性质 二、差商的计算
三、牛顿插值公式 四、牛顿插值法举例
一、差商及其性质
1. 差商的定义 函数关于 xi, xj 一阶差商
f [ xi , x j ] fห้องสมุดไป่ตู้( x j ) f ( xi ) x j xi
f [ x j , xk ] f [ xi , x j ] xk xi
∶ ∶ ∶
f[x0,x1,x2] f[x1,x2,x3]
∶ ∶ ∶
f[x0,x1,x2,x3]
∶ ∶ ∶
例 已知函数y= f (x)的观测数据如下, 试构造差商表,并求 f [2,4,5,6]的值
x 0 2 f(x) 1 5
4 5 6 9 -4 13
解 构造差商表如下
xi f(xi) 一阶 二阶 三阶 0 1 2 5 2 4 9 2 0 5 -4 -13 -5 -1 6 13 17 15 5 四阶
4 3 2
用二次插值求f (3)时,取
x0=2, x1=4, x2=5, 得 f ( 3) f ( 2) f [2,4]( 3 2)
f [2,4,5]( 3 2)( 3 4) 7 5( 3 2)( 3 4) 12 思考:若本题只给出前三个点,结果 如何?请你总结牛顿插值法何时停止?

数值分析2-3(牛顿插值法)差商和与牛顿插值

数值分析2-3(牛顿插值法)差商和与牛顿插值

确定插值多项式的次数
根据已知数据点的数量确定插值多项式的最高次 数。
计算插值多项式
利用差商表,通过拉格朗日插值公式计算插值多 项式。
3
进行插值
将需要插值的x值代入插值多项式中,得到对应 的y值。
05
牛顿插值法的优缺点分析
优点
计算简单
局部性质好
相比于其他多项式插值方法,牛顿插 值法的计算过程相对简单,不需要求 解高阶方程,降低了计算的复杂度。
数值分析2-3:牛顿 插值法、差商和
目录
• 引言 • 牛顿插值法的基本概念 • 差商的计算方法 • 牛顿插值法的实现步骤 • 牛顿插值法的优缺点分析 • 实际应用案例 • 总结与展望
01
引言
主题简介
数值分析是数学的一个重要分支,主 要研究如何用数值方法解决各种数学 问题。
本章节将介绍牛顿插值法、差商和的 概念及其应用。
03
差商的计算方法
差商的递推公式
差商的递推公式
$f[x_0, x_1, ldots, x_n] = frac{f[x_1, ldots, x_n] - f[x_0, x_1, ldots, x_{n-1}]}{x_n - x_0}$
应用
通过递推公式,我们可以计算任意点之间的差商,从而得到插值多项式的导数。
在数据点附近,牛顿插值具有较好的 局部性质,能够提供较为准确的插值 结果。
适用性强
牛顿插值法适用于各种数据分布情况, 无论是线性还是非线性数据,都能得 到较好的插值结果。
缺点
全局误差较大
由于牛顿插值多项式的构造方式, 其全局误差通常较大,尤其是在 数据点较少的情况下。
对数据点敏感
如果数据点发生微小的变动,牛 顿插值多项式可能会发生较大的 变化,导致插值结果不稳定。

数值分析第五章插值法

数值分析第五章插值法

数值分析第五章插值法插值法是数值分析中常用的一种数值逼近方法,它的目的是通过已知数据点之间的插值多项式来逼近未知数据点的函数值。

插值法可以在信号处理、图像处理、计算机图形学等领域中广泛应用。

在插值法中,最常用的方法有拉格朗日插值法和牛顿插值法。

拉格朗日插值法是一种利用拉格朗日插值多项式来逼近函数的方法。

对于n个已知数据点(xi, yi),拉格朗日插值多项式L(x)可以表示为:L(x) = ∑(yi * li(x))其中,li(x)表示拉格朗日基函数,定义为:li(x) = ∏[(x - xj)/(xi - xj)] (j≠i)可以证明,在给定的n个数据点上,拉格朗日插值多项式L(x)满足:L(xi) = yi牛顿插值法是另一种常用的插值方法,它利用差商的概念来逼近函数。

对于n个已知数据点(xi, yi),差商可以定义为:f[xi] = yif[xi, xi+1] = (f[xi+1] - f[xi]) / (xi+1 - xi)f[xi, xi+1, ..., xi+k] = (f[xi+1, ..., xi+k] - f[xi, ...,xi+k-1]) / (xi+k - xi)通过差商的递归定义,可以得到牛顿插值多项式N(x)的表达式,其中:N(x)=f[x0]+f[x0,x1](x-x0)+f[x0,x1,x2](x-x0)(x-x1)+...与拉格朗日插值法类似,牛顿插值多项式N(x)也满足:N(xi) = yi这两种插值方法都有自己的优点和缺点。

拉格朗日插值法简单易懂,计算量小,但当数据点较多时,多项式的次数会很高,容易出现龙格现象。

而牛顿插值法可以通过求差商一次次递推得到插值多项式,计算效率较高,且具备局部逼近性,不易出现龙格现象。

除了拉格朗日插值法和牛顿插值法,还有其他插值方法,如分段线性插值、样条插值等。

分段线性插值是利用线性多项式逼近函数,将数据点之间的区间分为若干段,每段内使用一条线性多项式进行插值。

数值分析例题和知识点总结

数值分析例题和知识点总结

数值分析例题和知识点总结数值分析是一门研究如何用计算机求解数学问题数值解的学科,它在科学计算、工程技术、金融经济等领域都有着广泛的应用。

为了更好地理解和掌握数值分析的知识,下面将通过一些例题来对常见的知识点进行总结。

一、误差分析误差是数值分析中一个非常重要的概念。

误差分为绝对误差、相对误差和有效数字。

绝对误差:设某量的准确值为$x$,近似值为$x^$,则绝对误差为$|x x^|$。

相对误差:相对误差是绝对误差与准确值的比值,即$\frac{|xx^|}{|x|}$。

有效数字:若近似值$x^$的绝对误差限是某一位的半个单位,该位到$x^$的第一位非零数字共有$n$位,则称$x^$有$n$位有效数字。

例如,$\pi$的近似值为 314,准确值约为 31415926,绝对误差为$|31415926 314| = 00015926$,相对误差为$\frac{00015926}{31415926} \approx 0000507$,314 有 3 位有效数字。

二、插值法插值法是数值分析中的一种基本方法,用于通过已知的数据点来构造一个函数。

1、拉格朗日插值已知$n + 1$个互异节点$(x_0, y_0),(x_1, y_1),\cdots, (x_n, y_n)$,拉格朗日插值多项式为:$L_n(x) =\sum_{i = 0}^n y_i l_i(x)$其中,$l_i(x) =\frac{\prod_{j = 0, j \neq i}^n (x x_j)}{\prod_{j = 0, j \neq i}^n (x_i x_j)}$例如,已知点$(1, 2)$,$(2, 3)$,$(3, 5)$,求插值多项式。

设$L_2(x) = y_0 l_0(x) + y_1 l_1(x) + y_2 l_2(x)$$l_0(x) =\frac{(x 2)(x 3)}{(1 2)(1 3)}=\frac{1}{2}(x 2)(x 3)$$l_1(x) =\frac{(x 1)(x 3)}{(2 1)(2 3)}=(x 1)(x 3)$$l_2(x) =\frac{(x 1)(x 2)}{(3 1)(3 2)}=\frac{1}{2}(x 1)(x 2)$则$L_2(x) = 2 \times \frac{1}{2}(x 2)(x 3) + 3 \times (x1)(x 3) + 5 \times \frac{1}{2}(x 1)(x 2)$2、牛顿插值牛顿插值多项式为:$N_n(x) = fx_0 + fx_0, x_1(x x_0) + fx_0, x_1, x_2(x x_0)(xx_1) +\cdots + fx_0, x_1, \cdots, x_n(x x_0)(x x_1) \cdots (xx_{n 1})$其中,均差$fx_0, x_1, \cdots, x_k =\frac{fx_1, x_2, \cdots, x_k fx_0, x_1, \cdots, x_{k 1}}{x_k x_0}$三、数值积分数值积分用于计算定积分的近似值。

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

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

数值计算⽅法实验之Newton多项式插值(MATLAB代码)⼀、实验⽬的在⼰知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处成⽴(x i)= y i(i=0,1,……,n),⽽在[a,b]上的其它点处成⽴f(x)≈P(x).⼆、实验原理三、实验内容求f(x)=x4在[0,2]上按5个等距节点确定的Lagrange插值多项式四、实验程序(1).m⽂件%输⼊的量:X是n+1个节点(x_i,y_i)(i = 1,2, ... , n+1)横坐标,Y是纵坐标,%x是以向量形式输⼊的m个插值点,M在[a,b]上满⾜|f~(n+1)(x)|≤M%注:f~(n+1)(x)表⽰f(x)的n+1阶导数%输出的量:向量y是向量x处的插值,误差限R,n次⽜顿插值多项式L及其系数向量C,%差商的矩阵Afunction[y,R,A,C,L] = newton(X,Y,x,M)n = length(X);m = length(x);for t = 1 : mz = x(t);A = zeros(n,n);A(:,1) = Y';s = 0.0; p = 1.0; q1 = 1.0; c1 = 1.0;for j = 2 : nfor i = j : nA(i,j) = (A(i,j-1) - A(i-1,j-1))/(X(i)-X(i-j+1));endq1 = abs(q1*(z-X(j-1)));c1 = c1 * j;endC = A(n, n); q1 = abs(q1*(z-X(n)));for k = (n-1):-1:1C = conv(C, poly(X(k)));d = length(C);C(d) = C(d) + A(k,k);%在最后⼀维,也就是常数项加上新的差商endy(t) = polyval(C,z);R(t) = M * q1 / c1;endL = poly2sym(C); (2)命令窗⼝输⼊X = [0 0.5 1.0 1.5 2.0];Y = [0 0.0625 1 5.0625 16];x = linspace(0,pi,50);M = 1;[y,R,A,C,L] = newton(X, Y, x, M);y1 = x.*x.*x.*x; %可根据所给函数更改errorbar(x,y,R,'.g')hold onplot(X, Y, 'or', x, y, '.k', x, y1, '-b');legend('误差','样本点','⽜顿插值估算','x^4');五、运算结果(1) 图像(2) 运算结果第⼀列为所得多项式系数:。

牛顿插值法的原理和推导过程

牛顿插值法的原理和推导过程

牛顿插值法的原理和推导过程一、引言在科学计算和数值分析中,插值法是一种重要的数学工具,它可以通过已知的离散数据点来估计未知点的值。

在众多插值法中,牛顿插值法以其形式简洁、计算方便而广受欢迎。

本文将对牛顿插值法的原理和推导过程进行详细阐述。

二、牛顿插值法的基本原理牛顿插值法是一种多项式插值方法,它的基本思想是通过构造一个n次多项式Pn(x),使得该多项式在给定的n+1个插值节点上与被插值函数f(x)具有相同的函数值。

这样,在插值节点之间,我们可以用Pn(x)来近似代替f(x)。

三、牛顿插值法的推导过程差商与差分为了构造插值多项式,首先需要引入差商的概念。

设f[xi,xj]表示函数f(x)在点xi 和xj上的一阶差商,其计算公式为:f[xi,xj] = (f(xj) - f(xi)) / (xj - xi)类似地,可以定义二阶、三阶乃至n阶差商。

n阶差商f[x0,x1,...,xn]表示函数f(x)在点x0,x1,...,xn上的差商,可以通过低一阶的差商递归计算得到。

差分是差商的另一种表现形式,它与差商之间有一一对应的关系。

在实际计算中,差分往往比差商更方便。

牛顿插值多项式的构造有了差商的概念,我们就可以构造牛顿插值多项式了。

设n次牛顿插值多项式为:Pn(x) = f(x0) + fx0,x1 + fx0,x1,x2(x-x1) + ... + fx0,x1,...,xn(x-x1)...(x-xn-1)其中,f[x0,x1,...,xk]表示k阶差商。

可以看出,Pn(x)是一个形式简洁的多项式,其各项系数即为各阶差商。

为了证明Pn(x)满足插值条件,即Pn(xi) = f(xi) (i=0,1,...,n),我们可以将xi代入Pn(x)中,逐项验证。

由于差商的性质,当x取xi时,高于i阶的差商项都将为0,因此Pn(xi) = f(xi)。

牛顿插值法的计算步骤(1)根据给定的插值节点,计算各阶差商;(2)根据牛顿插值多项式的公式,构造插值多项式Pn(x);(3)将需要插值的点代入Pn(x),得到插值结果。

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

数值分析第二次程序作业
PB09001057 孙琪
【问题】
对函数 f (x )=1
1+x 2 ,x ∈[−5,5] 构造牛顿插值多项式p L (x),插值点取为: 1. x i =5−
10N
i , i =0,1,…,N
2. x i =−5cos (2i+1
2N+2π) ,i =0,1,…,N 并计算如下误差:
max i
{|f (y i )−p (y i )| ,y i =i
10−5 ,i =0,1,…,100} 对N=5,10,20,40比较以上两组节点的结果。

【牛顿插值法】
通过递推和求解方程组,可以得到牛顿插值公式为如下形式:
p (x )=∑c k q k (x )=∑f[x 0,…,x k ]∏(x −x j )k−1
j=0
n
k=0
n
k=0
其中系数为差分,满足公式 f [x 0,…,x k ]=
f [x 1,…,x k ]−f[x 0,…,x k−1]
x k −x 0
因此只需对所给出的插值点求出其相应的差分,代入原方程就可求出牛顿插值方程。

【牛顿插值法算法描述】
1.对给定函数选取其区间上的一系列节点并计算其函数值,得到点列(x0,
y0),…,( x n , y n);
2.通过所给出的节点,求得相应的差分;
3.代入公式求出牛顿插值多项式,并由题目中的要求求得其最大误差。

【实验】
通过Mathematica编写程序得到如下结果:
N=5:
1.取x i=5−10
i , i=0,1,…,N得到:
N
(1)插值点为:
(2)由上述插值点构造出牛顿插值函数:
(3)由题目所给出的条件计算误差得到:
插值函数与原函数的图像为:
其中蓝色为原函数图像,红色为插值函数图像,可以看出在0点误差最大,与我们的计算结果相吻合。

2.取x i=−5cos(2i+1
π) ,i=0,1,…,N得到:
2N+2
(1)插值点为:
(2)由上述插值点构造出牛顿插值函数:由于该函数太长了,在此就不写出了。

(3)由题目所给出的条件计算误差得到:
插值函数与原函数的图像为:
其中蓝色为原函数图像,红色为插值函数图像,可以看出在0点误差最大,与我们的计算结果相吻合。

【结果】
同样的,我们可以得到该题目的结果:
N=5
(1)第一类插值点所得插值函数与原函数图像:
(2)第二类插值点所得插值函数与原函数图像:
N=10
(1)第一类插值点所得插值函数与原函数图像:
(2)第二类插值点所得插值函数与原函数图像:
(1)第一类插值点所得插值函数与原函数图像:
(2)第二类插值点所得插值函数与原函数图像:
(1) 第一类插值点所得插值函数与原函数图像:
(2) 第二类插值点所得插值函数与原函数图像:
【结论】
可以看出,用牛顿插值法得到的结果与Lagrange插值法得到的结果基本一致,故我们同样可以得到结论:
(1)第一类插值点确实在点数变多后在中间区域插值函数越来越逼近原函数,而在区间端点附近则变的波动越来越大,从而最大误差变的越来越大,
这说明我们所取的插值点在端点处逼近的不好。

(2)反观第二类插值点,虽然在点数较少时没有第一类插值点逼近的最大误差小,然而在点数增加后,插值函数与原函数几乎重合了,此时的最大
误差已经很小了,说明这类点在整个区间逼近原函数达到了很好的效果。

综上所述,同样的插值方法会由于不同的插值点的选取而产生很大的不同,因
此想要较好的逼近一个函数,不仅与插值方法有关(事实上多项式的插值方法
是唯一的,因此多项式插值这个不是重点),而且与插值点的选取有很大的关系。

【Mathematica程序】
Clear[f1,f2]
f1[x_]:=1/(1+x^2);
f2[x_]:=-5Cos[(2*x+1)*Pi/42];
M=20;
For[j=1,j≤M,j++,For[i=M,i≥j,i--,f1[f2[i]]=(f1[f2[i]]-
f1[f2[i-1]])/(f2[i]-f2[i-j])]];
fx=f1[f2[0]];
For[i=1,i≤M,i++,hx=1;For[j=1,j≤i,j++,hx=hx*(x-f2[j-1])];fx=fx+f1[f2[i]]*hx];
Print[fx];
Show[Plot[fx,{x,-5,5},PlotStyle→Red],Plot[1/(1+x^2),{x,-5,5},PlotStyle→Blue],PlotRange→All]
f1[x_]:=1/(1+x^2);
f3[x_]:=fx;
Table[Abs[f3[i/10-5]-f1[i/10-5]],{i,1,100}];
Print["Max Error of grid (1):",N[Max[%],12]]
其余的将M值及f2[x_]修改即可,得到插值函数修改分f3[x_]即可。

相关文档
最新文档