文档详情

牛顿插值法的C语言实现001.doc

发布:2016-05-07约字共13页下载文档
文本预览下载声明
牛顿插值法的C语言实现 摘要:拉格朗日插值法具有明显的对称性,公式中的每一项与所有的插值节点有关。因此,如果需要增加一个插值节点,则拉格朗日插值公式中的每一项都要改变,在有的应用中就显得不太方便。因此,可以利用另外一种差值方法来弥补这种缺陷,就牛顿插值法。本文通过对牛顿插值法的数学分析,主要给出其C语言实现方法。 关键字:差商 差分 C语言算法 1差商及其牛顿插值公式 1.1 差商及其主要性质 定义 若已知函数在点处的函数值。则称: 为函数在点的阶差商; 为函数过点的阶差商; 为函数过点的阶差商; 以此类推,一般地称 为函数过点的阶差商。 性质1 阶差商表示为函数值的线性组合。即 性质2 若函数在包含节点的区间上存在阶导数,则阶差商与导数的关系为 1.2 牛顿插值公式 通过个互异点上的次数不超过的插值多项式可以表示如下形式: 这种形式的插值多项式称为牛顿插值多项式,一般记为 由牛顿插值多项式可以看出,当增加一个插值点时,当前已有的各项不变,只需要在后面增加一项即可。并且,在牛顿插值公式中,每一项的系数就是各阶差商,比拉格朗日插值公式计算量小,且便于程序设计。 根据差商性质2,即 就可以将拉格朗日插值公式的余项转化成牛顿插值公式的余项,即 牛顿插值公式余项更具有一般性,它对于列表函数或者导数不存在的情形都适用。 2 差分与等距结点插值公式 2.1 差分及其主要性质 定义 设函数在等距结点 上的函数值为 其中,为常熟,称为步长。则 称为函数在处以为步长的一阶向前差分,并简记为 ; 称为函数在处以为步长的一阶向后差分,并简记为 称为函数在处以为步长的一阶向中心差分,并简记为 性质1 各阶差分可以表示成函数值的线性组合。即 性质2 差商与差分具有如下关系: 2.2 等距结点插值公式 2.2.1 牛顿前插公式 其余项公式为 2.2.2 牛顿后插公式 其余项公式为 在用牛顿前插和后插公式计算时候,要涉及到各阶前插和后插计算,下面是各阶向前和向后差分 的计算格式,如下图所示。 表1 各阶向前差分和向前差分的计算公式 1阶差分 2阶差分 3阶差分 4阶差分 用于前插公式 用于后插公式 3 牛顿差值公式的C程序设计和应用实例 3.1 牛顿差值法的应用步骤 步骤 首先我们按照表1,求得各点的差商.然后利用牛顿前差或后差公式,把数值带入.即可以求得n次多项式。 它在计算机上的应用步骤如下: 步骤1 输入所要求的牛顿多项式的次数,并依次输入个节点. for : i=0 to n+1 { scanf(%f,x[i]) scanf(%f,y[0][i]); } 步骤2 计算各阶差商 for : i=1 to n+1 { for : j=i to n+1 if(i1) y[i][j]=(y[i-1][j]-y[i-1][j-1])/(x[j]-x[j-i]); else y[i][j]=(y[i-1][j]-y[i-1][j-1])/(x[j]-x[j-1]); } 步骤3 代入牛顿插值公式,可计算得出结果。 for:i=1 to n+1 { temp=temp*(xx-x[i-1]); 牛顿=牛顿+y[i][i]*temp; } 3.22.1 已知的一组数据为 x sinx 构造牛顿插值函数并作图分析。 并分别利用程序估计,的估计值。 分析 首先我们可以通过程序求出差商表: 一阶差商 二阶差商 三阶差商 四阶差商
显示全部
相似文档