中南大學(xué)matlab總復(fù)習(xí)_第1頁
中南大學(xué)matlab總復(fù)習(xí)_第2頁
中南大學(xué)matlab總復(fù)習(xí)_第3頁
中南大學(xué)matlab總復(fù)習(xí)_第4頁
中南大學(xué)matlab總復(fù)習(xí)_第5頁
已閱讀5頁,還剩113頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

科學(xué)計算與MATLAB主講:唐建國中南大學(xué)材料科學(xué)與工程學(xué)院2013.11第一章緒論1科學(xué)計算數(shù)值計算的定義數(shù)值計算的研究過程數(shù)值計算的誤差分析數(shù)值計算的穩(wěn)定性與收斂性2MATLAB簡介MATLAB的類別MATLAB的概述3課程的要求與學(xué)習(xí)方法課程的內(nèi)容課程的要求課程的學(xué)習(xí)與考核教材與主要參考書小結(jié)如果存在一適當(dāng)小的正數(shù)εr

,使得則稱εr為相對誤差限。

例:x=15, ε(x)=2;εr(x)=2/15=13.33%

y=1000,ε(y)=5,εr(y)=5/1000=0.5%2.有效數(shù)字:定義:若近似值x的誤差限是某一位的半個單位,該位到x的第一位非零數(shù)字共有n位,就說x有n位有效數(shù)字,x可表示為其中,a1≠0.且a1,a2,…,an

都是0~9中的任一整數(shù)。其絕對誤差限滿足:例.

測量一物體的長度為954cm,問測量數(shù)據(jù)的相對誤差限多大?解:因?qū)嶋H問題所截取的近似數(shù),其絕對誤差限一般不超過最小刻度的半個單位,故當(dāng)x=954cm時,有ε(x)=0.5cm, 而x的相對誤差

er(x)≤0.5/954=0.0005241….<0.00053=0.053%

故εr(x)=0.053%.第二講MATLAB基礎(chǔ)知識(數(shù)值、符號計算)1MATLAB的啟動與運(yùn)行Matlab的啟動和退出Matlab的工作窗口Matlab的指令行的操作Matlab的幫助系統(tǒng)2MATLAB的矩陣與數(shù)值計算Matlab數(shù)據(jù)類型Matlab的變量及其命名Matlab矩陣及其運(yùn)算Matlab的數(shù)組關(guān)系/邏輯運(yùn)算Matlab的多項式運(yùn)算3MATLAB的符號計算小結(jié)1.5Matlab的幫助系統(tǒng)MATLAB幫助命令包括help、lookfor以及模糊查詢1help命令在命令窗口中輸入help命令將會顯示當(dāng)前幫助系統(tǒng)中所包含的所有項目,即搜索路徑中所有的目錄名稱。也可以通過help加函數(shù)名來顯示該函數(shù)的幫助說明。2lookfor命令對搜索范圍內(nèi)的M文件的第一行進(jìn)行關(guān)鍵字搜索,條件比較寬松。若對M文件進(jìn)行全文搜索,加上-all選項。3模糊查詢

MATLAB6.0以上的版本提供了一種類似模糊查詢的命令查詢方法,只需要輸入命令的前幾個字母,然后按Tab鍵,系統(tǒng)就會列出所有以這幾個字母開頭的命令。

數(shù)值顯示格式任何MATLAB的語句的執(zhí)行結(jié)果都可以在屏幕上顯示,同時賦值給指定的變量,沒有指定變量時,賦值給一個特殊的變量ans,數(shù)據(jù)的顯示格式由format命令控制。

format只是影響結(jié)果的顯示,不影響其計算與存儲;MATLAB總是以雙字長浮點數(shù)(雙精度)來執(zhí)行所有的運(yùn)算。

如果結(jié)果為整數(shù),則顯示沒有小數(shù);如果結(jié)果不是整數(shù),則輸出形式有:format(short):短格式(5位定點數(shù))99.1253formatlong:長格式(15位定點數(shù))

99.12345678900000formatshorte:短格式e方式9.9123e+001formatlonge:長格式e方式

9.912345678900000e+001formatbank:2位十進(jìn)制99.12formathex:十六進(jìn)制格式符號變量和符號表達(dá)式的創(chuàng)建

MATLAB提供了兩個建立符號量的命令:syms

和sym

說明:a1a2a3...為需要定義為符號量的標(biāo)識符,不能是數(shù)字、函數(shù)表達(dá)式或方程式。a1a2a3...均不用引號界定,而用空格分開。1用syms創(chuàng)建符號量格式:symsa1a2a3…說明:輸入?yún)⒘緼可以是數(shù)字、字符串也可以是字符串變量名、字符表達(dá)式或字符方程?;剀嚭髮定義成符號量并賦值給標(biāo)識符。2用sym創(chuàng)建符號量、符號表達(dá)式

格式:標(biāo)識符=sym(A)3.矩陣算法和數(shù)組算法矩陣算法

把矩陣看作一個整體,各種運(yùn)算完全按照線性代數(shù)代表的矩陣運(yùn)算法則進(jìn)行,運(yùn)算的書寫形式和運(yùn)算符號都與矩陣?yán)碚撏耆嗤?。?shù)組算法把矩陣看作由其元素構(gòu)成的一組數(shù)據(jù)(數(shù)組),各種運(yùn)算是在參與運(yùn)算矩陣的對應(yīng)元素之間進(jìn)行的數(shù)與數(shù)的運(yùn)算,這種運(yùn)算方便對大批數(shù)據(jù)的處理和一次求出多個函數(shù)值。數(shù)組算法的運(yùn)算符主要有.*./.\.^

Matlab運(yùn)算符

算術(shù)運(yùn)算符操作符說明+加A+BAB必須大小相同,或一個是標(biāo)量-減A-BAB必須大小相同,或一個是標(biāo)量*矩陣乘A*BA的列數(shù)等于B的行數(shù),一個可以是標(biāo)量.*數(shù)組乘A.*BAB必須大小相同,一個可以是標(biāo)量\矩陣左除A\B=A-1*B等效于A*X=B求Xinv(A).\數(shù)組左除A.\BBij/Aij/矩陣右除A/B=A*B-1等效于X*B=A求X./數(shù)組右除A./BAij/Bij^矩陣乘方A^pA自乘p次.^數(shù)組乘方A.^pA中每個元素的p次方如:a=[12;34];b=[35;59]》c=a+bd=a-b》c=d=47-2-3813-2-5》a*b=[1323;2951]》a/b=[-0.500.50;3.50–1.50]》a\b=[-1-1;23]》a^3=[3754;81118]》a.*b=[310;1536]》a./b=[0.330.40;0.600.44]》a.\b=[3.002.50;1.672.25]》a.^3=[18;2764]

只有維數(shù)相同的矩陣才能進(jìn)行加減運(yùn)算。注意只有當(dāng)兩個矩陣中前一個矩陣的列數(shù)和后一個矩陣的行數(shù)相同時,才可以進(jìn)行乘法運(yùn)算。a\b運(yùn)算等效于求a*x=b的解;而a/b等效于求x*b=a的解。只有方陣才可以求冪。轉(zhuǎn)置:對于實矩陣用(’)符號或(.’)求轉(zhuǎn)置結(jié)果是一樣的;然而對于含復(fù)數(shù)的矩陣,則(’)將同時對復(fù)數(shù)進(jìn)行共軛處理,而(.’)則只是將其排列形式進(jìn)行轉(zhuǎn)置。4.常用矩陣運(yùn)算逆矩陣與行列式計算求逆:inv(A);求行列式:det(A)要求矩陣必須為方陣5、矩陣分解(1)奇異值分解[U,S,V]=svd(A)例:a=9868可以驗證:u*u’=Iv*v’=Iu*s*v’=a求矩陣A的奇異值及分解矩陣,滿足U*S*V’=A,其中U、V矩陣為正交矩陣(U*U’=I),S矩陣為對角矩陣,它的對角元素即A矩陣的奇異值。[u,s,v]=svd(a)u=0.7705-0.63750.63750.7705s=15.5765001.5408v=0.6907-0.72310.72310.6907(2)特征值分解[V,D]=eig(A)例:

a=9868[v,d]=eig(a)v=0.7787-0.73200.62740.6813d=15.4462001.5538求矩陣A的特征向量V及特征值D,滿足A*V=V*D。其中D的對角線元素為特征值,V的列為對應(yīng)的特征向量。如果D=eig(A)則只返回特征值。(3)正交分解[Q,R]=qr(A)例:a=9868[q,r]=qr(a)q=-0.8321-0.5547-0.55470.8321r=-10.8167-11.094002.2188將矩陣A做正交化分解,使得Q*R=A,其中Q為正交矩陣(其范數(shù)為1,指令norm(Q)=1),R為對角化的上三角矩陣。(4)三角分解[L,U]=lu(A)將A做對角線分解,使得A=L*U,其中L為下三角矩陣,U為上三角矩陣。注意:L實際上是一個“心理上”的下三角矩陣,它事實上是一個置換矩陣P的逆矩陣與一個真正下三角矩陣L1(其對角線元素為1)的乘積。[L1,U1,P]=lu(A)例:a=[123;456;789]

比較:[l1,u1,p]=lu(a)[l,u]=lu(a)3、MATLAB的符號計算

A=sym(A)sum(A)sum(A’)’

det(A)inv(A)

eig(A)

svd(A)符號計算常規(guī):第三講MATLAB基礎(chǔ)知識(圖形、程序設(shè)計)1MATLAB的圖形功能二維圖形的基本函數(shù)三維圖形的基本函數(shù)圖形窗口函數(shù)簡單動畫函數(shù)2MATLAB的程序設(shè)計M文件介紹Matlab的程序結(jié)構(gòu)Matlab的文件操作Matlab的函數(shù)操作小結(jié)1.1.1基本二維圖形函數(shù)1:plot:繪制二維數(shù)據(jù)圖形格式:plot(X,′S′)plot(X,Y,′S′)plot(X1,Y1,′S1′,X2,Y2,′S2′,......,X3,Y3,′S3′)說明:參數(shù)′S′控制數(shù)據(jù)點的標(biāo)記、曲線類型和曲線色彩,三者置于一對單引號內(nèi)。常用的繪圖選項選項含義選項含義-實線*用星號標(biāo)出數(shù)據(jù)點--虛線.用點號標(biāo)出數(shù)據(jù)點

:點線o用圓圈號標(biāo)出數(shù)據(jù)點-.點劃線x用叉號標(biāo)出數(shù)據(jù)點b藍(lán)色+用加號標(biāo)出數(shù)據(jù)點g綠色s用正方形標(biāo)出數(shù)據(jù)點r紅色D用菱形標(biāo)出數(shù)據(jù)點c青色V用下三角標(biāo)出數(shù)據(jù)點m洋紅^用上三角標(biāo)出數(shù)據(jù)點y黃色<用左三角標(biāo)出數(shù)據(jù)點k黑色>用右三角標(biāo)出數(shù)據(jù)點w白色H用六角形標(biāo)出數(shù)據(jù)點P用五角形標(biāo)出數(shù)據(jù)點函數(shù)2:

fplot:繪制y=f(x)圖形格式:fplot(fname,lims,′S′)說明:其中fname為函數(shù)名或單引號界定的函數(shù)表達(dá)式,lims為x,y的取值范圍,′S′定義與plot函數(shù)相同。函數(shù)3:

ezplot:繪制隱函數(shù)圖形格式:ezplot(f,[xmin,xmax,ymin,ymax])說明:在區(qū)間xmin<x<xmax和ymin<y<ymax繪制f(x,y)=0的圖形。,默認(rèn)區(qū)間-2π<x<2π和-2π<y<2π1f(x,y)=0格式:ezplot(X,Y,[tmin,tmax])說明:在區(qū)間tmin<t<tmax繪制x=X(t)和y=Y(t)的圖形,默認(rèn)區(qū)間0<t<2π2x=X(t)y=Y(t)格式:ezplot(f,[a,b])說明:在區(qū)間a<x<b繪制y=f(x)的圖形,默認(rèn)區(qū)間-2π<x<2π3y=f(x)2特殊坐標(biāo)二維圖形(1)極坐標(biāo)曲線格式:polar(theta,rho,′S′)theta:角度向量rho:幅值向量′S′:控制參數(shù)theta=0:0.1:8*pi;r=cos(4*theta)+1/4;polar(theta,r)例(2)對數(shù)坐標(biāo)曲線x=0:0.01:5;y=10.^x;plot(x,y),gridon函數(shù)功能semilogxx軸對數(shù)坐標(biāo),y軸線性坐標(biāo)semilogyx軸線性坐標(biāo),y軸對數(shù)坐標(biāo)loglogxy軸均為對數(shù)坐標(biāo)例x=0:0.01:5;y=10.^x;semilogy(x,y)gridon3應(yīng)用型繪圖指令可用于數(shù)值統(tǒng)計分析或離散數(shù)據(jù)處理

bax(x,y);hist(y,x);stairs(x,y);stem(x,y)

例:x=1:10;y=rand(10,1);subplot(2,2,1)bar(x,y);subplot(2,2,2)hist(y,x);subplot(2,2,3)stairs(x,y);subplot(2,2,4)stem(x,y);1圖形標(biāo)注函數(shù)中的說明文字,除使用標(biāo)準(zhǔn)的ASCII字符外,還可使用LaTeX格式的控制字符,這樣就可以在圖形上添加希臘字母、數(shù)學(xué)符號及公式等內(nèi)容。例如,text(0.3,0.5,′sin({\omega}t+{\beta})′)將得到標(biāo)注效果sin(ωt+β)。上述函數(shù)除legend外,均可以用于三維函數(shù)。主要函數(shù):title(′圖形名稱′)xlabel(′x軸說明′)ylabel(′y軸說明′)text(x,y,′圖形說明′)legend(′圖例1′,′圖例2′,...)1.1.2二維圖形的控制2坐標(biāo)控制axis函數(shù)

主要格式axis([xminxmaxyminymaxzminzmax])axisequal:縱、橫坐標(biāo)軸采用等長刻度。axissquare:產(chǎn)生正方形坐標(biāo)系(缺省為矩形)。axisauto:使用缺省設(shè)置。axisoff:取消坐標(biāo)軸。axison:顯示坐標(biāo)軸。gridon/off:控制是否畫網(wǎng)格線。boxon/off:控制是否加邊框線。holdon/off

控制是否刷新當(dāng)前軸及圖形1三維曲線圖t=-pi:0.1:8*pi;x=sin(t);y=cos(t);plot3(x,y,t,′-r′)xlabel(′sin(t)′);ylabel(′cos(t)′);zlabel(′t′)plot3函數(shù)格式:Plot3(x1,y1,z1,′S1′,x2,y2,z2,′S2′,…xn,yn,zn,′Sn′)

1.2三維圖形的基本函數(shù)2三維網(wǎng)格圖meshgrid函數(shù):產(chǎn)生平面區(qū)域內(nèi)的網(wǎng)格坐標(biāo)矩陣。格式:[X,Y]=meshgrid(A,B)說明:語句執(zhí)行后,矩陣X的每一行都是向量A,行數(shù)等于向量B的元素的個數(shù),矩陣Y的每一列都是向量B,列數(shù)等于向量A的元素的個數(shù)。mesh函數(shù)格式:mesh(x,y,z)說明:一般情況下,x,y,z是維數(shù)相同的矩陣。[x,y]=meshgrid(0:0.08:2*pi);z=sin(x).*cos(y);figure(1)mesh(x,y,z)xlabel('x'),ylabel('y')zlabel('sin(x)cos(x)')gridon,boxonfigure(2)mesh(z),boxonsurf函數(shù)格式:surf(x,y,z)[x,y]=meshgrid(0:0.08:2*pi);z=sin(x).*cos(y);surf(x,y,z)zlabel(′sin(x)cos(x)′)gridonboxon1.3圖形窗口函數(shù)在實際應(yīng)用中,有時需要在不同圖形窗口或一個圖形窗口中繪制若干個獨立的圖形,這就需要選取不同的圖形窗口或?qū)D形窗口分割。函數(shù)1:figure格式:figure(n)說明:該函數(shù)打開不同的圖形窗口。n為圖形窗口排序號。默認(rèn)時打開的是1號圖形窗,即當(dāng)前窗。函數(shù)2:subplot格式:subplot(m,n,p)說明:該函數(shù)將當(dāng)前圖形窗口分成m×n個繪圖區(qū),即每行n個,共m行。區(qū)號按行優(yōu)先編號,且選定第p個區(qū)為當(dāng)前活動區(qū)。在每一個繪圖區(qū)允許以不同的坐標(biāo)系單獨繪制圖形。2.2Matlab的程序結(jié)構(gòu)matlab的程序結(jié)構(gòu)與c語言相似,主要有以下三種基本結(jié)構(gòu)順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)2選擇結(jié)構(gòu)(1)if語句a單分支if語句:

格式

if條件語句組

endb雙分支if語句:

格式

if條件語句組1else

語句組2endc多分支if語句

格式

if條件1

語句組1

elseif

條件2

語句組2……

elseif

條件m

語句組melse

語句組nend(2)switch語句switch表達(dá)式

case表達(dá)式1

語句組1case表達(dá)式2

語句組2……case表達(dá)式m

語句組motherwise

語句組nend說明:當(dāng)表達(dá)式的值等于表達(dá)式1的值時,執(zhí)行語句組1。當(dāng)表達(dá)式的值等于表達(dá)式m的值時,執(zhí)行語句組m。當(dāng)表達(dá)式的值不等于case所列的表達(dá)式的值時,執(zhí)行語句組n。當(dāng)任意一個分支的語句執(zhí)行完后,直接執(zhí)行switch語句的下一句。(3)try語句try

語句組1catch

語句組2end說明:

try語句先試探性執(zhí)行語句組1,如果語句組1在執(zhí)行過程中出現(xiàn)錯誤,則將錯誤信息賦給保留的lasterr變量,并轉(zhuǎn)去執(zhí)行語句組2。3循環(huán)結(jié)構(gòu)(1)for語句格式

for循環(huán)變量=表達(dá)式1:表達(dá)式2:表達(dá)式3

循環(huán)體語句

end說明:表達(dá)式1的值為循環(huán)變量的初值,表達(dá)式2的值為步長,表達(dá)式3的值為循環(huán)變量的終值。步長為1時,表達(dá)式2可以省略。格式

for循環(huán)變量=矩陣表達(dá)式循環(huán)體語句

end說明:執(zhí)行過程是依次將矩陣的各列元素賦給循環(huán)變量,然后執(zhí)行循環(huán)體語句,直至各列元素處理完畢,循環(huán)次數(shù)為列數(shù)。s=0;a=[123;456];fork=as=s+k;enddisp(s)(2)while語句格式

while(條件)

循環(huán)體語句

end說明:若條件成立,則執(zhí)行循環(huán)體語句,執(zhí)行后再判斷條件是否成立,如果不成立則跳出循環(huán)。(3)break和continue語句break語句:用于終止循環(huán)的執(zhí)行。當(dāng)在循環(huán)體內(nèi)執(zhí)行到該語句時,程序?qū)⑻鲅h(huán),繼續(xù)執(zhí)行循環(huán)語句的下一語句。continue語句:控制跳過循環(huán)體中的某些語句。當(dāng)在循環(huán)體內(nèi)執(zhí)行到該語句時,程序?qū)⑻^循環(huán)體中所有剩下的語句,繼續(xù)下一次循環(huán)。2.4Matlab的函數(shù)操作1函數(shù)的調(diào)用說明:函數(shù)調(diào)用時各實參出現(xiàn)的順序、個數(shù),應(yīng)與函數(shù)定義時形參的順序、個數(shù)一致,否則會出錯。函數(shù)調(diào)用時,先將實參傳遞給相應(yīng)的形參,從而實現(xiàn)參數(shù)傳遞,然后再執(zhí)行函數(shù)的功能。格式

[輸出實參表]=函數(shù)名(輸入實參表)2函數(shù)參數(shù)的可調(diào)性說明:在調(diào)用函數(shù)時,用nargin和nargout分別記錄調(diào)用該函數(shù)時的輸入實參和輸出實參的個數(shù)。只要在自定義函數(shù)文件中包含這兩個函數(shù),就可以準(zhǔn)確地知道該函數(shù)文件被調(diào)用時的輸入輸出參數(shù)個數(shù),從而決定函數(shù)如何進(jìn)行處理。

nargin

和nargout1、在動手編程之前,明確程序的目的,設(shè)想解決方案,作出初步的流程圖。2、%后面的內(nèi)容是程序的注解,要善于運(yùn)用注解使程序更具可讀性。3、在主程序開頭用clear指令清除變量的習(xí)慣。但在子程序中不要用。4、參數(shù)值要集中放在程序的開始部分,以便維護(hù)。5、程序盡量模塊化。6、充分利用Debugger來進(jìn)行程序的調(diào)試(設(shè)置斷點、單步執(zhí)行、連續(xù)執(zhí)行),并利用其他工具箱或圖形用戶界面(GUI)的設(shè)計技巧,將設(shè)計結(jié)果集成到一起。7、設(shè)置好MATLAB的工作路徑,以便程序運(yùn)行。8、input指令可以用來輸入一些臨時的數(shù)據(jù);而對于大量參數(shù),則通過建立一個存儲參數(shù)的子程序,在主程序中用子程序的名稱來調(diào)用。程序設(shè)計的注意事項

3.

請補(bǔ)充語句以畫出如圖所示的圖形:[x,y]=meshgrid(-2:0.1:2,-2:0.1:2);Z=x.*exp(-x.^2-y.^2);

;a)Plot3(x,y,Z)b)plot3(x,y,Z)c)mesh(x,y,Z)d)plot3(x,y,z)第四講插值法引言Lagrange插值分段低次插值Hermite插值三次樣條插值插值方法比較MATLAB的插值函數(shù)小結(jié)7、MATLAB的插值函數(shù)插值函數(shù)及其功能函數(shù)功能描述Interp1一維插值Interp2二維插值Interp3三維插值Interpft一維快速傅立葉插值InterpnN-D維插值Spline

立體樣條數(shù)據(jù)插值格式:yi=inter1(x,y,xi,′method′)說明:xy輸入插值節(jié)點向量xiyi

插值點methodnearest:最近插值,用直角折線連接節(jié)點linear:線性插值,參數(shù)省略時,默認(rèn)此項pehip

:分段三次Hermite插值,具有一階導(dǎo)數(shù)連續(xù)splin:三次樣條插值,具有一階、二階導(dǎo)數(shù)連續(xù)第五講函數(shù)逼近與擬合法引言函數(shù)逼近傅里葉逼近最小二乘法擬合最小二乘法多元線性擬合非線性擬合MATLAB的擬合函數(shù)小結(jié)將其表示成矩陣形式:其系數(shù)矩陣為對稱陣。所以正規(guī)方程組的系數(shù)矩陣非奇異,即根據(jù)Crame法則,正規(guī)方程組有唯一解,稱其為最小二乘解。function[a,b]=LZXEC(x,y)%離散試驗數(shù)據(jù)點的線性最小二乘擬合%試驗數(shù)據(jù)點的x坐標(biāo)向量:X%試驗數(shù)據(jù)點的y坐標(biāo)向量:Y%擬合的一次項系數(shù):a%擬合的常數(shù)項:bif(length(x)==length(y))n=length(x);else

disp('x和y的維數(shù)不相等!');return;end%維數(shù)檢查A=zeros(2,2);A(2,2)=n;B=zeros(2,1);fori=1:nA(1,1)=A(1,1)+x(i)*x(i);A(1,2)=A(1,2)+x(i);B(1,1)=B(1,1)+x(i)*y(i);B(2,1)=B(2,1)+y(i);endA(2,1)=A(1,2);s=A\B;a=s(1);b=s(2);例X12345y1.51.843.45.7>>x=1:5;>>y=[1.51.843.45.7];>>[a,b]=LZXEC(x,y)a=1.0000b=0.2800常用的線性變換函數(shù)變換后的函數(shù)4、matlab擬合函數(shù)線性擬合函數(shù)格式:p=linefit(x,y)說明:x,y輸入同維數(shù)據(jù)向量p輸出擬合多項式的系數(shù)向量多項式擬合函數(shù)格式:p=polyfit(x,y,m)說明:x,y輸入同維數(shù)據(jù)向量m擬合多項式次數(shù)p輸出擬合多項式的系數(shù)向量4.設(shè)y=span{1,x,x2},用最小二乘法擬合如下表數(shù)據(jù)。x0.51.01.52.02.53.0y1.752.453.814.808.008.60計算的結(jié)果為:a)0.49001.25010.8560b)0.85601.25010.4900c)-0.63413.8189-3.7749d)3.8189-3.77492.8533>>x=0.5:0.5:3.0;>>y=[1.75,2.45,3.81,4.80,8.00,8.60];>>a=polyfit(x,y,2)第六講數(shù)值積分與微分引言數(shù)值積分矩形積分近似計算梯形積分近似計算拋物線形積分近似計算牛頓-科茨(Newton-Cotes)公式自適應(yīng)(Simpson)求積法高斯(Gauss)求積法數(shù)值微分MATLAB的積分和微分函數(shù)小結(jié)MATLAB中提供的積分函數(shù):矩形積分近似計算梯形積分近似計算拋物線形積分近似計算牛頓-科茨(Newton-Cotes)公式高斯(Gauss)求積法自適應(yīng)(Simpson)求積法龍貝格積分法樣條函數(shù)求積分法簡單奇異積分重積分計算

4.2matlab數(shù)值計算定積分格式:Z=trapz(x,y)(1)梯形求積公式說明x,y分別代表數(shù)目相同的陣列或矩陣。y與x具有一定的函數(shù)關(guān)系。格式:[I,n]=quad('fname',a,b,tol,trace)(2)自適應(yīng)辛卜生法說明返回參數(shù)I即定積分值,n為被積函數(shù)的調(diào)用次數(shù)。fname是被積函數(shù)名。定義被積函數(shù)須用數(shù)值運(yùn)算符。a和b分別是定積分的下限和上限。tol用來控制積分精度,缺省時取tol=0.001。trace控制是否展現(xiàn)積分過程,若取非0則展現(xiàn)積分過程,取0則不展現(xiàn),缺省時取trace=0。格式:[I,n]=quad8('fname',a,b,tol,trace)(1)Newton-Cotes法說明tol用來控制積分精度,缺省時取tol=10-6。其它與quad相同。該函數(shù)可以更精確地求出定積分的值,且計算精度相同條件下,函數(shù)調(diào)用的步數(shù)明顯小于quad函數(shù),從而保證能以更高的效率求出所需的定積分值。格式:[I,n]=quadl('fname',a,b,tol,trace)(4)高斯-洛巴托(Gauss-Labatto)法格式:I=dblquad('fname‘,xmin,xmax,ymin,ymax,tol,trace)(5)二重積分

4.3matlab數(shù)值計算微分格式:f=diff(fun)F=diff(fun,’x’)F=diff(fun,’x’,n)F=diff(S)F=diff(S,’x’)F=diff(S,’x’,n)(1)數(shù)值微分和差分一元函數(shù)求導(dǎo)格式:[gx,gy]=gradient(F)[gx,gy]=gradient(F,H)[nx,ny,nz]=surfnorm(X,Y,Z)二元、多元函數(shù)求導(dǎo)clearall;df1=diff('sin(x)');df2=diff('sqrt(x)')df3=diff('log(x)')df4=diff('log(x*y)','x')df5=diff('sin(x*y)','y')df6=diff('sin(x*y)','x',3)Ans:df1=cos(x)df2=1/2/x^(1/2)df3=1/xdf4=1/xdf5=cos(x*y)*xdf6=-cos(x*y)*y^3clearall;F=[11.21.42.35;0-0.6342;-177.291.4];[gx,gy]=gradient(F)%計算梯度n=surfnorm(F)%計算法向量functionf=fun(x)f=x.*x.*sqrt(2*x+3)quadl(‘fun’,1,3,1e-10)

或quadl('exp(-x/2)',1,3,1e-10)或fun=@(x)exp(-x/2);quadl(fun,1,3,1e-10)symsxf=(x^3+x^2+x+1)^(1/3)-sqrt(x^2+x+1)*log(exp(x)+x)/xlimit(f,x,inf)symsxy=log(1+x)f=diff(y,2)subs(f,1)第七講常微分方程數(shù)值解法引言歐拉近似方法龍格-庫塔(R-K)方法MATLAB的常微分方程函數(shù)小結(jié)4、MATLAB的常微分方程函數(shù)ode45ode23ode113ode15sode23sode23tode23tb格式[x,y]=ode45(′fun′,[x0,xn],y0,option]說明:適用于求解一階常微分方程組fun定義微分方程組的函數(shù)文件名[x0,xn]求解區(qū)域y0初始條件向量option可選參數(shù),由ODESET函數(shù)設(shè)置,比較復(fù)雜x輸出自變量向量,y輸出[y,y′,y″,..]沒有一種算法可以有效地解決所有的ODE問題,因此MATLAB提供了多種ODE函數(shù)。函數(shù)ODE類型特點 說明ode45非剛性單步法;4,5階R-K方法;累計截斷誤差為(△x)3大部分場合的首選方法ode23非剛性單步法;2,3階R-K方法;累計截斷誤差為(△x)3使用于精度較低的情形ode113非剛性多步法;Adams算法;高低精度均可到10-3~10-6

計算時間比ode45短ode23t適度剛性采用梯形算法適度剛性情形ode15s剛性多步法;Gear’s反向數(shù)值微分;精度中等若ode45失效時,可嘗試使用ode23s剛性單步法;2階Rosebrock

算法;低精度當(dāng)精度較低時,計算時間比ode15s短ode23tb剛性梯形算法;低精度當(dāng)精度較低時,計算時間比ode15s短例題:用MATLAB的符號解法,求解常微分方程:>>dsolve('Dy+3*x*y=x*exp(-x^2)')ans=(1/3*exp(-x*(x-3*t))+C1)*exp(-3*x*t)

>>dsolve('Dy+3*x*y=x*exp(-x^2)','x')ans=exp(-x^2)+exp(-3/2*x^2)*C1例題:采用ODE45求解描述某剛性問題的微分方程:functiondy=rigid(t,y)dy=zeros(3,1);%行向量dy(1)=y(2)*y(3);dy(2)=-y(1)*y(3);dy(3)=-0.51*y(1)*y(2);options=odeset('RelTol',1e-4,'AbsTol',[1e-41e-41e-5]);[T,Y]=ode45(@rigid,[012],[011],options);plot(T,Y(:,1),'-',T,Y(:,2),'-.',T,Y(:,3),'.')legend('y1','y2','y3')例題:用MATLAB函數(shù)ode23,ode45,ode113,求解多階常微分方程:functiondy=myfun03(x,y)dy=zeros(3,1)%初始化變量dydy(1)=y(2);%dy(1)表示y的一階導(dǎo)數(shù),其等于y的第二列值dy(2)=y(3);%dy(2)表示y的二階導(dǎo)數(shù)dy(3)=2*y(3)/x^3+3*y(2)/x^3+3*exp(2*x)/x^3%dy(3)表示y的三階導(dǎo)數(shù)%用ode23ode45ode113解多階微分方程clear,clc[x23,y23]=ode23('myfun03',[1,10],[11030]);[x45,y45]=ode45('myfun03',[1,10],[11030]);[x113,y113]=ode113('myfun03',[1,10],[11030]);figure(1)%第一幅圖plot(x23,y23(:,1),'*r',x45,y45(:,1),'ob',x113,y113(:,1),'+g')%作出各種函數(shù)所得結(jié)果legend('ode23解','ode45解','ode113解')title('ODE函數(shù)求解結(jié)果')figure(2)plot(x45,y45)%以ode45為例作出函數(shù)以及其各階導(dǎo)數(shù)圖legend('y','y一階導(dǎo)數(shù)','y兩階導(dǎo)數(shù)')title('y,y一階導(dǎo)數(shù),y二階導(dǎo)數(shù)函數(shù)圖')建立求解函數(shù)文件myfun03functiondy=myfun03(x,y)dy=zeros(3,1)%初始化變量dy,該行可以沒有dy(1)=y(2);%dy(1)表示y的一階導(dǎo)數(shù),其等于y的第二列值dy(2)=y(3);%dy(2)表示y的二階導(dǎo)數(shù)dy(3)=2*y(3)/x^3+3*y(2)/x^3+3*exp(2*x)/x^3%dy(3)表示y的三階導(dǎo)數(shù)求解過程:[x45,y45]=ode45('myfun03',[1,10],[11030]);第八講非線性方程求根引言二分法迭代法Newton迭代法MATLAB的非線性方程求根函數(shù)小結(jié)Matlab中zeroin的算法實現(xiàn)是fzero.

x=fzero(FUN,x0)%x0可以是數(shù),或區(qū)間x=fzero(FUN,x0,options)[x,fval]=fzero(FUN,x0,options)[x,fval,exitflag]=fzero(FUN,x0,options)5、MATLAB的非線性方程求根函數(shù)例:求方程在x=0.5附近的根。>>x=fzero('x^2+x-1',0.5)x=0.6180例:采用牛頓下山法求方程在區(qū)間[1.2,2]上的一個根。>>x=fzero('sqrt(x)-x^3+2',[02])x=1.4759>>r=NewtonDown('sqrt(x)-x^3+2',1.2,2)r=1.4759第九講解線性方程組的直接解法引言Gauss消元法列主元素消元法誤差分析MATLAB的線性方程組求解函數(shù)1小結(jié)2、Gauss消元法2.1基本思想:逐步消去未知元,將方程組化為與其等價的上三角方程組求解。2.2分兩步:第一步:消元過程,將方程組消元化為等價的上三角形方程組;第二步:回代過程,解上三角形方程組,得原方程組的解。2.3Gauss消元的目的a11x1+a12x2+····+a1nxn=b1a21x1+a22x2+····+a2nxn=b2·········································an1x1+an2x2+····+annxn=bn原始方程組約化方程組2.4.1消元過程(化一般方程組為上三角方程組)以四階為例:其系數(shù)增廣矩陣為:第一輪消元:計算3個數(shù):[m21

m31

m41]T=[a21

a31

a41]T/a11

用-m21乘矩陣第一行后加到矩陣第二行;

用-m31乘矩陣第一行后加到矩陣第三行;

用-m41乘矩陣第一行后加到矩陣第四行;其系數(shù)增廣矩陣變?yōu)椋旱诙喯河嬎?個數(shù):[m32

m42]T=[a32(1)

a42(1)]T

/a22(1)

用-m32乘矩陣第二行后加到矩陣第三行;

用-m42乘矩陣第二行后加到矩陣第四行;其系數(shù)增廣矩陣變?yōu)椋旱谌喯河嬎?m43=a43(2)/a33(2)用-m43乘矩陣第三行后加到矩陣第四行;其系數(shù)增廣矩陣變?yōu)椋浩鋵?yīng)的上三角方程組為若對于一般的線性方程組Ax=b,其消元過程的計算公式為:(k=1,2,…,n-1)2.4.2回代過程(解上三角方程組)上三角方程組的一般形式為:其中a11…ann≠0回代過程的計算公式:定理:

約化的主元素ak+1,k+1(k)≠0(k=0,1,···,n-1)的充分必要條件是矩陣A的各階順序主子式不為零。即注:對角線上的元素ak+1,k+1(k)在Gauss消去法中作用突出,稱約化的主元素。推論:

如果A的順序主子式Dk

≠0(k=1,···,n-1),則Gauss消元法中的約化主元可以表示為例

用高斯消元法求解方程組x1=-13,x2=8,

x3=2m21=3/2m31=4/2m32=-3/0.5>>clearall;A=[234;352;4330];b=[6532]';[L,U]=lu(A);x=U\(L\b)x=-13.00008.00002.0000MATLAB處理:線性代數(shù)方程組可以用矩陣形式表示為即:則:5、MATLAB的線性方程組求解函數(shù)1a=[0.40960.12340.36780.2943;0.22460.38720.40150.1129;0.36450.19200.37810.0643;0.17840.40020.27860.3927];b=[0.40430.15500.4240-0.2557]’x=a\b或x=v(a)*b第十講解線性方程組的迭代解法引言簡單迭代法賽得爾迭代法迭代解法的收斂性

MATLAB的線性方程組求解函數(shù)2小結(jié)格式solve('eqn1','eqn2',...,'eqnN','var1,var2,...,varN')5、MATLAB的線性方程組求解函數(shù)2格式X=fsolve(FUN,X0)Matlab非線性方程組求解說明:求解方程形式F(X)=0X、F可以是向量或矩陣

X0初值functionF=myfun(x)F=[2*x(1)-x(2)-exp(-x(1));-x(1)+2*x(2)-exp(-x(2))];x=fsolve('myfun',[-1,1])第十一章概率統(tǒng)計函數(shù)應(yīng)用MATLAB提供了大量進(jìn)行概率統(tǒng)計計算的函數(shù)工具,如隨機(jī)變量的數(shù)字特征、特殊分布的概率計算、參數(shù)估計函數(shù)、假設(shè)檢驗函數(shù)、方差分析、回歸分析和統(tǒng)計圖繪制等。此處主要介紹方差分析和統(tǒng)計圖繪制的函數(shù)功能。3.1方差分析3.1.1單因素方差分析單因素方差分析是比較兩組或多組數(shù)據(jù)的均值,它返回原假設(shè)——均值相等的概率函數(shù)anova1格式p=anova1(X)%X的各列為彼此獨立的樣本觀察值,其元素個數(shù)相同,p為各列均值相等的概率值,若p值接近于0,則原假設(shè)受到懷疑,說明至少有一列均值與其余列均值有明顯不同。p=anova1(X,group)%X和group為向量且group要與X對應(yīng)p=anova1(X,group,'displayopt')%displayopt=on/off表示顯示與隱藏方差分析表圖和盒圖[p,table]=anova1(…)%table為方差分析表[p,table,stats]=anova1(…)%stats為分析結(jié)果的構(gòu)造說明anova1函數(shù)產(chǎn)生兩個圖:標(biāo)準(zhǔn)的方差分析表圖和盒圖。方差分析表中有6列:第1列(source)顯示:X中數(shù)據(jù)可變性的來源;第2列(SS)顯示:用于每一列的平方和;第3列(df)顯示:與每一種可變性來源有關(guān)的自由度;第4列(MS)顯示:是SS/df的比值;第5列(F)顯示:F統(tǒng)計量數(shù)值,它是MS的比率;第6列顯示:從F累積分布中得到的概率,當(dāng)F增加時,p值

溫馨提示

  • 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

提交評論