Lagrange插值

合集下载

第一章 第一节 Lagrange插值公式.

第一章 第一节 Lagrange插值公式.

Rn
x

M n+1 n +1
max ! axb
n+1
x
Lagrange余项定理在理论上有重要价值,它刻画了 Lagrange插值的某些基本特征。
n
注1 余项中含有因子n+1 x x xi ,如果插值点x 偏离插 i0
值节点xi 比较远,插值效果可能不理想。如何选择节点xi ,
可以证明,插值问题1.1、1.2 的解是存在且唯一的。为了
得到 Lagrange 公式的一般形式,我们先从最简单的一次插 值入手。
二、线性插值
已知:
x
x0
x1
y
y0
y1
求一个一次多项式P1(x) ,使满足
P1(xi ) yi ,i 0,1.
即求过点 x0, y0 , x1, y1 的一次曲线
使
Rn x
f x Pn x
f n+1
n +
1!
n+1

x

1.9
记 M n+1

max
a xb
f n+1 x ,于是由1.9 式可得
或者
Rn
x

M n+1
n +1!
n+1 x

1.10
max axb
简单才行。如果仅仅给出了一系列节点上的函数值
f xi yi ,i 0,1, 2,L , n ,则应采用 Lagrange 插值。
如果只提供了 f x 的一些离散值,并没给出具体的分析式 子, 就无法利用公式1.9 估计误差了。下面介绍另一种误差

lagrange插值

lagrange插值

%拉格朗日插值方法%可以同时对多点插值%t可以为向量function s=lag(x,y,t)%采用符号推导,这样可以给出插值具体公式syms p;%读取x向量维数n=length(x);s=0;for(k=1:n)la=y(k);%构造基函数for(j=1:k-1)la=la*(p-x(j))/(x(k)-x(j));end;for(j=k+1:n)la=la*(p-x(j))/(x(k)-x(j));end;s=s+la;simplify(s);end%对输入参数个数做判断,如果只有两个参数%直接给出插值多项式%如果三个参数则给出插值点的插值结果%第三个参数可以为向量if(nargin==2)s=subs(s,'p','x');%展开多项式s=collect(s);%把系数取到6位精度表达s=vpa(s,4);else%读取t长度m=length(t);%分别对t的每一个分量插值for i=1:mtemp(i)=subs(s,'p',t(i));end%得到的是系列插值点的插值结果%既得到的是向量,赋值给ss=temp;end%lagrange方法主函数%同时计算多点插值%已有点x ,yx=[pi/4,pi/6,pi/3,pi/2];y=[cos(pi/4),cos(pi/6),cos(pi/3),cos(pi/2)];%需要插值点t=[-40*pi/180,47*pi/180,53*pi/180,79*pi/180,174*pi/180]; disp('角度')du=[-40 47 53 79 174]%插值计算结果disp('插值结果')yt=lag(x,y,t)%cos函数值disp('cos函数值')yreal=[cos(-40*pi/180)cos(47*pi/180)cos(53*pi/180)cos(79*pi/180)cos(174*pi/180)]'disp('插值与函数值误差')dy=yt-yreal%给出插值多项式,需要显示的话去掉下行的分号yt=lag(x,y)%画出插值多项式图形ezplot(yt,[-pi/4,pi])hold on%画出cos函数图形ezplot('cos(t)',[-pi/4,pi]);grid onhold off。

Lagrange插值

Lagrange插值

10
线性插值函数
f(x)
(x0 ,y0) (x1,y1) ,
P1(x)
x0
x1
可见
是过

两点的直线。 两点的直线。
11
抛物插值函数
p2(x) ≈ f(x)
f(x)
x0
x1
x2
因过三点的二次曲线为抛物线,故称为抛物插值。 因过三点的二次曲线为抛物线,故称为抛物插值。
12
N次插值函数
b]上对给定 1个不同结点 个不同结点: 设连续函数 y = f ( x ) 在[a, b]上对给定n + 1个不同结点: 分别取函数值 其中 试构造一个次数不超过n的插值多项式
n n
27
N次插值多项式7 次插值多项式7
n 设节点 a ≤ x0 < x1 < < xn ≤ b ,且 f 满足条件 f ∈C [a, b] ,
内存在, 内存在 f ( n + 1 )在[a , b]内存在 考察截断误差
Rn (x) = f (x) Ln (x)
罗尔定理 : 若 ( x ) 在[x0 ,
线性插值基函数 l0 ( x), l1 ( x) 满足下述条件
xi
l0 ( x) l1 ( x)
x0
1 0
x1
0 1
并且他们都是一次函数。 并且他们都是一次函数。 注意他们的特点对下面的推广很重要
18
一次Lagrange插值多项式(6) 一次Lagrange插值多项式(6)
我们称 l0 ( x ) 为点 x0 的一次插值基函数,( x ) 为点 的一次插值基函数, l1
P ( x) = a0 + a1x + a2 x2 ++ an xn n

拉格朗日(Lagrange)插值

拉格朗日(Lagrange)插值

p2(7) =
(1–4)(1–9)
*1 + (4–1)(4–9)
*2
(7–1)(7–4)
+ (9–1)(9–4) * 3
= 2.7
例5.4 已知函数y=f(x)在节点上满足
x x0 x1 x2
y y0 y1 y2
求二次多项式 p(x) = a0 + a1x + a2x2
使之满足 p(xi) = yi
li (x的) 插值
lk (x0 ) 0,,lk (xk1) 0,lk (xk ) 1,lk (xk1 ) 0,,lk (xn ) 0

lk
(xi )
ki
1 0
(i k) (i k)
由条件 lk (xi ) 0 ( i k)知, x0 , x1,, xk1, xk1,, xn
都是n次 lk (x) 的零点,故可设
l0 (x)
再由另一条件 l0 (x0
c(x
) 1
x1 )( x x2
确定系数
)
c
(x0
1 x1)( x0
x2
)
从而导出
l0 (x)
(x (x0
x1)( x x2 ) x1 )( x0 x2 )
类似地可以构造出满足条件: l1(x1) 1, l1(x0 ) 0,
的插值多项式
l1 ( x)
lk (x)
j0 jk
n
x xj
n
(xk x j )
j0 xk x j
jk
j0 jk
称 lk (x) 为关于基点 xi 的n次插值基函数(i=0,1,…,n)
以n+1个n次基本插值多项式 lk (x)(k 0,1,, n) 为基础,就能直接写出满足插值条件

第5章 实四Lagrange插值多项式

第5章 实四Lagrange插值多项式

第5章 实验四Lagrange 插值多项式实验目的:理解Lagrange 插值多项式的基本概念,熟悉Lagrange 插值多项式的公式及源代码,并能根据所给条件求出Lagrange 插值多项式,理解龙格现象。

5.1 Lagrange 插值多项式 Lagrange 插值多项式的表达式: 1,,2,1,)()()(,)()(1111+=--==∏∑+≠=+=n i x x x x x l x l y x L n ij j j i j i n i i i 。

其中)(x l i 被称为插值基函数,实际上是一个n 次多项式。

)(x l i 的这种表示具有较好的对称性。

公式具有两大优点:(1)求插值多项式,不需要求解线性方程组,当已知数据点较多时,此公式更能显示出优越性。

(2)函数值可以用符号形式表示,数据点未确定的纵坐标可用多项式表示。

5.2 Lagrange 插值多项式源代码I% 功能: 对一组数据做Lagrange 插值 % 调用格式:yi=Lagran_(x,y,xi) % x,y 数组形式的数据表 % xi:待计算y 值的横坐标数组 % yi 用Lagrange 插值算出的y 值数组 function fi=Lagran_(x,f,xi)fi=zeros(size(xi)); np1=length(f); for i=1:np1z=ones(size(xi)); for j=1:np1if i~=j,z=z.*(xi-x(j))/(x(i)-x(j));end endfi=fi+z*f(i); end return例5.1 已知4对数据(1.6,3.3),(2.7,1.22),(3.9,5.61),(5.6,2.94)。

写出这4个数据点的Lagrange 插值公式,并计算出横坐标xi=[2.101,4.234]时对应的纵坐标。

解:4个数据点的Lagrange 插值公式为:)9.36.1(*)7.26.5(*)6.16.5()9.3(*)7.2)(6.1(*94.2)6.59.3(*)7.29.3(*)6.19.3()6.5(*)7.2(*)6.1(*9.3)6.57.2(*)9.37.2(*)6.17.2()6.5(*)9.3(*)6.1(*22.4)6.56.1(*)9.36.1(*)7.26.1()6.5(*)9.3(*)7.2(*3.3)(3------+------+------+------=x x x x x x x x x x x x x L清单5.1 clearx=[1.6, 2.7, 3.9, 5.6]; y=[3.3, 1.22, 5.61, 2.94]; xi=[2.101,4.234]; yi=Lagran_(x,y,xi); xx=1.5:0.05:6.5; yy=Lagran_(x,y,xx); plot(xx,yy,x,y,'o')其结果为:yi =1.0596 6.6457xg (x ):-, d a t a p o i n t s :o图5.1 插值多项式曲线图5.3 Lagrange插值多项式源代码II% 输入:x是插值节点横坐标向量;y是插值节点对应纵坐标向量。

lagrange插值的原理

lagrange插值的原理

lagrange插值的原理
Lagrange插值是一种数值分析方法,用于在已知一些点上的函数值的情况下,通过一个多项式来近似这个函数。

其基本原理如下:
1. 首先,根据给定的插值节点和函数值,构造一个n次多项式。

2. 利用插值基函数的概念,构造n次Lagrange插值多项式。

插值基函数是n个线性无关的n次多项式,它们在插值节点上的值等于相应的函数值。

3. 通过插值基函数,构建一个关于待求点x的n次多项式。

待求点的近似值可以通过求解这个多项式在x处的值来得到。

Lagrange插值的优势在于,它可以根据给定的插值节点和函数值精确地构造出一个多项式,从而在插值节点附近实现较高的近似精度。

然而,Lagrange插值也存在一定的局限性,例如在插值节点外的预测精度可能会降低,而且计算复杂度较高。

需要注意的是,Lagrange插值不仅适用于一元函数的插值,还适用于多元函数的插值。

在实际应用中,Lagrange插值被广泛应用于数学、物理、工程等领域的问题求解。

拉格朗日(Lagrange)插值算法

拉格朗日(Lagrange)插值算法

拉格朗⽇(Lagrange)插值算法拉格朗⽇插值(Lagrange interpolation)是⼀种多项式插值⽅法,指插值条件中不出现被插函数导数值,过n+1个样点,满⾜如下图的插值条件的多项式。

也叫做拉格朗⽇公式。

这⾥以拉格朗⽇3次插值为例,利⽤C++进⾏实现:1//利⽤lagrange插值公式2 #include<iostream>3using namespace std;45double Lx(int i,double x,double* Arr)6 {7double fenzi=1,fenmu=1;8for (int k=0;k<4;k++)9 {10if (k==i)11continue;12 fenzi*=x-Arr[k];13 fenmu*=Arr[i]-Arr[k];14 }15return fenzi/fenmu;16 }1718int main()19 {20double xArr[4]={};21double yArr[4]={};22//输⼊4个节点坐标23 cout<<"请依次输⼊4个节点的坐标:"<<endl;24for (int i=0;i<4;i++)25 cin>>xArr[i]>>yArr[i];2627//输⼊要求解的节点的横坐标28 cout<<"请输⼊要求解的节点的横坐标:";29double x;30 cin>>x;31double y=0;32for (int i=0;i<4;i++)33 y+=Lx(i,x,xArr)*yArr[i];34 printf("x=%lf时,y=%lf\n",x,y);3536//分界,下⾯为已知y求x37 cout<<"请输⼊要求解的节点的纵坐标:";38 cin>>y;39 x=0;40for (int i=0;i<4;i++)41 x+=Lx(i,y,yArr)*xArr[i];42 printf("y=%lf时,x=%lf\n",y,x);4344 system("pause");45return0;46 }作者:耑新新,发布于转载请注明出处,欢迎邮件交流:zhuanxinxin@。

多项式插值_Lagrange插值

多项式插值_Lagrange插值

φ(xk)=f(xk)=yk , k=0,1, … ,n
(2)
这时称 y=f(x)为被插值函数, φ(x) 称为插值函数, xk 称 为插值节点,式(2)称为插值条件,寻求插值函数φ(x) 的方法称为插值方法.
二、多项式插值问题
在构造插值函数时,函数类的不同选取, 对应着 各种不同的插值方法,这里主要研究函数类P是代数 多项式,即所谓的多项式插值问题。
多项式插值,从几何角度看,就是寻求n次代数曲 线 y=pn(x) 通过n+1个点(xk , yk) (k=0,1,…,n)作为 f(x) 的 近似(如下图).
y pn( x)
y f (x)
设 pn(x)=a0+ a1x+…+an xn ,当满足如下的插值条件 时,即
pn(xk) = f(xk) = yk , k = 0,1, … ,n
f(x) ≈ L1(x)=y0l0(x)+y1 l1(x)
二、抛物线插值(n=2)
已知
xi x0 x1 x2 yi y0 y1 y2
求解 L2(x)=a2x2+a1 x+a0
使得 f(x) ≈ L2(x), x ∈[x0 , x2].
关于二次多项式的构造采用如下方法:令
L2(x)=A(x-x1)(x-x2)+B(x-x0)(x-x2)+C(x-x0)(x-x1)
插值问题
§1 多项式插值问题 §2 Lagrange插值多项式
§1 多项式插值问题
一、插值问题
设函数 y=f(x)在区间[a,b]连续, 给定n+1个点
a≤ x0 < x1 < … < xn≤b
(1)
已知 f(xk)=yk (k=0,1,…,n) ,在函数类中寻找一函数φ(x) 作为 f(x) 的近似表达式,使满足

拉格朗日(Lagrange)插值

拉格朗日(Lagrange)插值
x) 每个 li 有 n 个根 x0 … xi … xn, 是n次多项式。
li ( x) = Ci ( x x0 )...(x xi )...(x xn ) = Ci ( x x j ) ji j =0 1 li ( xi ) = 1 Ci = j i ( xi xj )
l ( x) y
i =0 i
1
i
l0(x)
l1(x)
称为拉格朗日插值基函数 , 满足条件 li(xj)=ij /* Kronecker Delta */
n1
希望找到li(x),i = 0, …, n 使得 li(xj)=ij ;然后令
Pn ( x ) =
l (x) y
i=0 i
n
i
,则显然有Pn(xi) = yi 。
§4.2 拉格朗日(Lagrange)插值
n 求 n 次多项式 Pn ( x) = a0 a1 x an x 使得
Pn ( x i ) = y i ,
i = 0 , ... , n
条件:无重合节点,即 i j
xi x j
一. 插值多项式的存在唯一性 定理4.2.1 : 在 n 1 个互异节点 xk 处满足插值条件 Pn ( xk ) = yk
n
f
( n 1)
( n 1 ) ( x0 ) = = ( xn ) = 0( n 1 ) ( x ) Ln ( x ) K ( x )( n 1) ! = Rn ( x ) K ( x ) ( n 1) ! ( n) 存在 (a, b) 使得 ( ) = 0 ( n 1 ) n ( n 1 ) f ( ) x f ( x) Rn ( x ) = ( x xi ) = K ( x) (n 1) ! i =0 ( n 1) !

6-1 lagrange插值

6-1 lagrange插值

其中a=(x0-x1)(x0-x2)
b=(x1-x0)(x1-x2) c=(x2-x0)(x2-x1)
3.三点二次插值多项式为:
总结:三点二次插值就是用过三点(x0,y0)、 (x1,y1)、(x2,y2)的抛物线来近似曲线y=f(x), 因此也称三点二次插值为抛物线插值。
3. 4点3次插值
3. 5点4次插值如何写?
二、Hermite (埃尔米特)插值
特点:不但节点处值相同,一阶导数也相同。 Hermite 插值多项式为: n
H(x)= ∑{[1-2(x-xi)*li’(xi)]*li2(x)*yi+(x-xi)*li2(x) *y’i} i=0
用hi(x)表示1-2(x-xi)*li’(xi)]*li2(x) 用ki(x)表示(x-xi)*li2 (x) 当n=1时,即两个节点x0、x1 Hermite 插值多项式为(分 段三次插值法):
x0-x1
x0-x1
将a0和a1的值带到插值多项中得到:
2点1次插值也叫线性插值。
4x)=a0+a1x+a2x2 , 满足: a0+a1x0+a2x02=y0 a0+a1x1+a2x12=y1
a0+a1x2+a2x22=y2
a0=x1x2y0/a+x0x2y1/b+x0x1y2/c a1=-(x1+x2)y0/a-(x0+x2)y1/b-(x0+x1)y2/c a2=y0/a+y1/b+y2/c
得 到 : H3(x)=2(1+2(x-1)(x-2)2+3(1-2(x-2))(x-1)2-(x-2)(x-1) 2=-3x3+13x2-17x+9 当x=1.5时函数值为:2.625 当x=1.7时函数值为:2.931

《Lagrange插值》课件

《Lagrange插值》课件

更高效的插值算法介绍
简要介绍一些比Lagrange插 值更高效、更精确的插值算 法,并对其特点进行分析。
总结与展望
总结Lagrange插值的优点和应用前景,探讨该方法的未来发展方向和可能的扩展领域。
参考文献
相关文献推荐
介绍与Lagrange插值相关的优秀文献,供进一步学习和研究之用。
研究领域的进展
分享Lagrange插值在相关研究领域中的最新进展和重要成果。
相关专家学者的成果分享
介绍在Lagrange插值领域取得杰出成就的专家学者及其成果。
《Lagrange插值》PPT课 件
本PPT课件介绍Lagrange插值的概述、数学表达式、实例分析、算法优劣比 较、总结与展望。将深入剖析LaHale Waihona Puke range插值的基本思想和应用前景。
概述
什么是Lagrange插值?为什么使用Lagrange插值?Lagrange插值的基本思想 是什么?这一部分将首先解答这些问题。
数学表达式
Lagrange插值公式的推导、值多项式的计算、以及Lagrange插值多项式的刻 画在这一部分将一一介绍。
实例分析
一元实例
通过一个一元Lagrange插 值实例来深入理解这种方 法的应用和原理。
多元实例
探索多元Lagrange插值的 实例,揭示其在实际问题 中的应用和效果。
应用案例分析
通过具体案例分析,揭示 Lagrange插值方法解决实 际问题的能力和局限性。
算法优劣比较
与牛顿插值的比较
对比Lagrange插值与牛顿插 值方法的优劣,以及它们在 不同情景下的适用性。
Lagrange插值算法的优 缺点
评估Lagrange插值方法的优 点与缺点,探讨其在不同场 景下的性能和限制。

多项式插值和Lagrange差值的基础原理

多项式插值和Lagrange差值的基础原理

多项式插值和Lagrange差值的基础原理多项式插值是数值分析领域中一种常用的数值逼近方法,它用于通过给定的离散数据点构建一个多项式函数,以便在数据点之间进行插值,从而推断出未知数据点的函数值。

而Lagrange插值则是多项式插值方法中的一种,它基于拉格朗日插值多项式原理,并采用拉格朗日基函数进行计算。

一、多项式插值的基本概念多项式插值的基本目标是通过已知数据点(x_i, y_i)构建一个多项式函数P(x),使得P(x_i) = y_i。

其中,x_i是已知的数据点的自变量取值,y_i是对应的因变量取值。

多项式插值方法的核心是确定合适的多项式表达式和系数,以确保插值函数满足已知数据点的值。

二、Lagrange差值的原理Lagrange差值是一种常用的多项式插值方法,它基于拉格朗日插值多项式原理。

根据拉格朗日插值多项式的定义,给定n+1个不同的数据点(x_i, y_i),其中i=0,1,2,...,n,Lagrange插值多项式可以表示为:P(x) = Σ[L_i(x)*y_i]其中,L_i(x)为拉格朗日基函数,其定义如下:L_i(x) = Π[(x-x_j)/(x_i-x_j)] (j≠i)其中,Π表示连乘符号,x_j为其他已知数据点的自变量取值。

三、Lagrange差值的计算步骤1. 第一步是计算拉格朗日基函数L_i(x)的值。

对于给定的插值点x,计算每个基函数的值,并将其与对应的因变量y_i相乘。

2. 第二步是对所有的基函数计算结果进行求和,得到最终的插值函数P(x)。

四、多项式插值的应用多项式插值广泛应用于科学计算、数据分析、图像处理等领域。

通过插值方法可以预测未知数据点的函数值,对于实际问题中的缺失数据或者噪声数据进行补充和平滑处理。

总结:多项式插值是一种常用的数值逼近方法,利用已知数据点构建一个多项式函数,用于推断未知数据点的函数值。

Lagrange差值是多项式插值方法中的一种,基于拉格朗日插值多项式原理,通过计算拉格朗日基函数和已知数据点的函数值,得到插值函数。

拉格朗日(Lagrange)插值

拉格朗日(Lagrange)插值
n
( n 1) !
i0
( ( 1 0 (x Rolle’s f ( x ) Ln (若)至少个有 n+1根 ( x 0 ) Rnx)x )K ( x),则 xi ) R n ( x ) Theorem: x ( x ) 充分光滑, i 0 n 存在 ( x 0 , x 1 ) 使得 ( ) 0 。 任意固定 x xi (i = 0, 求导 考察 ( t ) Rn ( t ) K ( x ) ( t x i ) 注意这里是对 t …, n), 0 ( x 0 , x 1 ), 1 i ( 0 1 , x 2 ) x 推广:若 ( x 0 ) ( x 1 ) ( x 2 ) 0 (x)有 n+2 个不同的根x0) …0xn x ( , ( n) 1 ) ( x ) 0(, ) ( a , b ) x 0 使得 ( 0 ) ( 1 0 1 使得
于是 : L 2 ( x )
再利用 l 0 ( x 0 ) 1 C
1 ( x 0 x 1 )( x 0 x 2 )
( x x0 )( x x1 ) l2 ( x ) ( x2 x0 )( x2 x1 )
l ( x) y
i i0
2
i
l 0 ( x ) y 0 l1 ( x ) y1 l 2 ( x ) y 2
i0 n
[证明]上式的左端为插值基函数的线性组合,其组合 系数均为1。显然,函数f(x) 1在这n +1个节点取值 为1,即yi=f (xi) 1 (i=0,1,…,n), 它的n次Lagrange插值多项式为:
Ln ( x ) l i ( x ) y i l i ( x )

第4章 Lagrange插值

第4章 Lagrange插值
n
x xi i 0 x j xi
i j

l j (x j ) 1 l j ( xi ) 0 i j
显然 l j ( x ) 满足{
Lagrange插值函数Ln(x)
定理 4.2 在[a、b]上有
2 n
span 1, x, x , , x span l0 ( x), l1 ( x), l2 ( x), , ln ( x)
这只是一张函数表;有的函数虽然有解析表达式,但由于计 算复杂,使用不方便,通常也构造一个函数表。如三角函数表、 对数表、平方根表、立方根表等等。
引言
科学实验得到数据: i , yi ) (x yi f ( xi ) (i 0,1,2,..., n), 它反映客观存在的函数y f ( x)在这些点的情况: (i 0,1,..., n) (i 0,1,2,..., n)。 但f ( x)时未知的。因此就想寻找函数 ( x ) f ( x ) 且保持 ( xi ) f ( xi ) yi 的插值函数。 称xi为节点, ( x)为f ( x)关于节点xi (i 0,1,2,..., n)
o i 0 i j n
2o v v l j y j ; 4) 输出 : u, v。
4.3 误差估计
定理 4.3 设函数 f ( x) C n [a, b] , f ( n1) ( x) 在开区间 (a,b)内存在,则 Lagrange 插值多项式 Ln( x) 的余式有如下估 计式
第4章 函数逼近的插值法 与曲线拟和法
引言
许多实际问题都用函数y f (x)来表示某种内在规律的数量
关系,其中相当一部分函数是通过实验或观测得到的.虽然 f (x)
在某个区间[a,b]上是存在的,有的还是连续的,但却只能 给出[a,b]上一系列点 xi的函数值yi f ( xi )

lagrange插值法

lagrange插值法

lagrange 插值法实验基本原理: lagrange 插值法是用来解决离散点的插值问题。

若给定两个插值点),(),,(1100y x y x 其10x x ≠,在公式中取1=n ,则La g r a n g e 插值多项式为:)()()()()()(001010010110101x x x x y y y x x x x y x x x x y x p ---+=--+--=是经过),(),,(1100y x y x 的一条直线,故此法称为线性插值法。

2、若函数给定三个插值点 2,1,0),,(=i y x i i ,,其中i x 互不相等,在公式中取1=n ,则Lagrange 插值多项式为: ))(())(())(())(())(())(()(1202102210120120102102x x x x x x x x y x x x x x x x x y x x x x x x x x y x p ----+----+----=是一个二次函数,若2,1,0),,(=i y x i i 三点不在一条直线上,则该曲线是一条抛物线,这种插值法称为二次插值或抛物插值。

为了解决这个问题,我们为此构造了这个矩阵⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛----+---.........))(())(()())((12010212010212010x x x x x x x x x x x x x x x x 就可以找到相应系数。

实验结果分析:在应用拉格朗日插值法时应注意以下几个问题:1、在能获得原始资料时应尽量获取原始资料, 不能盲目地用组数据代入公式来估计未知数据。

2、在利用拉格朗日多项式进行插值估计时, 要求所研究范围的值的变化不受特殊或偶照因素的影响, 即的值是在正常条件下的。

3、如果有两组值(i x ,iy ),(j x ,j y ) 的i x =j x ;则这两组值只能取一组代入多项式计算, 否则便会出现 i y 与j y 的项分母为零的情况这种情况对于这种情况, 用哪组值代入多项式估计更好, 往往不易确定。

数学基础课里的lagrange插值公式

数学基础课里的lagrange插值公式

数学基础课里的lagrange插值公式lagrange插值公式:
1. Lagrange插值法是一种经典的插值方法,在数学和工程领域里都是一种常用的数值算法,也可以用来求解一元函数的极值点。

它实际上是对有n个数据点(比如:xi,yi)的函数f ( x) 进行拟合,形成n-1阶有理曲线,使得拟合曲线经过这些数据点。

2. Lagrange插值公式的可求性:在n个点的插值中,已知n个数据点(xi,yi),求使拟合曲线恰
好经过n个点的系数 ak 的问题。

3. Lagrange 插值公式:向量f (x) 和向量自变量x 可定义如下:f (x) = (f1 (x),f2 (x),…,fn-1 (x),fn (x));xi = (x1,x2,…,xn),那么有f (x) = Σ
j=1 n Lj(x).fj (*j = 1, 2,…, n*)
(其中Lj (x) 为Lagrangebasis 的基函数,可定义为:Lj (x) =Π(x/xj, i !=j))
4. Lagrange 插值公式的优点:
(1) Lagrange插值法简单易懂,实现简单;
(2) Lagrange插值法的拟合精度高;
(3) Lagrange插值法的拟合速度也是很快的,适用
性强。

5. Lagrange 插值公式的缺点:
(1) Lagrange插值法拟合数据点多时,计算量大;
(2) Lagrange插值法只适用于有n个数据点的插值,不能求解多元插值。

Lagrange插值

Lagrange插值

Rolle’s Theorem的推论: 若 ( x)充分光滑,且
(x0)(xn)0 存在 (a,b)使得 (n)()0
a
16
证明 由于Rn(xi) =0 ,i=0,1,…,n
记为Ln(x)= f(xj)lj(x)
a
15
二、插值余项 /* Remainder */
定理1 若 f (n1) (x) 在[a , b]内存在, 则在[a , b]上
的n+1个互异的点,对 f(x)所作的n次Lagrange插
值多项式Ln (x) 有误差估计
R n(x)f(x)Ln(x)f(n (n 1)1 ()!)i n0(xxi)
a
8
通过解上述方程组求得插值多项式pn(x)的方 法并不可取。 这是因为当n较大时解方程组的计 算量较大,而且方程组系数矩阵的条件数一般 较大(可能是病态方程组), 当阶数n越高时, 病态越重。
为此我们必须从其它途 径来求 pn(x): 不通过求解方程组而获 得插值多项式。
a
9
三、插值多项式的构造方法
求 n 次多项式 P n (x ) a 0 a 1x a n x n使得
P n(xi)yi,i0,1 ,L,n
n = 1 已知 x0 , x1 ; y0 , y1 ,求
P1(x)a0a1x使 得 P 1 (x 0 ) y 0 ,P 1 (x 1 ) y 1
可见 P1(x) 是过 ( x0 , y0 ) 和 ( x1, y1 ) 两点的直线。
n x
x
i
x x i0 j
i
ij
j =0,1,…,n
知识点二
这里每个lj(x)都是n次多项式,且容易验证lj(x)满 足
lj (xi) 10,,

Lagrange插值法和Newton插值法

Lagrange插值法和Newton插值法

插值法函数逼近一、实验目的:通过上机操作掌握插值法函数逼近的算法实现,掌握Lagrange 插值法和Newton 插值法的思想和区别。

二、实验内容:Lagrange 插值法和Newton 插值法的算法实现。

三、理论基础:(一)、Lagrange 插值法:n 次Lagrange 插值基函数:ni x x x x x l j i j ij j i ...,1,0,)()()(n0=--∏=≠= ,l i ,i=0,1,…,n 是n 次多项式并满足 l i (x j )=⎩⎨⎧≠=.,0,j 1i j i ,n 次Lagrange 插值多项式: ,)()()(0n ∑==ni i i x l x f x L显然,L ,n n P ∈并满足插值条件 L )()(n j j x f x =,j=0,1,…,n. (二)、Newton 插值法均差: f[x k ]=f(x k ), f[x k ,x k+1]=(f[x k+1]-f[x k ])/(x k+1-x k ) f[x k ,x k+1]=(f[x k+1]-f[x k ])/(x k+1-x k )为f 在x k 上的零阶均差,在x 1,+k k x 上的一阶均差和在21,,++k k k x x x 上的二阶均差. n 次Newton 插值多项式:f(x)=f(x 0)+f[x 0,x 1](x-x 0)+f[x 0,x 1,x 2](x-x 0)(x-x 1)+…+f[x 0,x 1,…x n ](x-x 0)(x-x 1)…(x-x n )Lagrange 插值法:代码:function yh= lagrange( x,y,xh ) n=length(x); m=length(xh); x=x(:); y=y(:); xh=xh(:);yh=zeros(m,1);c1 = ones(1,n-1);c2 = ones(m,1);for i=1:n,xp = x([1:i-1 i+1:n]);yh = yh + y(i) * prod((xh*c1-c2*xp')./(c2*(x(i)*c1-xp')),2); end运行结果:x(1)=0.4;x(2)=0.50;x(3)=0.70;x(4)=0.80;y(1)=-0.916281;y(2)=-0.693147;y(3)=-0.356675;y(4)=-0.223144;xh=0.6;lagrange(x,y,xh)ans =-0.5100Newton 插值法:代码:function newtoncz(a,b,n,f)ln=length(n);for k=1:lnm=n(k)-1;y=zeros(1,m+1);A=zeros(m+1);w=zeros(1,m+1);h=(b-a)/m;for i=1:m+1x(i)=a+(i-1)*h;y(i)=subs(f,findsym(f),x(i));endA(:,1)=y';for i=2:m+1for j=i:m+1A(j,i)=(A(j,i-1)-A(j-1,i-1))/(x(j)-x(j-i+1));endendp=A(1,1);w=vpa(w,4);syms X;w(1)=X-x(1);for i=2:m+1w(i)=w(i-1)*(X-x(i));p=A(i,i)*w(i-1)+p;p=simplify(p);endp=vpa(p,4);fprintf('n=%d的newton插值多项式为:',n(k));disp(p);运行结果:>> a=-1;>> b=1;>> n=[5,7,13];>> syms X;>> f=1/(1+25*X.^2);>> newtoncz(a,b,n,f)n=5的newton插值多项式为:3.316*X^4-4.277*X^2+1.n=7的newton插值多项式为:-13.13*X^6+20.96*X^4+.3475e-14*X^3-8.784*X^2-.2420e-15*X+1.n=13的newton插值多项式为:909.9*X^12-.3411e-12*X^11-2336.*X^10+.6632e-12*X^9+2202.*X^8-.1573 e-12*X^7-955.4*X^6+.2341e-12*X^5+198.7*X^4-.3535e-13*X^3-19.58*X^2 +.7881e-15*X+1.000四、比较分析:Lagrange插值多项式结构简单紧凑,在理论分析中甚为方便,在数值分析中经常使用,但在使用过程中也存在不便之处,当插值节点增加(相应的插值多项式的次数增加)、减少(相应的插值多项式的次数减少)时,构造差值多项式的基函数均需重新构造。

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

目录《MATLAB程序设计实践》课程考核 (1)1编程实现“LAGRANGE插值”科学计算算法,并举例应用之 (1)1.1算法说明 (1)1.1.1数学推导 (1)1.1.2Lagrange插值函数 (1)1.2流程图 (3)1.3源代码 (3)1.4运行结果 (4)2编程解决科学计算和工程问题 (5)2.1算法说明 (5)2.2流程图 (6)2.3源代码 (6)2.4运行结果 (7)3求多项式的根并分析误差大小 (8)3.1二分法 (8)3.1.1二分法原理 (8)3.1.2流程图 (9)3.1.3源代码 (9)3.2牛顿迭代法 (10)3.2.1算法说明 (10)3.2.2流程图 (11)3.2.3源代码 (11)3.3以上两种计算方法的运算结果 (12)3.3.1二分法计算结果 (12)3.3.2牛顿迭代法计算结果 (13)《MATLAB 程序设计实践》课程考核1 编程实现“Lagrange 插值”科学计算算法,并举例应用之 1.1 算法说明 1.1.1数学推导由数学理论可知:对12,,,n x x x 个不同的节点,且节点处的取值分别为12,,,n y y y ,则存在插值多项式:()1011n n n P x a a x a x --=+++ , 使得()()1,2,,n i i P x y i n == ,且满足插值条件的次插值多项式唯一。

并基于此定理,推出Lagrange 插值基函数。

考虑一个简单的插值问题:对节点()1,2,i x i n = 中任意一点()1k x k n ≤≤做一n 次多项式()k l x 使它在该点上取值为1,而在其余点()1,2,1,1,,i x i k k n =-+ 上取值为零,即1()0k i i k l x i k=⎧=⎨≠⎩ 表明n 个点()1,2,1,1,i x i k k n =-+ 都是n 次多项式()k l x 的零点,故可设1211()()()()()()k k k k n l x A x x x x x x x x x x -+=----- .其中k A 为待定系数,由条件()1k l x =可得:1111()()()()k k k k k k k n A x x x x x x x x -+=---- .由以上几式联立有:111111()()()()()()()()()k k n k k k k k k k n x x x x x x x x l x x x x x x x x x -+-+----=---- .对应于每一节点()0k x k n ≤≤都能求出一个满足插值条件的n 次插值多项式,这样,由式可以求出1n +个n 次插插多项式12(),(),,()n l x l x l x 。

容易看出,这组多项式仅与节点的取法有关,称它们为在n 个节点上的1n +次基本插值多项式或n 次插值基函数。

1.1.2Lagrange 插值函数利用插值基函数立即可以写出满足插值条件的n 次插值多项式1122()()()n n y l x y l x y l x ++并记为()n L x ;()1122111111111()()()()()()()()()()()()n n n nk k n kk k k k k k k n nn j k k j k jj kL x y l x y l x y l x x x x x x x x x y x x x x x x x x x x y x x -+=-+==≠=++----=-----=-∑∑∏在MATLAB 中不自带Lagrange 函数,需要自行编程实现Lagrange 插值计算。

其功能是利用给出的节点计算出过所有这些节点的插值多项式。

从而达到预测相关工程实践问题中某些物理量的变化趋势。

其算法流程说明如下:(1):,(0,1,2,...,);i i x y i n =输入(2)();L u 计算插值1);u 输入插值点2)0;v =3)0,1,...,k n =对做:o01()/();nk i k i i i kl u x x x =≠=--∏o 2;k k v v l y =+4):,u v 输出。

1.2流程图1.3源代码%lagrange 插值函数%x0,y0为已知的插值点数值%x为所求插值点矩阵%y为返回函数值,即插值函数在所求插值点的函数图1lagrange算法流程图值function y=lagrange(x0,y0,x) n=length(x0);m=length(x);%%%%%%%%%%%%%%%%%%最外层循环用于输出结果 for k=1:m z=x(k); v=0.0;%%%%%%%%%%%%%%%%%%外循环用于计算求和 for j=1:n p=1.0;%%%%%%%%内循环用于计算y n (x)*l n (x) for i=1:n if i~=jp=p*(z-x0(i))/(x0(j)-x0(i)); end endv=p*y0(j)+v;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% end y(k)=v;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% end1.4 运行结果函数调用格式:Lagrange(x0,y0,x)f =。

其中,x0,y0为插值节点,f 是求得的Lagrange 多项式在x 处的函数值。

◆给定ln f x =的数值表1,用上面lagrange 插值计算ln(0.54).>>x0=[0.4:0.1:0.8]; >>y0=log(x0);>>lagrange(x0,y0,0.54)输出结果为:-0.616142*********◆ lagrange 插值中的龙格现象已知函数21()1f x x =+,在区间[-5,5]之间进行插值,画出插值函数图象,可以比较出:在区间两端插值函数发散比较厉害,精度大大降低。

输入:>>x=[-5:1:5];>>y=1./(1+x.^2);>>x0=[-5:0.1:5];>>y0=lagrange(x,y,x0);>>y1=1./(1+x0.^2);%绘制图象>>plot(x0,y0,'--r')>>hold on>>plot(x0,y1,'-b')图2lagrange 算法中的龙格现象2 编程解决科学计算和工程问题题目:给定由N 个力(1,2,3,,)i F N ⋅⋅⋅组成的平面任意力系,求其合力。

2.1 算法说明◆ 求N 个力的合力,先以矩阵的形式将这N 个力输入到matlab 中储存起来。

因为力是一个矢量,其既有大小也有方向。

因此,我们得分别表示出力的大小以及方向两个参数,并以此为力的特征进行输入。

◆ 任何一个力i F在平面坐标系中都可以对其进行分解,其分解公式为:cos sin ix i iy i F F F F θθ⎧=⋅⎪⎨=⋅⎪⎩ . 其中,θ为i F 与坐标轴X 方向正向的夹角;ix F ,iy F分别为该力在坐标轴,X Y 方向的夹角。

◆ 将所求各个力都分解为两坐标轴方向的后,进行加和,求出两个坐标轴上的合力11n ix x i n iy i F F F F==⎧=⎪⎪⎨⎪=⎪⎩∑∑合合y. ◆ 接着将力合成,力的大小可以表示为:F =合◆ 最后再表示出力与X 轴正方向的夹角即可。

求夹角可以是要注意分类,要根据xF合及F 合y 所在的象限正确的表示出合力与X 轴正向的夹角。

如当0x F > 合,0F >合y 时,可按照下式求解:()arctan yx F F θ=合合.2.2 流程图2.3 源代码 %求合力函数%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % f 为个各个力的大小% c 为个各个力与x 轴正向的夹角 % F,C 为所求合力的大小及方向function [F,C]=qiuheli1(f,c)if length(f)~=length(c)disp('输入的力大小的举证与夹角不对应,请重新输入!');a=input('请按顺序输入各个力的大小,并以“[]”括起来,注意中间以空格或逗号隔开:');b=input('请按顺序输入各个力与x 轴正向的图3求合力的流程图夹角,并以“[]”括起来,注意中间以空格或逗号隔开:');qiuheli1(a,b);elsect=c*pi/180;c1=sym(ct);fx=f.*cos(c1);fy=f.*sin(c1);FX=sum(fx,2);FY=sum(fy,2);F0=(FX.^2+FY.^2).^0.5;format long;F=double(F0);Fx=double(FX);Fy=double(FY);if Fx>0&&Fy>0C=asin(Fy./F)*180/pi;elseif Fx<0&&Fy>0C=asin(abs(Fx)./F)*180/pi+pi/2; elseif Fx<0&&Fy<0C=asin(abs(Fy)./F)*180/pi+pi; elseif Fx>0&&Fy<0;C=asin(abs(Fx)./F)*180/pi+3/2* pi;elseif abs(Fx)==0&&abs(Fy)==0 C=0;elseif Fx>0&&Fy==0C=0;elseif Fx==0&&Fy>0C=90;elseif Fx<0&&Fy==0C=180;elseif Fx==0&&Fy<0C=270;endFCend %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%M文件clc;clear;a=input('请按顺序输入各个力的大小,并以“[]”括起来,注意中间以空格或逗号隔开:');b=input('请按顺序输入各个力与x轴正向的夹角,并以“[]”括起来,注意中间以空格或逗号隔开:');qiuheli1(a,b); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2.4运行结果调用上面的M文件,然后输入表中的力,可求得合力。

相关文档
最新文档