第一范文网 - 专业文章范例文档资料分享平台

二元拉格朗日插值Fortran程序设计实验 - 图文

来源:用户分享 时间:2025/12/7 0:12:37 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

二元拉格朗日插值

一 实验目的-程序功能

利用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自变量

二元拉格朗日插值Fortran程序设计实验 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c0lgwo31t1b3ef8l940oa3cwgi893aj006hc_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top