首页 > 范文大全 > 正文

浅谈插值法

开篇:润墨网以专业的文秘视角,为您筛选了一篇浅谈插值法范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:本文主要介绍了插值的研究问题,应用及基本思想,不同插值间的比较及简单程序设计。

关键词:插值,插值基本思想,插值多项式

中图分类号:O174.42 文献标识码:A 文章编号:

引言

在生产实践和科学研究的实验中,函数有时不能直接写出表达式,而只能给出函数在若干个点上的函数值或导数值。即使有的函数有解析表达式,但由于表现复杂,使用不便,通常也是造一张函数表,当遇到要求表中未列出的变量的函数值时,就必须做数值逼近。例如,若给定了函数在互异的即给出了一张函数表。为了研究函数的变化规律,就要根据这个表寻求某一函数,而且既能反映的函数特性,又便于计算[1]。求函数的问题就是插值要研究的问题。

插值的简单应用

插值法是一种古老的数学方法,来源于生产实践,目前在日常生活中和计算机上都是普遍使用的方法。例如,在现代机械工业中用计算机程序控制加工机械零件,根据设计可给出零件外形曲线的某些型值点,加工时为控制每步走刀方向及步数,就要算出零件外形曲线其他点的函数值,才能加工出外表光滑的零件;还有我们在称体重的时候若发现体重计表盘的指针在两标记线之间时,我们很自然地在内心运用插值来估计重量;假如我们费了好大的劲才得到几个点的计算数据,我们需要确定数据之间的值时,这时我们希望根据给定的函数值做一个既能反映它本身的特性又便于计算的简单函数。这些都是求插值函数的问题。

3、几种插值的基本思想

1)拉格郎日插值的基本思想:将待求的次多项式插值函数改写成另一种表示方式,再利用插值条件确定其中的待定函数,从而求出插值多项式。

2)牛顿插值的基本思想是:将待求的次插值多项式改写为具有承袭性的形式,然后利用插值条件确定的待定系数,以求出所要的插值函数。

3)埃尔米特插值的基本思想:利用Lagrange插值函数的构造方法,先设定函数形式,再利用插值条件 , ,求出插值函数。

4)分段多项式插值的基本思想是:将值函数的插值节点由小到大排序,然后在相邻的两个节点为端点的区间上用次多项式去近似。

4、不同插值法的比较[2-3]

1)拉格朗日插值

优点:公式含义直观,构造容易,形式具有对称性,便于编程计算,很适合在电子计算机上使用。

缺点:由于都依赖于全部插值节点,若增加(或减少)节点,则必须重新构造插值基函数。随着插值多项式的增加,计算的舍入误差会迅速扩大,最终影响计算结果。

牛顿插值

优点:在计算插值多项式及求解函数近似值都比较方便且计算量相对较小。当节点数增加(或减少)时,只需将原有的计算结果增加(或减少)一项,因此便于递推运算,所以其具有灵活增加节点的优点。

缺点:在插值公式中,插值节点之间的距离一般是不相等的,但在实际应用时,经常会遇到节点是等距分布的情况。随着插值多项式的增加,计算的舍入误差会迅速扩大,最终影响计算结果。

埃尔米特插值

优点:保持插值曲线在节点处有切线(光滑),使插值函数和函数的密和程度更好。

缺点:光滑性差,高次存在不稳定性。

分段三次多项式插值

优点:光滑性和精度要好些,在插值节点是等距分布时,其处理效率高一些。

缺点:在数据处理方面,比分段线性插值要复杂些,因而效率也低。

5、插值法的程序设计[4]

1)牛顿插值程序

{x[0],x[1],x[2],x[3],x[4]}={10,11,12,13,14};

y[k_]:=Log[x[k]]

Table[y[k],{k,0,4}]//N;

MatrixForm[%]

f[i_,j_]:=(y[j]-y[i])/(x[j]-x[i])

Table[f[i,i+1],{i,0,3}]//N;

MatrixForm[%]

f[i_,j_,k_]:=(f[j,k]-f[i,j])/(x[k]-x[i])

Table[f[i,i+1,i+2],{i,0,2}]//N;

MatrixForm[%]

f[i_,j_,k_,l_]:=(f[j,k,l]-f[i,j,k])/(x[l]-x[i])

Table[f[i,i+1,i+2,i+3],{i,0,1}]//N;

MatrixForm[%]

f[i_,j_,k_,l_,m_]:=(f[j,k,l,m]-f[i,j,k,l])/(x[m]-x[i])

Table[f[i,i+1,i+2,i+3,i+4],{i,0,0}]//N;

MatrixForm[%]

2)拉格朗日插值法程序

x0=0;

x1=1.5;

x2=5.1;

y0=-1;

y1=4.25;

y2=35.21;

m[0]=(x-x1)(x-x2)/((x0-x1)(x0-x2));

m[1]=(x-x0)(x-x2)/((x1-x0)(x1-x2));

m[2]=(x-x0)(x-x1)/((x2-x0)(x2-x1));

L[x_,n_]:=y0*m[0]+y1*m[1]+y2*m[2]

L[x,n]

Simplify[%]//N

3)曲线拟合的最小二乘法程序:

L={{2,1},{3,6},{5,22},{8,61}};

f=Fit[L,{1,x^3,x^7},x]

k1=ListPlot[L,Prolog->AbsolutePointSize[15]]

k2=Plot[f,{x,0,8}]

Show [k1,k2]

6、参考文献

[1] 史万明,杨骅飞,吴裕树,等. 数值分析(第二版)[M].北京理工大学出版社, 2004.8.

[2] 李庆扬,王能超,易大义.数值分析[M]. 清华大学出版社, 2001.8.

[3] 沈剑华.数值计算基础(第二版)[M]. 同济大学出版社, 2004.5.

[4] 王同科,张东丽,王彩华. Mathematica与数值分析实验[M]. 清华大学出版