MATLAB教程a第章習(xí)題解答張志涌_第1頁
MATLAB教程a第章習(xí)題解答張志涌_第2頁
MATLAB教程a第章習(xí)題解答張志涌_第3頁
MATLAB教程a第章習(xí)題解答張志涌_第4頁
MATLAB教程a第章習(xí)題解答張志涌_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

MATLAB教程a第章習(xí)題解答-張志涌————————————————————————————————作者:————————————————————————————————日期: M文件和句柄函數(shù)習(xí)題6及解答請分別寫出用for和while循環(huán)語句計算的程序。此外,還請寫出避免循環(huán)的數(shù)值、符號計算程序?!冀獯稹?1)for環(huán)tics1=0;fork=0:1e6s1=s1+0.2^(k);end;s1tocs1=1.2500Elapsedtimeis1.453482seconds.(2)while環(huán)tics2=1;k=1;whilek<1e6+1 ??%注意:上限與for環(huán)不同 s2=s2+0.2^k;?k=k+1;ends2tocs2=1.2500Elapsedtimeis2.716870seconds.(3)數(shù)值求和指令tics3=sum(0.2.^(0:1e6))tocs3=1.2500Elapsedtimeis0.626723seconds.(4)符號求和指令ticsymsk;s4=vpa(symsum(0.2^k,0,1e6))tocs4=1.2500000000000000000000000000000Elapsedtimeis4.029501seconds.〖說明〗使用數(shù)值求和指令和“數(shù)組運(yùn)算”的計算速度最快。符號計算的精度最高,但速度慢。以上程序運(yùn)行時間僅供參考。具體時間與所用機(jī)器、那程序是否初次運(yùn)行、在MATLAB指令窗還是在M-book中運(yùn)行等因素有關(guān)。編寫一個函數(shù)M文件,它的功能:沒有輸入量時,畫出單位圓(見圖p6.2-1);輸入量是大于2的自然數(shù)N時,繪制正N邊形,圖名應(yīng)反映顯示多邊形的真實(shí)邊數(shù)(見圖p6.2-2);輸入量是“非自然數(shù)”時,給出“出錯提示”。此外,函數(shù)M文件應(yīng)有H1行、幫助說明和程序編寫人姓名。〖解答〗(1)函數(shù)M文件functionprob_solve602(n)%prob_solve602(n) plotacircleorapolygonwithnedges%prob_solve602?plotacircle%n ? 應(yīng)為大于2的自然數(shù)%ByZZY,2006-2-15ifnargin==0t=0:pi/100:2*pi;x=exp(i*t);str='Circle';elseif(nargin~=0)&(n<=2)error('輸入量應(yīng)是大于2的自然數(shù)')end;ifn-round(n)~=0 ?? ?%檢查非自然數(shù)error('輸入量應(yīng)是大于2的自然數(shù)')end;t=(0:n)/n*2*pi;x=exp(i*t);str=['Polygonwith',int2str(n),'edges'];? %合成字符串endplot(real(x),imag(x),'r','LineWidth',4)title(str)axissquareimageoffshg(2)各典型運(yùn)行情況prob_solve602圖p6.2-1prob_solve602(6)圖p6.2-2prob_solve602(2)???Errorusing==>prob_solve602輸入量應(yīng)是大于2的自然數(shù)prob_solve602(7.3)???Errorusing==>prob_solve602輸入量應(yīng)是大于2的自然數(shù)用泛函指令fminbnd求在x=0附近的極小值。fminbnd的第一個輸入量要求使用匿名函數(shù)表達(dá)?!冀獯稹?1)在0附近的較小區(qū)間[-0.5,0.5]內(nèi)搜索y=@(x)-exp(-x).*abs(sin(cos(x)));[x1,y1]=fminbnd(y,-0.5,0.5)x1=-0.4999y1=-1.2681(2)在包含0的更大區(qū)間內(nèi)搜索 在[-0.5,0.5]區(qū)間搜索到的極小值點(diǎn)在該搜索區(qū)間的邊界上,所以搜索區(qū)間應(yīng)該進(jìn)一步擴(kuò)大。[x2,y2]=fminbnd(y,-1,1)?x2=-0.8634y2=-1.4348〖說明〗在[-1,1]區(qū)間的搜索結(jié)果是區(qū)間的內(nèi)點(diǎn)。進(jìn)一步擴(kuò)大搜索區(qū)間,只可能找到更遠(yuǎn)離0的極小值點(diǎn),所以沒有必要進(jìn)一步搜索。在matlab的\toolbox\matlab\elmat(yī)\private文件夾上有一個“煙圈矩陣”發(fā)生函數(shù)smoke.m。運(yùn)行指令smoke(3,0,'double'),將生成一個3階偽特征根矩陣如下A=-0.5000+0.8660i1.000000-0.5000-0.8660i1.00001.000001.0000現(xiàn)在的問題是:在MATLAB當(dāng)前目錄為\work情況下,如何利用函數(shù)句柄調(diào)用smoke.m函數(shù),產(chǎn)生3階偽特征根矩陣。請寫出相應(yīng)的程序或操作步驟。clearb=pwd? ? ?? %獲取當(dāng)前目錄名字符串which('smoke') ?? %檢查在當(dāng)前目錄下能否看到smoke.mb_d=b;b_d(end-4:end)=[]; ? %在b字符串中去除最后的四個字符,即work。str=[b_d,'\toolbox\matlab\elmat\privat(yī)e'];?%構(gòu)造smoke所在的目錄字符串cd(str)?? ? %把smoke.m所在目錄設(shè)置為當(dāng)前目錄。SM=@smoke;? ?? %創(chuàng)建smoke.m的函數(shù)句柄cd(b) ?? ? ?%使work恢復(fù)為當(dāng)前目錄disp('')?? ? %為顯示清楚起見,產(chǎn)生一個顯示空行。A=SM(3,0,'double')???? %產(chǎn)生一個3階“偽特征根”矩陣disp('')pwd ??????%顯示當(dāng)前所在目錄,以證實(shí)符合題意。which('smoke') ? ?%再次檢查在當(dāng)前目錄下能否看到smoke.m,起證實(shí)作用。disp('')b=C:\MATLAB2006\R2006a\work'smoke'notfound.A=-0.5000+0.8660i1.000000-0.5000-0.8660i1.00001.000001.0000ans=C:\M

溫馨提示

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

評論

0/150

提交評論