資源描述:
《MATLAB上機(jī)實(shí)驗(yàn)——最佳平方逼近.docx》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、一.任務(wù):用MATLAB語(yǔ)言編寫連續(xù)函數(shù)最佳平方逼近的算法程序(函數(shù)式M文件)。并用此程序進(jìn)行數(shù)值試驗(yàn),寫出計(jì)算實(shí)習(xí)報(bào)告。二.程序功能要求:在后面的附一leastp.m的基礎(chǔ)上進(jìn)行修改,使其更加完善。要求算法程序可以適應(yīng)不同的具體函數(shù),具有一定的通用性。所編程序具有以下功能:1.用Lengendre多項(xiàng)式做基,并適合于構(gòu)造任意次數(shù)的最佳平方逼近多項(xiàng)式??衫眠f推關(guān)系2.被逼近函數(shù)f(x)不用內(nèi)聯(lián)函數(shù)構(gòu)造,而改用M文件建立數(shù)學(xué)函數(shù)。這樣,此程序可通過(guò)修改建立數(shù)學(xué)函數(shù)的M文件以適用不同的被逼近函數(shù)(要學(xué)會(huì)用函數(shù)句柄)。3.要考慮一般的情況。因此,程序中要有變量代換的功能。4
2、.計(jì)算組合系數(shù)時(shí),計(jì)算函數(shù)的積分采用變步長(zhǎng)復(fù)化梯形求積法(見(jiàn)附三)。5.程序中應(yīng)包括幫助文本和必要的注釋語(yǔ)句。另外,程序中也要有必要的反饋信息。6.程序輸入:(1)待求的被逼近函數(shù)值的數(shù)據(jù)點(diǎn)(可以是一個(gè)數(shù)值或向量)(2)區(qū)間端點(diǎn):a,b。7.程序輸出:(1)擬合系數(shù):(2)待求的被逼近函數(shù)值三:數(shù)值試驗(yàn)要求:1.試驗(yàn)函數(shù):;也可自選其它的試驗(yàn)函數(shù)。2.用所編程序直接進(jìn)行計(jì)算,檢測(cè)程序的正確性,并理解算法。3.分別求二次、三次、。。。最佳平方逼近函數(shù)。4.分別作出逼近函數(shù)和被逼近函數(shù)的曲線圖進(jìn)行比較。(分別用繪圖函數(shù)plot(,s())和fplot(‘xcosx’,[x1
3、x2,y1,y2]))四:計(jì)算實(shí)習(xí)報(bào)告要求:1.簡(jiǎn)述方法的基本原理,程序功能,使用說(shuō)明。2.程序中要加注釋。3.對(duì)程序中的主要變量給出說(shuō)明。4.附源程序及計(jì)算結(jié)果。一、程序代碼1)legendre(N)函數(shù)程序%legendre(N)函數(shù)functionP=legendre(N)symstx;%定義符號(hào)變量txforn=1:NPP(n)=diff((t^2-1)^(n-1),n-1);%diff函數(shù),求函數(shù)的n階導(dǎo)數(shù)Q(n)=2^(n-1)*prod([1:n-1]);%prod函數(shù),計(jì)算數(shù)組元素的連乘積endPP(1)=1;Q=sym(Q);P=PP*(inv(dia
4、g(Q)));%inv函數(shù),求逆2)采用M文件建立被逼近函數(shù)%用M文件建立被逼近函數(shù)functionF=creat(x)n=length(x);F=x.*cos(x(1:n));%數(shù)組乘法運(yùn)算3)區(qū)間變換函數(shù)程序%區(qū)間變換函數(shù)程序functionf=convert(a,b,F)symsxt;%定義符號(hào)變量txs=2((b-a)*t+a+b);%實(shí)現(xiàn)區(qū)間轉(zhuǎn)換f=subs(F,x,s);%用s置換表達(dá)式中x,然后將置換完的表達(dá)式賦給f,符號(hào)替換4)變步長(zhǎng)復(fù)化梯形求積公式程序%變步長(zhǎng)復(fù)化梯形求積公式functionI=tx(g)m=1;h=1-(-1);%積分區(qū)間T=zer
5、os(1,100);%賦予T初值為0的1*100行向量T(1)=h*(feval(g,-1)+feval(g,1))/2;%feval函數(shù),執(zhí)行函數(shù)句柄i=1;whilei<100%進(jìn)行變步長(zhǎng)計(jì)算m=2*m;h=h/2;s=0;fork=1:m/2x=-1+h*(2*k-1);s=s+feval(g,x);endT(i+1)=T(i)/2+h*s;ifabs(T(i+1)-T(i))<0.00001%設(shè)置精度值0.00001,終止條件I=T(i+1);break;endi=i+1;end1)主程序%最佳平法逼近函數(shù)leastpfunction[cs]=leastp(a,
6、b,N)symstx;F=creat(x);%用M文件建立的被逼近函數(shù)P=legendre(N);%legendre(N)函數(shù)f=convert(a,b,F);%區(qū)間變換函數(shù)程序f=P*diag(f);fori=1:Ng=inline(f(i));I=tx(g);%變步長(zhǎng)復(fù)化梯形求積公式u(i)=I;Q(i)=2(2*(i-1)+1);endQ=sym(Q);c=double(u*diag(Q));S=c*P';s=subs(S,t,(2*x-a-b)/(b-a));subplot(211),ezplot(s,[a:0.01:b]);subplot(212),ezpl
7、ot(F,[a,b]);一、運(yùn)行程序?qū)嶒?yàn)函數(shù)為:輸入:>>a=0;b=4;N=2;>>[cs]=leastp(a,b,N);>>>>a=0;b=4;N=4;>>[cs]=leastp(a,b,N);>>>>a=0;b=4;N=7;>>[cs]=leastp(a,b,N);一、實(shí)驗(yàn)結(jié)果N=2N=4N=7由上圖可以發(fā)現(xiàn):當(dāng)階數(shù)N取值不斷增加時(shí),圖像的擬合程度越高。附:一、參考程序Lengendre多項(xiàng)式作基的函數(shù)最佳平方逼近算法程序LEASTP.m(此程序只適用于對(duì)函數(shù)構(gòu)造最佳平方逼近多項(xiàng)式)function[c,s]=leastp(x)%L