插值是基于基函数的插值方法解读

插值是基于基函数的插值方法解读
插值是基于基函数的插值方法解读

Lagrange 插值是基于基函数的插值方法。

功能:求已知数据点的拉格朗日插值多项式。

调用格式:f=Language(x,y)或L=language(x,y,x0)

其中,x为已知数据点x坐标向量;

y为已知数据点y坐标向量;

x0为插值点的x坐标;

f为求得的Lagrange插值多项式或在x0处的插值。

function f = Language(x,y,x0)

syms t;

if(length(x) == length(y))

n = length(x);

else

disp('x和y的维数不相等!');

return;

end%检错

f = 0.0;

for(i = 1:n)

l = y(i);

for(j = 1:i-1)

l = l*(t-x(j))/(x(i)-x(j));

end;

for(j = i+1:n)

l = l*(t-x(j))/(x(i)-x(j)); %计算拉格朗日基函数

end;

f = f + l; %计算拉格朗日插值函数

simplify(f); %化简

if(i==n)

if(nargin == 3)

f = subs(f,'t',x0); %计算插值点的函数值

else

f = collect(f); %将插值多项式展开

f = vpa(f,6); %将插值多项式的系数化成6位精度的小数

end

end

end

用径向基函数求微幅波的势函数

用径向基函数求微幅波的势函数 一、 径向基函数 1.径向基函数介绍 径向基函数是无网格方法的一种,我们知道有限元计算中网格畸变会带来困难,相对与有限元,无网格方法不受网格的影响,取点具有随意性,能更准确地获得获得更加复杂系统的近似解,对于流体,以拉格朗日建立的光滑粒子动力学方法(SPH )现阶段解决复杂的问题得到广泛的应用。 径向基函数是一类以点x 到xi 的距离di=||x-xi||为自变量的函数。它具有形式简单、空间维数无关、各向同性的优点,由于径向基函数有许多表达式,在这里采用吴宗敏(1995)提出的正定紧支径向基函数,其表达式为 ())5307282366(1)(54326 r r r r r r x I +++++-=+φ (1) ()???≤≤-=-+ 其他时当 010116 r r r mI I d d r =,mI d 是定义在节点I x 处的径向基函数的支撑域半径,I I x x d -=是以点x 到节点I x 的距离; 2.对于径向基函数的插值 设一个函数为 ()a x x u T )(φ= (2) []T N a a a a ,,,21 = (3) ()[]T N x x x x )(,,),()(21φφφφ = (4) 式(4)有N 个未知数,令近似函数u(x)在节点I x 处的值等于函数u(x)在该节点处的值I u ,即I I u x u =)(,可得到N 个线性方程组: u Aa = (5) 式中 ????????????=??????????????=)()()()()()() ()()()(....)()(21222121211121N N N N N N N T T T x x x x x x x x x x x x A φφφφφφφφφφφφ (6) []T N u u u u ,,,21 = (7) 这里u 一般是已知的;’ 由式(5)解出系数矩阵(3)式a ,代入式(2)中,得

Lagrange插值基函数构造插值多项式

数学与软件科学学院实验报告 学期:至第学期年月日 课程名称:___计算机数值方法___ 专业: 级班 实验编号:1 实验项目一次、二次Lagrange 插值多项式指导教师__张莉_ 姓名:学号:实验成绩: 一、实验目的及要求 实验目的:体会使用Lagrange插值基函数构造插值多项式的特点,熟悉使用一次或二次Lagrange插值多项式近似函数y=f(x)的算法。掌握Lagrange插值多项式近似函数f(x)的误差表达式,并会熟练应用。 实验要求: 1. 给出一次、二次Lagrange插值算法 2. 用C语言实现算法 3. 给出误差分析。 二、实验内容 用下列插值节点数据,构造一次和二次Lagrange插值多项式,并计 三、实验步骤(该部分不够填写.请填写附页) 步骤一:用为代码描述lagrange插值多项式的算法 Step 1:输入:插值节点控制数n,插值点序列(xi,yi),i=0,1,…n,要计算的函数点x. Step 2: for j=0 to n { { for j=0 to n 对于给定的x,计算lagrange基函数li(x) 然后求tmp=tmp*(x-xj)/(xi-xj); } fx=fx+tmp*yi; } Step 3:输出结果。 步骤二:编辑程序如下:

#include #define MAX_N 3 // 定义点的最大维数 typedef struct tagPOINT /*the structer of point */ { double x; double y; }POINT; //点的结构 int main() { int n,i,j; POINT points[MAX_N+1]; double tmp=1.0; double x; double lagrange=0.0; clrscr(); printf("\nInput n value :"); /*the number of the points inserted*/ scanf("%d",&n); //输入被插值点的个数 if(n>MAX_N) { printf("The input n is larger than MAX_N,please redefine the MAX_N.\n"); return 1; } if(n<=0) { printf("Please input a number between 1 and %d.\n",MAX_N); } printf("Now input the (x_i,y_i),i=0,...%d:\n",n); for(i=0;i<=n;i++) scanf("%lf %lf",&points[i].x,&points[i].y); //输入被插值点 printf("Now input the x value:"); /*the value of x*/ scanf("%lf",&x); //输入待求的点的第一个分量 for(i=0;i<=n;i++) { for(j=0;j<=n && j!=i;j++) tmp*=(x-points[j].x)/(points[i].x-points[j].x); lagrange+=tmp*points[i].y; } //用lagrange来求多项式 printf("the results is %lf",lagrange);

各种插值方法比较

空间插值可以有很多种分类方法,插值种类也难以举尽。在网上看到这篇文章,觉得虽然作者没能进行分类,但算法本身介绍地还是不错的。 在科学计算领域中,空间插值是一类常用的重要算法,很多相关软件都内置该算法,其中GodenSoftware 公司的Surfer软件具有很强的代表性,内置有比较全面的空间插值算法,主要包括: Inverse Distance to a Power(反距离加权插值法) Kriging(克里金插值法) Minimum Curvature(最小曲率) Modified Shepard's Method(改进谢别德法) Natural Neighbor(自然邻点插值法) Nearest Neighbor(最近邻点插值法) Polynomial Regression(多元回归法) Radial Basis Function(径向基函数法) Triangulation with Linear Interpolation(线性插值三角网法) Moving Average(移动平均法) Local Polynomial(局部多项式法) 下面简单说明不同算法的特点。 1、距离倒数乘方法 距离倒数乘方格网化方法是一个加权平均插值法,可以进行确切的或者圆滑的方式插值。方次参数控制着权系数如何随着离开一个格网结点距离的增加而下降。对于一个较大的方次,较近的数据点被给定一个较高的权重份额,对于一个较小的方次,权重比较均匀地分配给各数据点。计算一个格网结点时给予一个特定数据点的权值与指定方次的从结点到观测点的该结点被赋予距离倒数成比例。当计算一个格网结点时,配给的权重是一个分数,所有权重的总和等于1.0。当一个观测点与一个格网结点重合时,该观测点被给予一个实际为1.0 的权重,所有其它观测点被给予一个几乎为0.0 的权重。换言之,该结点被赋给与观测点一致的值。这就是一个准确插值。距离倒数法的特征之一是要在格网区域内产生围绕观测点位置的"牛眼"。用距离倒数格网化时可以指定一个圆滑参数。大于零的圆滑参数保证,对于一个特定的结点,没有哪个观测点被赋予全部的权值,即使观测点与该结点重合也是如此。圆滑参数通过修匀已被插值的格网来降低"牛眼"影响。 2、克里金法 克里金法是一种在许多领域都很有用的地质统计格网化方法。克里金法试图那样表示隐含在你的数据中的趋势,例如,高点会是沿一个脊连接,而不是被牛眼形等值线所孤立。克里金法中包含了几个因子:变化图模型,漂移类型和矿块效应。 3、最小曲率法 最小曲率法广泛用于地球科学。用最小曲率法生成的插值面类似于一个通过各个数据值的,具有最小弯曲量的长条形薄弹性片。最小曲率法,试图在尽可能严格地尊重数据的同时,生成尽可能圆滑的曲面。使用最小曲率法时要涉及到两个参数:最大残差参数和最大循环次数参数来控制最小曲率的收敛标准。 4、多元回归法 多元回归被用来确定你的数据的大规模的趋势和图案。你可以用几个选项来确定你需要的趋

五种插值法的对比研究---开题报告

五种插值法的对比研究 1. 选题依据 1.1 选题背景 插值法是一种古老的数学方法,插值法历史悠久。据考证,在公元六世纪时, 我国焯(zhuo) 已经把等距二次插值法应用于天文计算。十七世纪时,Newton 和 Gregory(格雷格里) 建立了等距节点上的一般插值公式,十八世纪时,Lagrange(拉格朗日) 给出了更一般的非等距节点插值公式。 而它的基本理论是在微积分产生以后逐渐完善的,它的实际应用也日益增多,特别是在计算机工程中。许多库函数的计算实际上归结于对逼近函数的计算。 1.2 研究的目的和意义 插值法是数值分析中最基本的方法之一。 在实际问题中碰到的函数是各种各样的,有的甚至给不出表达式,只提供了一些离散数据,例如,在查对数表时, 要查的数据在表中找不到,就先找出它相邻的数,再从旁边找出它的修正值, 按一定关系把相邻的数加以修正,从而找出要找的数,这种修正关系实际上就是一种插值。 在实际应用中选用不同类型的插值函数,逼近的效果也不同。在数值计算方法中,我们学习过五种基本的插值方法,即Lagrange 插值、Newton 插值、分段线性插值、分段三次Hermite 插值、样条插值函数。所以通过从这五种插值法的基本思想、特征、性质和具体实例入手,探讨五种插值法的优缺点和适用围,让学习者能够迅速而准确的解决实际问题,掌握插值法的应用。 2. 研究的方法 从具体实例入手并结合Matlab 在科学计算中的优势,通过实验对它们的精度和效率进行比较分析。 3. 论文结构 3.1 论文的总体结构 第一部分 导言 主要介绍选题的背景、目的及意义、研究现状、文献综述等。 第二部分 五种插值法的基本思想、性质及特点 在数值计算方法中,插值法是计算方法的基础,数值微分、数值积分和微分方程数值解都建立在此基础上。 插值问题的提法是:已知f(x)(可能未知或非常复杂函数)在彼此不同的n+1 个实点0x ,1x ,…n x 处的函数值是f(0x ),f(1x ),…,f(n x ),这时我们简单的说f(x)有n+1 个 离散数据对0n i i )}y ,{(x i .要估算f(x)在其它点x 处的函数值,最常见的一种办法就是插值, 即寻找一个相对简单的函数y(x),使其满足下列插值条件:y(i x )=f(i x ),i=0,1,…,n.,并以y(x)作为f(x)的近似值.其中y(x)称为插值函数,f(x)称为被插函数。

函数的插值方法及matlab程序

6.1 插值问题及其误差 6.1.2 与插值有关的MATLAB 函数 (一) POLY2SYM函数 调用格式一:poly2sym (C) 调用格式二:f1=poly2sym(C,'V') 或f2=poly2sym(C, sym ('V') ), (二) POLYVAL函数 调用格式:Y = polyval(P,X) (三) POLY函数 调用格式:Y = poly (V) (四) CONV函数 调用格式:C =conv (A, B) 例 6.1.2求三个一次多项式、和的积.它们的零点分别依次为0.4,0.8,1.2. 解我们可以用两种MATLAB程序求之. 方法1如输入MATLAB程序 >> X1=[0.4,0.8,1.2]; l1=poly(X1), L1=poly2sym (l1) 运行后输出结果为 l1 = 1.0000 - 2.4000 1.7600 -0.3840 L1 = x^3-12/5*x^2+44/25*x-48/125 方法2如输入MATLAB程序 >> P1=poly(0.4);P2=poly(0.8);P3=poly(1.2); C =conv (conv (P1, P2), P3) , L1=poly2sym (C) 运行后输出的结果与方法1相同. (五) DECONV 函数 调用格式:[Q,R] =deconv (B,A) (六) roots(poly(1:n))命令 调用格式:roots(poly(1:n)) (七) det(a*eye(size (A)) - A)命令 调用格式:b=det(a*ey e(size (A)) - A) 6.2 拉格朗日(Lagrange)插值及其MATLAB程序 6.2.1 线性插值及其MATLAB程序 例 6.2.1 已知函数在上具有二阶连续导数,,且满足条件 .求线性插值多项式和函数值,并估计其误差. 解输入程序 >> X=[1,3];Y=[1,2]; l01= poly(X(2))/( X(1)- X(2)), l11= poly(X(1))/( X(2)- X(1)), l0=poly2sym (l01),l1=poly2sym (l11), P = l01* Y(1)+ l11* Y(2), L=poly2sym (P),x=1.5; Y = polyval(P,x) 运行后输出基函数l0和l1及其插值多项式的系数向量P(略)、插值多项式L和插值Y为l0 = l1 = L = Y = -1/2*x+3/2 1/2*x-1/2 1/2*x+1/2 1.2500 输入程序 >> M=5;R1=M*abs((x-X(1))* (x-X(2)))/2

地质数据处理_插值方法

二维数据场的插值方法 1.二维数据场描述及处理目的 数据场数据 {(xi,yi,zi), i=1,…,n}, 即某特征在二维空间中的n个预测值列表: 处理目的 了解该数据场的空间分布情况 处理思路 网格化 绘制等值线图

网格化方法: 二维数据插值 2.空间内插方法 Surfer8.0中常用的插值方法 Gridding Methods Inverse Distance to a Power(距离倒数加权) Kriging(克立格法) Minimum Curvature(最小曲率法) Modified Shepard's Method(改进Shepard方法) Natural Neighbor(近邻法) Nearest Neighbor(最近邻法) Polynomial Regression(多项式回归法) Radial Basis Function(径向基函数法) Triangulation with Linear Interpolation(线性插值三角形法) Moving Average(移动平均法) Data Metrics(数据度量方法) Local Polynomial(局部多项式法)

Geostatistics Analyst Model in ArcGIS 9 2.1反距离加权插值 反距离加权插值(Inverse Distance Weighting ,简称IDW ),反距离加权法是最常用的空间内插方法之一。它的基本原理是:空间上离得越近的物体其性质越相似,反之亦然。这种方法并没有考虑到区域化变量的空间变异性,所以仅仅是一种纯几何加权法。反距离加权插值的一般公式为: ∑==n i i i i y x Z y x Z 1),(),(λ 其中,0Z(x )为未知点0x 处的预测值,i Z(x )为已知点i x 处的值,n 为样点的数量,λ为样点的权重值,其计算公式为: n p p i i0 i0i 1d /d λ--==∑ 式中i0d 为未知点与各已知点之间的距离,p 是距离的幂。样点在预测过程中受参数p 的影响,幂越高, 内插的平滑效果越佳。 尽管反距离权重插值法很简单,易于实现,但它不能对内插的结果作精度评价,所得结果可能会出现很大的偏差,人为难以控制。 2.2全局多项式插值(趋势分析法) 根据有限的样本数据拟合一个表面来进行内插,称之为全局多项式内插方法。一般多采用多项式来进行拟合,求各样本点到该多项式的垂直距离的和,通过最小二乘法来获得多项式的系数,这样所得的表面可使各样本点到表面之间距

基于径向基函数与B样条的散乱数据拟合方法

基于径向基函数与B 样条的散乱数据拟合方法 韩旭里,庄陈坚,刘新儒 中南大学数学科学与计算技术学院,湖南长沙 (410083) E-mail :zcjzym258@https://www.360docs.net/doc/4617801723.html, 摘 要:本文针对散乱数据的曲面拟合问题,提出了一种径向基函数与B 样条插值结合使用的曲面拟合方法.通过分片径向基函数插值,从三维散乱点获取有序网格点,利用张量积B 样条插值有序网格点,从而得到拟合曲面.该方法较好地解决了散乱数据插值和拟合的计算不稳定性问题.最后给出了算法实例. 关键词:曲面拟合; 高斯函数; 双三次B 样条插值; 径向基函数 1 引言 随着激光测距扫描等三维数据获取硬件技术的日趋完善,人们可以得到精度和密度都越来越高的物体表面三维数据,利用物体表面三维数据来建立真实物体数字模型也成为近年来国际图形学界的一种发展趋势,曲面重构作为这种建模方法的一个重要研究课题也得到了广泛的探讨和研究,成为国际上的研究热点之一.曲面重构可分为插值和逼近两种方法.曲面插值就是重构出来的目标曲面必须通过所有的采样点,包括型值点,边界及曲面内部法矢等信息;逼近曲面只是对采样点进行有权逼近,它不一定要求所有的采样点都落在目标曲面上,而只需要重构曲面满足用户的反求设计要求即可.本文笔者通过分析现有方法存在的困难,提出了一种基于径向基函数与B 样条结合使用的曲面拟合方法,较好地解决了散乱数据插值和拟合的计算不稳定性问题. 4][1][2][3][考虑用于多变量函数插值的径向基函数方法.给定函数R R →+:φ,对于数据{}R R f X d j j ?∈,,径向基函数插值法是要寻找如下形式的函数: ()(||||)j j f X a X X φ=?∑, 使其满足 ∑ (1) (||||).j k j k f a X X φ?=关于径向基函数,学者们已作了很多的工作,常用的径向基函数有: 10][7][8][9][(i) Kriging 方法的Gauss 分布函数: 22/)(σφr e r ?=(ii) Hardy 的Multi-Quadric 函数: ββφφ?+=+=) ()()()(2222r c r r c r ,(iii) Duchon 的薄板样条: 122)(ln )(+==k k r r r r r φφ,方程(1)对任何数据{}R R f X d j j ?∈,,当两两不同时都有解的充要条件是:对任 何两两不同的, 矩阵j X j X ||))(||(j k X X ?φ是非奇异的.正定函数是满足这种性质的函数.我们知道,Gauss 函数、逆Multi-Quadric 函数都是正定函数.对于数据量少的情况,径向基函数插值的结果较令人满意,而且计算也比较简单.但同时也存在一些问题,比如方程系数矩阵的条件数问题.径向基函数插值最终归结为求解一个线性方程组,在大数据时这是一个大规模矩阵的求逆问题.当数据较多时,得到的矩阵一般是数值不稳定的. 张量积B 样条插值也是实际中常用的插值方法.对于较均匀的矩形网格数据,其插值效

常见插值方法及其的介绍

常见插值方法及其介绍 Inverse Distance to a Power(反距离加权 插值法)”、 “Kriging(克里金插值法)”、 “Minimum Curvature(最小曲率)”、 “Modified Shepard's Method(改进别德法)”、 “Natural Neighbor(自然邻点插值法)”、 “Nearest Neighbor(最近邻点插值法)”、 “Polynomial Regression(多元回归法)”、 “Radial Basis Function(径向基函数法)”、 “Triangulation with Linear Interpolation(线性插值三角网法)”、 “Moving Average(移动平均法)”、 “Local Polynomial(局部多项式法)” 1、距离倒数乘方法 距离倒数乘方格网化方法是一个加权平均插值法,可以进行确切的或者圆滑的方式插值。方次参数 控制着权系数如何随着离开一个格网结点距离的增加而下降。对于一个较大的方次,较近的数据点被 给定一个较高的权重份额,对于一个较小的方次,权重比较均匀地分配给各数据点。 计算一个格网结点时给予一个特定数据点的权值与指定方次的从结点到观测点的该结点被赋予距 离倒数成比例。当计算一个格网结点时,配给的权重是一个分数,所有权重的总和等于1.0。当一个 观测点与一个格网结点重合时,该观测点被给予一个实际为 1.0 的权重,所有其它观测点

被给予一 个几乎为0.0 的权重。换言之,该结点被赋给与观测点一致的值。这就是一个准确插值。 距离倒数法的特征之一是要在格网区域产生围绕观测点位置的"牛眼"。用距离倒数格网化时可 以指定一个圆滑参数。大于零的圆滑参数保证,对于一个特定的结点,没有哪个观测点被赋予全部的 权值,即使观测点与该结点重合也是如此。圆滑参数通过修匀已被插值的格网来降低"牛眼"影响。 2、克里金法 克里金法是一种在许多领域都很有用的地质统计格网化方法。克里金法试图那样表示隐含在你的数 据中的趋势,例如,高点会是沿一个脊连接,而不是被牛眼形等值线所孤立。 克里金法中包含了几个因子:变化图模型,漂移类型和矿块效应。 3、最小曲率法 最小曲率法广泛用于地球科学。用最小曲率法生成的插值面类似于一个通过各个数据值的,具有最 小弯曲量的长条形薄弹性片。最小曲率法,试图在尽可能严格地尊重数据的同时,生成尽可能圆滑的 曲面。 使用最小曲率法时要涉及到两个参数:最大残差参数和最大循环次数参数来控制最小曲率的收敛 标准。 4、多元回归法 多元回归被用来确定你的数据的大规模的趋势和图案。你可以用几个选项来确定你需要的趋势面类 型。多元回归实际上不是插值器,因为它并不试图预测未知的Z 值。它实际上是一个趋势面分析作

插值法原理

附:插值法原理 我们知道化学工程中用来描述客观现象的函数f(x)往往是很复杂的,通过实验可以得到的一系列离散点xi及其相应的函数值yi,而xi和yi之间有时不能表达成一个适宜的数学关系式。这种情况下,可以用表格来反应xi和yi之间的关系。但表格法不便于分析其性质和变化规律,不能连续表达变量之间的关系,特别是不能直接读取表中数据点之间的数据。例如水的物理性质(黏度、密度、焓、比热容、热导率、动力黏度、运动黏度等)是在化工过程研究与计算中常用的参数,教科书或手册上往往只给出每隔10℃的相关物理性质数据,而实际应用中常常需要知道任意给定点处的函数值,或者利用已知的测试值来推算非测试点上的函数值,这就需要通过函数插值法来解决。 插值法的基本思想就是构造一个简单函数y = P(x)作为f(x)的近似表达式,以P(x)的值作为函数f(x)的近似值,而且要求P(x)在给定点xi与取值相同,即P(xi) = f(xi)通常称P(x)为f(x)的插值函数,xi称为插值节点。插值的方法很多,这里介绍一元线性插值和二次插值。 1.一元线性插值 已知函数y = f(x),在x0,x1上的值为y0,y1,如何构造一个插值函数y =P(x),使之满足P(x0) = y0,P(x1) = y1,从而使得函数P(x)可以近似地代替f(x)的数据。 一元线性插值法是最简单的插值方法,即该插值函数P(x)是通过A(x0,y0) 与B(x1,y 1)两点的一条直线,以此来近似地表示函数f(x),此直线的方程为 y = P1(x) = y0+ (1) 式(1)中P1(x)是x的一次多项式,即一次函数,这种插值称为线性插值。 将上式整理,可以改写为

拉格朗日插值公式的证明及其应用讲解

拉格朗日插值公式的证明及其应用 摘要: 拉格朗日(Lagrange)插值公式是多项式中的重要公式之一,在理论和实践中都有着广泛的应用.本文阐述了Lagrange 插值的基本理论,譬如:线形插值,抛物插值,Lagrange 多项式等.然后将线形插值,抛物插值,Lagrange 多项式插值分别应用到高中知识中,并且学会用计算机程序来编写.插值法的思想与中国剩余定理一脉相承, 体现了代数中"线性化" (即表示为求和和数乘的形式) 这一基本思路, 大巧若拙.本文的目的是通过介绍拉格朗日插值公式的推导,唯一性,证明过程及其在解题与实际生活问题中的应用来寻找该公式的优点,并且引人思考它在物理,化学等领域的应用.通过实际鉴定过程,利用插值公式计算生活中的成本问题,可以了解它的计算精度高,方法快捷. 关键词: 拉格朗日插值公式 唯一性 证明 解题应用 资产评估 曲线插值问题,直观地说,认为已知的一批数据点()n k k k f x 0,=是准确的,这些数据点所表现的 准确函数关系()x f 是未知的,在这种情况下要作一条近似曲线()x P 且点点通过这些点,插值问题不仅要讨论这种近似曲线()x P 的构造方法,还要讨论点增多时这种近似曲线()x P 是否稳定地收敛于未知函数()x f ,我们先研究一种简单常用的插值——拉格朗日插值. 一.定义,推导及其在解题中的应用 1.线性插值 1.1. 线性插值的定义 假定已知区间[]1,+k k x x 的端点处的函数值()k k x f y =, ()11++=k k x f y ,要求线性插值多项式()x L 1使它满足()k k y x L =1, ()111++=k k y x L . ()x L y 1=的几何意义:通过两点()k k y x ,和()11,++k k y x 的直线, 如图1所示,()x L 1的表达式由几何意义直接给出,即 ()()k k k k k k x x x x y y y x L ---+ =++111 (点斜式), 图1 ()11111++++--+--= k k k k k k k k y x x x x y x x x x x L (两点式). y=L 1x () y=f x () y k+1 y k x k+1 x k o y x

Lagrange插值基函数构造插值多项式.docx

数学与软件科学学院实验报告 学期?至第学期年月日 课!呈名称:计算机数值务法专业:级班 实验编号:1实验项目一次、二次Lagrange插值多项式指导教师张莉 姓名:学号:实验成绩: 一、实验目的及要求实验目的:体会使用Lagrange插值基函数构造插值多项式的特点,熟悉使用一次或二次Lagrange插值多项式近似函数y=f(x)的算法。掌握Lagrange插值多项式近似函数f(x)的误差表达式,并会熟练应用。 实验要求: 1.给出一次、二次Lagrange插值算法 2?用C语言实现算法 3?给出误差分析。 二、实验内容 用下列插值节点数据,构造一次和二次Lagrange插值多项式,并计算 f(11.5),f(12.5)的值。(f(x)=sinx) 要求:所需数据都从键盘读入,最后输出结果. 三、实验步骤(该部分不够填写?请填写附页) 步骤一:用为代码描述lagrange插值多项式的算法 Step 1:输入:插值节点控制数n,插值点序列(xi,yi) ,i=O,l,...n,要计算的函数点x. Step 2: for j=0 to n { { forj=0 to n对于给定的x,计算lagrangc基函数li(x) 然后求tmp=tmp* (x-xj) /(xi-xj); fx=fx+tmp*yi; Step 3:输111结果。步骤二:编辑程序如下:

# includc #define MAX N 3 // 定义点的最大维数 typedef struct tagPOINT { /*the structer of point */ double x; double y; } POINT; 〃点的结构 int main() { int n,i,j; POINT pointsLMAX_N+lJ; double tmp=1.0; double x; double lagrange=0.0; clrscr(); printf(”\nlnput n value scanf(n%d n,&n); /*the number of the points inserted*/ 〃输入被插值点的个数 if(n>MAX_N) { printf("The i叩ut n is larger than MAX_N,please redefine the MAX_N.\n"); return 1; 1 if(n<=0) { printf("Please i叩ut a number between 1 and %d.\n",MAX_N); } printf("Now input the (x_i,y_i),i=O,...%d:\n",n); fbr(i=O;i<=n ;i++) scanf("%lf %lf',&points[i].x,&points[i].y); 〃输入被插值点 printf("Now input the x value:*'); /*the value of x*/ scanf(“%f,&x); 〃输入待求的点的第一个分量 for(i=0;i<=n;i++) { for(j=0;j<=n && j!=i;j++) tmp*=(x-pointsfj].x)/(points[i].x-points[jl.x); lagrange+=tmp*points[i].y; } 〃用lagrange來求多项式 printf(M the results is %lf',lagrange);

相关文档
最新文档