欢迎来到天天文库
浏览记录
ID:35669458
大小:370.50 KB
页数:18页
时间:2019-04-09
《牛顿插值法原理及应用汇总》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、.牛顿插值法 插值法是利用函数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] 定
2、义:设连续函数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程序 程序框图#includevoidmain(){ floatx[11],y[11][11],xx,temp,newton; inti,j,n; printf("Newton
3、插值:请输入要运算的值:x="); scanf("%f",&xx); printf("请输入插值的次数(n<11):n="); scanf("%d",&n); printf("请输入%d组值:",n+1); for(i=0;i4、j++) { if(i>1) 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("%f",y[i][i]); } temp=1;newton=y[0][0]; for(i=1;i5、ewton=newton+y[i][i]*temp; } printf("求得的结果为:N(%.4f)=%9f",xx,newton);牛顿插值法Matlab程序functionf=Newton(x,y,x0)symst;if(length(x)==length(y)) n=length(x);c(1:n)=0.0;else... disp('x和y的维数不相等!'); return;endf=y(1);y1=0;l =1;for(i=1:n-1) for(j=i+1:n) y1(j)=(y(j)-y6、(i))/(x(j)-x(i)); end c(i)=y1(i+1); l=l*(t-x(i)); f=f+c(i)*l; simplify(f); y=y1; if(i==n-1) if(nargin==3) f=subs(f,'t',x0); else f=collect(f); %将插值多项式展开 f=vpa(f,6); end end ...牛顿插值法摘要:值法利用函数7、f(x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f(x)的近似值。如果这特定函数是多项式,就称它为插值多项式。利用插值基函数很容易得到拉格朗日插值多项式,公式结构紧凑,在理论分析中甚为方便,但当插值节点增减时全部插值基函数均要随之变化,整个公式也将发生变化,这在实际计算中是很不方便的,为了克服这一缺点,提出了牛顿插值。 牛顿插值通过求各阶差商,递推得到的一个公式: f(x)=f[x0]+f[x0,x1](x-x0)+f[x0,x1,x2](x-x0)(x-x1)+...f[x0,...xn](x8、-x0).
4、j++) { if(i>1) 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("%f",y[i][i]); } temp=1;newton=y[0][0]; for(i=1;i5、ewton=newton+y[i][i]*temp; } printf("求得的结果为:N(%.4f)=%9f",xx,newton);牛顿插值法Matlab程序functionf=Newton(x,y,x0)symst;if(length(x)==length(y)) n=length(x);c(1:n)=0.0;else... disp('x和y的维数不相等!'); return;endf=y(1);y1=0;l =1;for(i=1:n-1) for(j=i+1:n) y1(j)=(y(j)-y6、(i))/(x(j)-x(i)); end c(i)=y1(i+1); l=l*(t-x(i)); f=f+c(i)*l; simplify(f); y=y1; if(i==n-1) if(nargin==3) f=subs(f,'t',x0); else f=collect(f); %将插值多项式展开 f=vpa(f,6); end end ...牛顿插值法摘要:值法利用函数7、f(x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f(x)的近似值。如果这特定函数是多项式,就称它为插值多项式。利用插值基函数很容易得到拉格朗日插值多项式,公式结构紧凑,在理论分析中甚为方便,但当插值节点增减时全部插值基函数均要随之变化,整个公式也将发生变化,这在实际计算中是很不方便的,为了克服这一缺点,提出了牛顿插值。 牛顿插值通过求各阶差商,递推得到的一个公式: f(x)=f[x0]+f[x0,x1](x-x0)+f[x0,x1,x2](x-x0)(x-x1)+...f[x0,...xn](x8、-x0).
5、ewton=newton+y[i][i]*temp; } printf("求得的结果为:N(%.4f)=%9f",xx,newton);牛顿插值法Matlab程序functionf=Newton(x,y,x0)symst;if(length(x)==length(y)) n=length(x);c(1:n)=0.0;else... disp('x和y的维数不相等!'); return;endf=y(1);y1=0;l =1;for(i=1:n-1) for(j=i+1:n) y1(j)=(y(j)-y
6、(i))/(x(j)-x(i)); end c(i)=y1(i+1); l=l*(t-x(i)); f=f+c(i)*l; simplify(f); y=y1; if(i==n-1) if(nargin==3) f=subs(f,'t',x0); else f=collect(f); %将插值多项式展开 f=vpa(f,6); end end ...牛顿插值法摘要:值法利用函数
7、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
8、-x0).
此文档下载收益归作者所有