插值方法-牛顿插值

来源:互联网 发布:网站自动注册软件 编辑:程序博客网 时间:2024/04/30 00:47

1、关于点的一阶差商为

       关于的二阶差商为

        关于点的k阶差商为

         可以证明

差商的值只与节点有关,与节点的顺序无关

2、由n阶差商的定义得


整理得

二式乘以(x-x0),三式乘以(x-x1)...然后将所有式子相加得n次牛顿插值函数f(x)为

误差项为:

算法实现:

1、计算k阶差商并存入数组

数组g[i](i=1,2,...,n)存放i阶差商,ele[elei](elei=0,1,...,i)存放构成g[i]的每一项(

初始值为

for(i=2;i<=n;i++) {     g[i]=0;     for(elei=0;elei<i;elei=elei+2)         ele[elei]=ele[elei]*(1.0/(x[elei]-x[i]));         g[i]=g[i]+ele[elei];         if(elei+1<i)             ele[elei+1]=ele[elei+1]*(1.0/(x[elei+1]-x[i]));              g[i]=g[i]+ele[elei+1];    t=1;    for(j=0;j<i;j++)         t=t*(1.0/(x[i]-x[j]));    ele[elei]=t*f(x[i]);    g[i]=g[i]+ele[elei];}

2、计算n次牛顿插值函数

f(x)=f(x0);t1=1;for(i=1;i<=n;i++) {    t1=t1*(x-x[i-1]);    f(x)=f(x)+t1*g[i];}




原创粉丝点击