切比雪夫(Chebyshev)曲線擬合 C語言源程序.doc_第1頁
切比雪夫(Chebyshev)曲線擬合 C語言源程序.doc_第2頁
切比雪夫(Chebyshev)曲線擬合 C語言源程序.doc_第3頁
切比雪夫(Chebyshev)曲線擬合 C語言源程序.doc_第4頁
切比雪夫(Chebyshev)曲線擬合 C語言源程序.doc_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

切比雪夫(Chebyshev)曲線擬合(參考常用算法程序集)給定n個(gè)數(shù)據(jù)點(diǎn),求切比雪夫意義下的最佳擬合多項(xiàng)式。函數(shù)語句和形參說明:void chir(x,y,n,a,m)double xn: 存放給定n個(gè)數(shù)據(jù)點(diǎn)的X坐標(biāo)double yn: 存放給定n個(gè)數(shù)據(jù)點(diǎn)的Y坐標(biāo)int n: 給定數(shù)據(jù)點(diǎn)的個(gè)數(shù)double am+1: 前m個(gè)元素返回m-1次擬合多項(xiàng)式的m個(gè)系數(shù),最后一個(gè)元素返回?cái)M合多項(xiàng)式的偏差最大值。若最后一個(gè)元素為負(fù)值,則說明在迭代過程中參考偏差不再增大,其絕對值為當(dāng)前選擇的參考偏差。Int m: 擬合多項(xiàng)式的項(xiàng)數(shù),即擬合多項(xiàng)式的最高次為m-1。要求m=n且mn或m20則自動(dòng)按m=min(n-1,20)處理。源程序: #include math.h void chir(x,y,n,a,m) int n,m; double x,y,a; int m1,i,j,l,ii,k,im,ix21; double h21,ha,hh,y1,y2,h1,h2,d,hm; for (i=0; i=n) m=n-1; if (m=20) m=19; m1=m+1; ha=0.0; ix0=0; ixm=n-1; l=(n-1)/m; j=l; for (i=1; i=m-1; i+) ixi=j; j=j+l; while (1=1) hh=1.0; for (i=0; i=m; i+) ai=yixi; hi=-hh; hh=-hh; for (j=1; j=m; j+) ii=m1; y2=aii-1; h2=hii-1; for (i=j; i=m; i+) d=xixii-1-xixm1-i-1; y1=am-i+j-1; h1=hm-i+j-1; aii-1=(y2-y1)/d; hii-1=(h2-h1)/d; ii=m-i+j; y2=y1; h2=h1; hh=-am/hm; for (i=0; i=m; i+) ai=ai+hi*hh; for (j=1; j=m-1; j+) ii=m-j; d=xixii-1; y2=aii-1; for (k=m1-j; k=m; k+) y1=ak-1; aii-1=y2-d*y1; y2=y1; ii=k; hm=fabs(hh); if (hm=ha) am=-hm; return; am=hm; ha=hm; im=ix0; h1=hh; j=0; for (i=0; i=n-1; i+) if (i=ixj) if (j=0; k-) h2=h2*xi+ak; h2=h2-yi; if (fabs(h2)hm) hm=fabs(h2); h1=h2; im=i; if (im=ix0) return; i=0;l=1; while (l=1) l=0; if (im=ixi) i=i+1; if (im) i=m; if (i=(i/2)*2) h2=-hh; else h2=hh; if (h1*h2=0.0) ixi=im; else if (im=0; j-) ixj+1=ixj; ix0=im; else if (imixm) for (j=1; j=m; j+) ixj-1=ixj; ixm=im; else ixi-1=im; 例:取函數(shù)f(x)=arctgx在區(qū)間-1,1上的101個(gè)點(diǎn)x(i)=-1.0_0.02i, i=0, 1, , 100其相應(yīng)的函數(shù)值為y(i)=f(x(i)。根據(jù)此101個(gè)數(shù)據(jù)點(diǎn)構(gòu)造切比雪夫意義下的5次你和多項(xiàng)式:Ps(x)=a0+a1x+a2x2+a3x3+a4x4+a5x5主函數(shù)程序如下: #include math.h #include stdio.h #include 8chir.c main() int i; double x101,y101,a7; for (i=0; i=100; i+) xi=-1.0+0.02*i; yi=atan(xi); chir(x,y,101,a,6); printf(n); for

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論