資源描述:
《牛頓插值法原理及應用》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在工程資料-天天文庫。
1、牛頓插值法?插值法是利用函數(shù)f(x)在某區(qū)間中若干點的函數(shù)值,作出適當?shù)奶囟ê瘮?shù),在這些點上取已知值,在區(qū)間的其他點上用這特定函數(shù)的值作為函數(shù)f(x)的近似值。如果這特定函數(shù)是多項式,就稱它為插值多項式。當插值節(jié)點增減時全部插值基函數(shù)均要隨之變化,這在實際計算中很不方便。為了克服這一缺點,提出了牛頓插值。牛頓插值通過求各階差商,遞推得到的一個公式: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)。插值函數(shù)插值函數(shù)的概念及相關性質(zhì)[1]?定義:設連續(xù)函數(shù)y-f(x)
2、在區(qū)間[a,b]上有定義,已知在n+1個互異的點x0,x1,…xn上取值分別為y0,y1,…yn(設a≤x1≤x2……≤xn≤b)。若在函數(shù)類中存在以簡單函數(shù)P(x),使得P(xi)=yi,則稱P(x)為f(x)的插值函數(shù).稱x1,x2,…xn為插值節(jié)點,稱[a,b]為插值區(qū)間。?定理:n次代數(shù)插值問題的解存在且唯一。?牛頓插值法C程序?程序框圖#includevoidmain(){???floatx[11],y[11][11],xx,temp,newton;???inti,j,n;???printf("Newton插值:請輸入要運算的值:x=");???scanf
3、("%f",&xx);???printf("請輸入插值的次數(shù)(n<11):n=");???scanf("%d",&n);???printf("請輸入%d組值:",n+1);???for(i=0;i1)???????????????y[i][
4、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、f)=%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的維數(shù)不相等!');???return;endf=y(1);y1=0;l?=1;for(i=1:n-1)?????for(j=i+1:n)???????y1(j)=(y(j)-y(i))/(x(j)-x(i));???end???c(i)=y1(i+1);????????l=l*(t-x(i));?????f=
6、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??牛頓插值法摘要:值法利用函數(shù)f(x)在某區(qū)間中若干點的函數(shù)值,作出適當?shù)奶囟ê瘮?shù),在這些點上取已知值,在區(qū)間的其他點上用這特定函數(shù)的值作為函數(shù)f(x)的近似值。如果這特定函數(shù)是多項式,就稱它
7、為插值多項式。利用插值基函數(shù)很容易得到拉格朗日插值多項式,公式結(jié)構(gòu)緊湊,在理論分析中甚為方便,但當插值節(jié)點增減時全部插值基函數(shù)均要隨之變化,整個公式也將發(fā)生變化,這在實際計算中是很不方便的,為了克服這一缺點,提出了牛頓插值。 牛頓插值通過求各階差商,遞推得到的一個公式: 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