牛顿插值法原理及应用汇总 下载本文

牛顿插值法

插值法是利用函数f (x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f (x)的近似值。如果这特定函数是多项式,就称它为插值多项式。当插值节点增减时全部插值基函数均要随之变化,这在实际计算中很不方便。为了克服这一缺点,提出了牛顿插值。 牛顿插值通过求各阶差商,递推得到的一个公式:

f(x)=f[x0]+f[x0,x1](x-x0)+f[x0,x1,x2](x-x0)(x-x1)+...f[x0,...xn](x-x0)...(x-xn-1)+Rn(x)。

插值函数

插值函数的概念及相关性质[1]

定义:设连续函数y-f(x) 在区间[a,b]上有定义,已知在n+1个互异的点x0,x1,…xn上取值分别为y0,y1,…yn (设a≤ x1≤x2……≤xn≤b)。若在函数类中存在以简单函数P(x) ,使得P(xi)=yi,则称P(x) 为f(x)的插值函数. 称x1,x2,…xn 为插值节点,称[a,b]为插值区间。 定理:n次代数插值问题的解存在且唯一 。

牛顿插值法C程序

程序框图#include

void main() {

float x[11],y[11][11],xx,temp,newton; int i,j,n;

printf(\插值:\\n请输入要运算的值:x=\ scanf(\

printf(\请输入插值的次数(n<11):n=\ scanf(\

printf(\请输入%d组值:\\n\ for(i=0;i

}

for(i=1;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]);

printf(\ }

temp=1;newton=y[0][0]; for(i=1;i

{ temp=temp*(xx-x[i-1]); newton=newton+y[i][i]*temp; }

printf(\求得的结果为:N(%.4f)=?\\n\

牛顿插值法Matlab程序

function f = Newton(x,y,x0) syms t;

if(length(x) == length(y)) n = length(x); c(1:n) = 0.0; else