二元拉格朗日插值
一 实验目的-程序功能
利用FORTRAN编程实现二元拉格朗日插值求解函数在给定点的函数值。
设已知插值节点(xi,yi)(i=1,…,m,j=1,…,n)及对应函数值zij=f(xi,yi) (i=1,…,m,j=1,…,n),用拉格朗日插值法求函数在给定点(x,y)处的对应函数值z。 二 实验内容
1、 了解和学习FORTRAN程序语言,会编写一些小程序; 2、 学习和理解拉格朗日插值的原理及方法,并拓展至二元拉格
朗日插值方法;
3、 利用FORTRAN编程实现二元拉格朗日插值法; 4、 举例进行求解,并对结果进行分析。 三 实验原理及方法 1、基本概念
已知函数y=f(x)在若干点xi的函数值yi=f?xi?(i=0,1,???,n)一个差值问题就是求一“简单”的函数p(x):
p(xi)=yi,i=0,1,???,n, (1)
x0则p(x)为f(x)的插值函数,而f(x)为被插值函数会插值原函数,,x1,x2,...,xn为插值节点,式(1)为插值条件,如果对固定点x求f(x)
??数值解,我们称x为一个插值节点,f(x)?p(x)称为x点的插值,当
x?[min(x0,x1,x2,...,xn),max(x0,x1,x2,...,xn)]时,称为内插,
?????否则称为外插式外推,特别地,当p(x)为不超过n次多项式时称为n阶Lagrange插值。
2、Lagrange插值公式 2.1 线性插值L1(1)
设已知x0 ,x1及y0=f(x0) ,y1=f(x1),L1(x)为不超过一次多项式且满足L1(x0)=y0,L1(x1)=y1,几何上,L1(x)为过(x0,y0),(x1,y1)的直线,从而得到
L1(x)=y0+
y1?y0(x-x0). (2) x1?x0为了推广到高阶问题,我们将式(2)变成对称式
L1(x)=l0(x)y0+l1(x)y1. (3)
其中,
x?x0x?x1l0(x)=x0?x1,l1(x)=x1?x0。
均为1次多项式且满足
l0(x0)=1且l1(x0)=0;l0(x1)=0且l1(x1)=1。
两关系式可统一写成
?1(i?j)li(xi)???0( i ?j)(4)
2.2 n阶Lagrange插值Ln(x)
设已知x0,x1,x2,...,xn及yi=f(xi)(i=0,1,.....,n),Ln(x)为不超过n次多项式且满足Ln(xi)?yi(i=0,1,...n).
易知
Ln(x)?l0(x)y0??ln(x)yn??li(x)yi0n(5)
li(x)j其中,均为n次多项式且满足式(4)(i,j=0,1,...,n),再由x(j?i)
为n次多项式li(x)的n个根,知li(x)=c
?x?xj?0i?inj.最后,由
li(xj)?c?(xi?xj)?1?c=
j?0j?in1?(x?x)ijj?0j?in,i=0,1,...,n.
总之得到:
Ln(x)??li(x)yii?0n
(6)
li(x)??j?0j?inx?xjxi?xj.
(7)
(6)式为n阶Lagrange插值公式,其中,阶Lagrange插值的基函数。 3 二元拉格朗日插值方法
li(x)(i=0,1,…,n)称为n
对于一元函数y=f(x),得到n+1个数据点(xi,yi)(i=0,1,…,n),可由(6)、(7)式求得n阶Lagrange插值公式,然后求函数在y=f(x)在x点的函数值。
zi,j?f(xi,yj)z?f(x,y) 对于二元函数,若知道数据点
(i=1,…,m,j=1,…,n),可利用两次拉格朗日插值计算z?f(x,y)在点(x,y)的函数值,方法如下: (1)对每个
xi( i=1,…,m),以
yj( j=1,…,n)为插值节点,
zij
( j=1,…,n)为对应函数值,y为插值变量,作一元函数插值得
ui( i=1,…,m); (2) 以
xi( i=1,…,m)为插值节点,i( i=1,…,m)为对应函数值,
ux为插值变量,作一元函数插值求得(x,y)点的值z。 四 FORTRAN编程
a) 开发环境
使用Compaq Visual Fortran 6.6进行程序设计,编程实现二元拉格朗日插值算法。 b) 使用说明
先编出一元拉格朗日差值算法子程序lagrange,然后编写二元拉格朗日插值算法程序lagrange2,其中两次调用lagrange子程序。
Lagrange(xa,ya,n,x,y)
n 整型变量,输入参数,节点个数
xa n个元素的一维实数型数组,输入参数,存放自变量插
值节点xi(i=1,…,n)
ya n个元素的一维实数型数组,输入参数,存放函数值
(y1,…,yn)T
x 实型变量,输入参数,插值自变量 y 实型变量,输出参数,所求值
****************************************************** Lagrange2(x1a, x2a,ya,m,n,x1, x2,y) m 整型变量,输入参数,x自变量节点个数 n 整型变量,输入参数,y自变量节点个数
x1a m个元素的一维实数型数组,输入参数,存放x自变
量插值节点xi(i=1,…,m)
x2a n个元素的一维实数型数组,输入参数,存放y自变
量插值节点yj(j=1,…,n)
x1 实型变量,输入参数,插值x自变量 x2 实型变量,输入参数,插值y自变量
相关推荐: