數(shù)值計(jì)算方法課程(運(yùn)用Matlab)課件_第1頁
數(shù)值計(jì)算方法課程(運(yùn)用Matlab)課件_第2頁
數(shù)值計(jì)算方法課程(運(yùn)用Matlab)課件_第3頁
數(shù)值計(jì)算方法課程(運(yùn)用Matlab)課件_第4頁
數(shù)值計(jì)算方法課程(運(yùn)用Matlab)課件_第5頁
已閱讀5頁,還剩185頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

MATLAB快速入門

編程環(huán)境1編程入門2繪圖3MATLAB快速入門編程環(huán)境1編程入門2繪圖31Matlab簡介Matlab提供了強(qiáng)大的科學(xué)計(jì)算、靈活的程序設(shè)計(jì)流程、高質(zhì)量的圖形可視化與界面設(shè)計(jì)等功能,被廣泛應(yīng)用于科學(xué)計(jì)算、控制系統(tǒng)、信息處理等領(lǐng)域的分析、仿真和畢業(yè)設(shè)計(jì)。Matlab功能強(qiáng)大、簡單易學(xué)、編程效率高,深受廣大科技工作者的歡迎。

Matlab是一種廣泛應(yīng)用于工程計(jì)算及數(shù)值分析領(lǐng)域的新型高級(jí)語言,現(xiàn)已成為國際公認(rèn)的最優(yōu)秀的工程應(yīng)用開發(fā)環(huán)境。Matlab簡介Matlab提供了強(qiáng)大的科學(xué)計(jì)算、靈活的2感受MatlabA=magic(3),det(A),inv(A),eig(A)

求的根f(x)=x*exp(x^2)

的10次導(dǎo)數(shù),在區(qū)間【0,1】上的積分等運(yùn)算x=symsxf=x*exp(x^2)

diff(f,x,10)int(f,x,0,1)

繪圖感受MatlabA=magic(3),det(A),inv3Matlab具有很強(qiáng)的數(shù)值計(jì)算功能

Matlab以矩陣作為數(shù)據(jù)操作的基本單位,但無需預(yù)先指定矩陣維數(shù)(動(dòng)態(tài)定維)提供十分豐富的數(shù)值計(jì)算函數(shù),方便計(jì)算,提高效率

簡便易學(xué):Matlab命令與數(shù)學(xué)中的符號(hào)、公式非常接近,可讀性強(qiáng),容易掌握Matlab是一個(gè)交互式軟件系統(tǒng)輸入一條命令,立即就可以得出該命令的結(jié)果Matlab:MatrixLaboratryMatlab具有很強(qiáng)的數(shù)值計(jì)算功能Matlab以矩陣4Matlab的特點(diǎn)與功能Matlab符號(hào)計(jì)算功能強(qiáng)大Matlab的編程功能Matlab簡單易學(xué)、編程效率高。Matlab的繪圖功能強(qiáng)大Matlab提供豐富的繪圖命令,

很方便實(shí)現(xiàn)數(shù)據(jù)的可視化Matlab豐富的工具箱(toolbox)根據(jù)專門領(lǐng)域中的特殊需要而設(shè)計(jì)的各種可選工具箱SymbolicMathPDEOptimizationSignalprocessImageProcessStatisticsControlSystemSystemIdentification…

…Matlab的特點(diǎn)與功能Matlab符號(hào)計(jì)算功能強(qiáng)大5Matlab的基本用法Matlab系統(tǒng)的啟動(dòng)雙擊桌面上的Matlab快捷圖標(biāo)使用Windows“開始”菜單→程序→MATLAB7.0→MATLAB7.0

Matlab系統(tǒng)的退出在Matlab主窗口File

菜單中選擇ExitMatlab

命令在Matlab命令窗口輸入exit或quit

命令單擊Matlab主窗口的“關(guān)閉”按鈕注:在任何時(shí)候,只要按ctrl+c,MATLAB將停止運(yùn)行的所有工作Matlab的基本用法Matlab系統(tǒng)的啟動(dòng)雙擊桌面6Matlab的工作界面命令窗口當(dāng)前工作目錄當(dāng)前工作空間輸入命令的歷史記錄命令提示符Matlab的工作界面命令窗口當(dāng)前工作目錄當(dāng)前工作空間輸入7Matlab的命令窗口

交互式的命令執(zhí)行方式在CommandWindow內(nèi)的提示符(>>)之后輸入運(yùn)算式,并按Enter鍵即可缺省變量名「ans」若不想在屏幕上輸出結(jié)果,可以在語句最后加分號(hào)cos(0),2^10,2+4iA=[123;246;369]det(A)t=0:pi/100:2*pi;y=sin(t);plot(t,y,'r*')Matlab的命令窗口交互式的命令執(zhí)行方式在Comman8變量命名原則Matlab變量以字母開頭:x1,y,千萬不要以數(shù)字開頭

后面可以跟字母、數(shù)字

和下劃線變量名稱區(qū)分字母的

大小

寫,比如Abc和abc不同字母間不可留空格,可以用下劃線math_score

Matlab語句的通常形式變量=表達(dá)式續(xù)行符…的作用變量命名原則Matlab變量以字母開頭:x1,y,千萬9系統(tǒng)預(yù)定義變量Matlab變量

pi

圓周率

inf/Inf無窮大

nan/NaN

Not-a-Number,一個(gè)不定值,如0/0

eps浮點(diǎn)運(yùn)算相對(duì)精度特殊變量

ans

i/j

虛部單位,即應(yīng)盡量避免給系統(tǒng)預(yù)定義變量重新賦值!系統(tǒng)預(yù)定義變量Matlab變量pi圓周率i10

數(shù)與算術(shù)表達(dá)式Matlab數(shù)值運(yùn)算Matlab中的數(shù)默認(rèn)是雙精度實(shí)數(shù),表示方法同

C語言3,-9,0.4,1.603e-12,3.23e+20

浮點(diǎn)運(yùn)算的相對(duì)誤差為

eps

浮點(diǎn)數(shù)表示范圍為:10-308

~10308

復(fù)數(shù)的輸入

z=3+4i

(4與i之間不能有空格)

z=3+4*i數(shù)與算術(shù)表達(dá)式Matlab數(shù)值運(yùn)算Matlab中的數(shù)11數(shù)學(xué)運(yùn)算符

+

加法Matlab數(shù)值運(yùn)算

-

減法

*

乘法

/和

\

除法(右除和左除)

^

冪運(yùn)算.*./.\.^

點(diǎn)運(yùn)算數(shù)學(xué)運(yùn)算符+加法Matlab數(shù)值運(yùn)算-減法12常用數(shù)學(xué)函數(shù)函數(shù)名含義函數(shù)名含義sin正弦函數(shù)exp自然指數(shù)函數(shù)cos余弦函數(shù)pow22的冪tan正切函數(shù)abs絕對(duì)值函數(shù)asin反正弦函數(shù)angle復(fù)數(shù)的幅角acos反余弦函數(shù)real復(fù)數(shù)的實(shí)部atan反正切函數(shù)imag復(fù)數(shù)的虛部sinh雙曲正弦函數(shù)conj復(fù)數(shù)共軛運(yùn)算cosh雙曲余弦函數(shù)rem求余數(shù)或模運(yùn)算常用數(shù)學(xué)函數(shù)函數(shù)名含義函數(shù)名含義sin正弦函數(shù)e13函數(shù)名含義函數(shù)名含義tanh雙曲正切函數(shù)mod模除求余asinh反雙曲正弦函數(shù)fix向零方向取整acosh反雙曲余弦函數(shù)floor不大于自變量的最大整數(shù)atanh反雙曲正切函數(shù)ceil不小于自變量的最小整數(shù)sqrt平方根函數(shù)round四舍五入到最鄰近的整數(shù)log自然對(duì)數(shù)函數(shù)sign符號(hào)函數(shù)log10常用對(duì)數(shù)函數(shù)gcd最大公因子log2以2為底的對(duì)數(shù)函數(shù)lcm最小公倍數(shù)常用數(shù)學(xué)函數(shù)函數(shù)名含義函數(shù)名含義tanh雙曲正切函數(shù)mod模14簡單實(shí)例練習(xí):①求29的自然對(duì)數(shù)和無理數(shù)e的值②簡單實(shí)例練習(xí):15矩陣的基礎(chǔ)操作矩陣的基礎(chǔ)操作16

矩陣的直接輸入矩陣用方括號(hào)“[]”括起例:>>

A=[123;456;789]矩陣同一行中的元素之間用空格或逗號(hào)分隔矩陣行與行之間用分號(hào)分開直接輸入法中,分號(hào)可以用回車代替矩陣Matlab的操作對(duì)象是矩陣矩陣的直接輸入矩陣用方括號(hào)“[]”括起例:>>A=17矩陣下標(biāo)矩陣下標(biāo)18單個(gè)元素的引用例:>>

A(2,3)矩陣元素的引用利用小括弧和元素所在的位置(下標(biāo))x(i):向量x中的第i個(gè)元素A(i,j):矩陣A中的第i行,第j列元素單個(gè)元素的引用例:>>A(2,3)矩陣元素的引用利用小括19矩陣操作提取矩陣的部分元素:冒號(hào)運(yùn)算符A(i,j)A的第i行第j列元素

A(:,k)A的第k列

A(k,:)A的第k行

A(:,k:m)A的第k到第m列組成的子矩陣A(end,end)A的最后一行最后一列如何獲得由A的第一、三行和第一、二列組成的子矩陣?自己動(dòng)手矩陣操作提取矩陣的部分元素:冒號(hào)運(yùn)算符A(i,j)20矩陣的各種處理A(2,3)%查詢第2行第3列所對(duì)應(yīng)的元素A(12)%查詢第12個(gè)元素A([914],[1015])%思考之A(:,4)%查詢第4列元素A(4,:)%查詢第4行元素A(end,:)%最后一行元素A(find(A>5))%查詢大于5的元素A(2,3)=5%重新賦值第2行3列元素為5矩陣的各種處理A(2,3)%查詢第2行第3列所對(duì)應(yīng)的元素21

向量與矩陣的生成向量與矩陣的生成

向量的生成

直接輸入:a=[1,2,3,4]冒號(hào)創(chuàng)建:x=a:step:b

從矩陣中抽取行或列生成線性等分向量:x=linspace(a,b,n)

x=linspace(0,1,5)x2=a+h:h:b-h;%2倍的點(diǎn)x4=a+h/2:h:b-h/2;%4倍的點(diǎn)向量與矩陣的生成向量與矩陣的生成向量的生成直接輸入:22大矩陣可以把小矩陣作為其元素矩陣元素賦值例:>>

A=[A;111213]在原矩陣的下方加一行如何在原矩陣的右邊添加一列?

已知矩陣A和行向量b,如何得到矩陣大矩陣可以把小矩陣作為其元素矩陣元素賦值例:>>A=23常見矩陣生成函數(shù)zeros(m,n)生成一個(gè)m

行n

列的零矩陣,m=n

時(shí)可簡寫為zeros(n)ones(m,n)生成一個(gè)m行n列的元素全為1的矩陣,

m=n

時(shí)可寫為ones(n)eye(m,n)生成一個(gè)主對(duì)角線全為1的m

行n

列矩陣,

m=n

時(shí)可簡寫為eye(n),即為n

維單位矩陣diag(A)diag(x)A是矩陣,則diag(A)為A的主對(duì)角線向量x是向量,diag(x)產(chǎn)生以x為主對(duì)角線的對(duì)角矩陣rand(m,n)產(chǎn)生0~1間均勻分布的隨機(jī)矩陣m=n

時(shí)簡寫為rand(n)randn(m,n)產(chǎn)生均值為0,方差為1的標(biāo)準(zhǔn)正態(tài)分布隨機(jī)矩陣

m=n

時(shí)簡寫為randn(n)常見矩陣生成函數(shù)zeros(m,n)生成一個(gè)m行n列24矩陣操作查看矩陣的大小:size

size(A)

列出矩陣A的行數(shù)和列數(shù)

size(A,1)返回矩陣A的行數(shù)

size(A,2)返回矩陣A的列數(shù)例:>>

A=[123;456]>>

size(A)>>

size(A,1)>>

size(A,2)

length(x)返回向量X的長度

length(A)等價(jià)于max(size(A))矩陣操作查看矩陣的大小:sizesize(A)列出25逆矩陣與行列式計(jì)算矩陣的逆矩陣:inv(A)矩陣的行列式:det(A)

要求A為方陣矩陣的秩:rank(A)例:>>A=[123;456;235];A1=inv(A),d=det(A1),rank(A1)逆矩陣與行列式計(jì)算矩陣的逆矩陣:inv(A)矩陣的行列式:d26矩陣的數(shù)組運(yùn)算數(shù)組運(yùn)算:對(duì)應(yīng)元素進(jìn)行運(yùn)算點(diǎn)與算術(shù)運(yùn)算符之間不能有空格!

數(shù)組運(yùn)算包括:點(diǎn)乘、點(diǎn)除、點(diǎn)冪

相應(yīng)的數(shù)組運(yùn)算符為:“.*”,“./”,“.\”和“

.^”例:>>

A=[123;456];B=[321;654];>>

C=A.*B;D=A./B;E=A.\B;F=A.^B;矩陣的數(shù)組運(yùn)算數(shù)組運(yùn)算:對(duì)應(yīng)元素進(jìn)行運(yùn)算點(diǎn)與算術(shù)運(yùn)算符之間27數(shù)與數(shù)組的點(diǎn)冪x.^y

=[1^4,2^5,3^6]=[1,32,729]

x.^2

=[1^2,2^2,3^2]=[1,4,9]

2.^x

=

?例:x=[123];y=[456];數(shù)與數(shù)組的點(diǎn)冪x.^y=[1^4,2^5,3^6]=[1,28矩陣的“除法”

矩陣的除法:/、\右除和左除

若A可逆方陣,則A\B

<==>A的逆左乘B<==>inv(A)*BB/A

<==>A的逆右乘B<==>B*inv(A)X=A\B<==>A*X=BX=B/A<==>X*A=B通常,矩陣除法可以理解為當(dāng)A和B行數(shù)相等時(shí)即可進(jìn)行左除當(dāng)A和B列數(shù)相等時(shí)即可進(jìn)行右除例:設(shè)A、B滿足關(guān)系式:AB=2B+A,求B。其中A=[301;110;014]。矩陣的“除法”矩陣的除法:/、\右除和左除若A可29向量特殊運(yùn)算介紹min最小值sum總和max最大值prod總乘積mean平均值std標(biāo)準(zhǔn)差median中位數(shù)sort排序dot數(shù)量積cross向量積例:A=magic(3)或A=1:5%運(yùn)算對(duì)向量或矩陣都適用B=mean(A)C=sum(A)向量特殊運(yùn)算介紹min最小值sum總和max最大值prod總30矩陣操作矩陣的上、下三角陣,對(duì)角陣

triu(A,k)uppertriangularpart上三角

tril(A,k)lowertriangularpart下三角矩陣的旋轉(zhuǎn)

fliplr(A)

左右旋轉(zhuǎn)

flipud(A)

上下旋轉(zhuǎn)

rot90(A)

逆時(shí)針旋轉(zhuǎn)90度;

rot90(A,k)逆時(shí)針旋轉(zhuǎn)k×90

度矩陣操作矩陣的上、下三角陣,對(duì)角陣triu(A,k)31變量的存儲(chǔ)存儲(chǔ)當(dāng)前工作空間中的變量

save

將所有變量存入文件matlab.mat

savemydata

將所有變量存入指定文件mydata.mat存儲(chǔ)指定的變量

savemydata.mat

將所有變量存入文件mydata.matsave

文件名

變量名列表例:>>

savemydataAxz

變量名列表中各變量之間用空格分隔。變量的存儲(chǔ)存儲(chǔ)當(dāng)前工作空間中的變量save將所有變量32變量的讀取將數(shù)據(jù)文件中的變量載入當(dāng)前工作空間

loadmydata

載入數(shù)據(jù)文件中的所有變量

loadmydataAx

從數(shù)據(jù)文件中提取指定變量掌握如何從txt文件和excel文件載入數(shù)據(jù)清除當(dāng)前工作空間中的變量

clear清除當(dāng)前工作空間中的所有變量

clearAx

清除指定的變量變量的讀取將數(shù)據(jù)文件中的變量載入當(dāng)前工作空間loadm33輸出格式Matlab的輸出

Matlab以雙精度執(zhí)行所有的運(yùn)算,運(yùn)算結(jié)果可以在屏幕上輸出,同時(shí)賦給指定變量;若無指定變量,則系統(tǒng)會(huì)自動(dòng)將結(jié)果賦給變量“ans”

File菜單,選擇Preferences菜單項(xiàng),可以設(shè)置顯示格式Matlab中數(shù)的輸出格式可以通過format

命令指定format只改變變量的輸出格式,但不會(huì)影響變量的值!輸出格式Matlab的輸出Matlab以雙精度執(zhí)行所34幾個(gè)小技巧

Matlab的命令記憶功能:上下箭頭鍵命令補(bǔ)全功能:Tab鍵

可以先輸入命令的前幾個(gè)字符,再按上下鍵縮小搜索范圍用Esc鍵刪除命令行幾個(gè)小技巧Matlab的命令記憶功能:上下箭頭鍵命令補(bǔ)35Matlab幫助系統(tǒng)聯(lián)機(jī)幫助help

顯示指定命令的簡短使用說明例:>>

helpeig

helpsqrt

>>

helphelp

helpelfun

詳細(xì)使用幫助doc

以網(wǎng)頁形式顯示指定命令的幫助頁例:>>

doceig

其它相關(guān)命令helpdesk、helpwin、moreMatlab幫助系統(tǒng)聯(lián)機(jī)幫助help顯示指定命令36基礎(chǔ)編程基礎(chǔ)編程37編程基礎(chǔ)關(guān)系與邏輯運(yùn)算1數(shù)據(jù)輸入與輸出2函數(shù)文件3選擇與循環(huán)語句4程序設(shè)計(jì)技巧簡介5編程基礎(chǔ)關(guān)系與邏輯運(yùn)算1數(shù)據(jù)輸入與輸出2函數(shù)文件3選擇與循環(huán)38用Matlab語言編寫的程序稱為M文件。

M文件是由若干Matlab命令組合在一起構(gòu)成的,它可以完成某些操作,也可以實(shí)現(xiàn)某種算法。事實(shí)上,Matlab

提供的內(nèi)部函數(shù)以及各種工具箱,都是利用Matlab

語言開發(fā)的M文件。用戶也可以結(jié)合自己的工作需要,開發(fā)自己的程序或工具箱。

M文件根據(jù)調(diào)用方式的不同可以分為兩類:

Script:腳本文件/命令文件

Function:函數(shù)文件M文件

M

文件以.m

為擴(kuò)展名。用Matlab語言編寫的程序稱為M文件。M文39

M

文件是一個(gè)文本文件,可以用任何文本編輯器來建立和編輯,通常使用Matlab

自帶的M

文件編輯器。M文件的建立與打開新建一個(gè)M文件菜單操作(FileNewM-File

)命令操作

(edit

M文件名)命令按鈕

(

快捷鍵

)打開已有的M文件菜單操作

(FileOpen

)命令操作(edit

M文件名)命令按鈕

(

快捷鍵

)雙擊M

文件M文件是一個(gè)文本文件,可以用任何文本編輯器來建立和編輯,40程序控制結(jié)構(gòu)有三種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。M文件控制流選擇結(jié)構(gòu)是根據(jù)給定的條件成立或不成立,分別執(zhí)行不同的語句。Matlab

用于實(shí)現(xiàn)選擇結(jié)構(gòu)的語句有if

語句和switch

語句。程序控制結(jié)構(gòu)有三種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。M文件控41關(guān)系運(yùn)算<小于<=小于等于>大于>=大于等于==等于~=不等于比較大小,如果結(jié)論是真則返回1,否則返回0注意==與=

的區(qū)別關(guān)系操作符能用來比較兩個(gè)同樣大小的數(shù)組,或用來比較一個(gè)數(shù)組和一個(gè)標(biāo)量,在后一種情況,標(biāo)量和數(shù)組中的每一個(gè)元素相比較,比較結(jié)果與數(shù)組大小一樣。關(guān)系運(yùn)算符關(guān)系運(yùn)算<小于<=小于等于>大于>=大于等于==等于~=不等42&與(ElementwiseAND)|或(ElementwiseOR)~

非xor(x,y)

異或邏輯運(yùn)算邏輯運(yùn)算符A

&

B

等價(jià)于and(A,B)A

|

B

等價(jià)于or(A,B)

~

A

等價(jià)于not(A)&與(ElementwiseAND)|或(El43例:A=input('PleaseinputA:')數(shù)據(jù)的輸入:inputA=input(提示信息)其中提示信息為字符串,該命令要求用戶輸入A

的值(可以是數(shù)或字符串)數(shù)據(jù)輸入inputA=input(提示信息,'s')注:此時(shí)輸入的字符串不要加單引號(hào)!如果是輸入字符串,也可以使用下面的方法name=input('What''syourname?','s')例:例:A=input('PleaseinputA:')44disp(X)輸出變量X的值,可以是數(shù)值矩陣或字符串>>

B=[123;456;789];>>

disp(B)數(shù)據(jù)輸出disp數(shù)據(jù)的輸出:disp>>

A='Hello,Tom!';>>

disp(A)例:disp(X)輸出變量X的值,可以是數(shù)值矩陣或字符串>>45單分支結(jié)構(gòu)ifexpression

(條件)

statements(語句組)endif條件語句ifexpression(條件)

statements1(語句組1)else

statements2(語句組2)end雙分支結(jié)構(gòu)單分支結(jié)構(gòu)ifexpression(條件)if條件語46數(shù)據(jù)輸出fprintffprintf(fid,format,variables)按指定的格式將變量的值輸出到指定的文件數(shù)據(jù)的輸出:fprintf

fid

為文件句柄,若缺省,則將變量的值輸出到屏幕上

format

用來指定數(shù)據(jù)輸出時(shí)采用的格式,常見的有%e(采用科學(xué)計(jì)算形式)

%f(采用浮點(diǎn)數(shù)形式)%g(由系統(tǒng)自動(dòng)選取上述兩種格式之一)

%s(輸出字符串)

format

中還可以使用一些特殊格式,如:\n

(換行)\t

(制表符)\b

(退格)

\\

(反斜桿)

%%

(百分號(hào))

數(shù)據(jù)輸出fprintffprintf(fid,format47數(shù)據(jù)輸出fprintffprintf('第%2d次迭代值為:%10.8f\n',n,x1)例:

format

中的輸出格式要與輸出變量一一對(duì)應(yīng)數(shù)據(jù)輸出fprintffprintf('第%2d次迭代值為48function

[out1,out2,…]=函數(shù)名(in1,in2,…)%注釋說明部分(可選)函數(shù)體語句(必須)

第一行為引導(dǎo)行,表示該M文件是函數(shù)文件函數(shù)名的命名規(guī)則與變量名相同(必須以字母開頭

)當(dāng)輸出行參多于一個(gè)時(shí),用方括號(hào)括起來函數(shù)必須是一個(gè)單獨(dú)的M文件函數(shù)文件名必須與函數(shù)名一致以百分號(hào)開始的語句為注釋語句函數(shù)文件函數(shù)文件由function

語句引導(dǎo)function[out1,out2,…]=函數(shù)名(in149函數(shù)文件舉例myfun.mfunction

[x1,x2]=myfun(a,b,c)temp=sqrt(b^2-4*a*c);x1=(-b+temp)/2/a;x2=(-b-temp)/2/a;函數(shù)文件舉例myfun.mfunction[x1,x2]50函數(shù)調(diào)用的一般格式輸出實(shí)參列表=函數(shù)名(輸入實(shí)參列表)函數(shù)調(diào)用函數(shù)調(diào)用的一般格式輸出實(shí)參列表=函數(shù)名(輸入實(shí)參列表)函數(shù)51子函數(shù)functionavg=fun(x)%主函數(shù)

n=length(x);avg=mean(x,n);functiona=mean(x,n)%子函數(shù)a=sum(x)/n;子函數(shù)functionavg=fun(x)%主函數(shù)52M文件的編輯與路徑設(shè)置進(jìn)入MATLAB的Editor/Debugger窗口來編輯程序在編輯環(huán)境中,文字的不同顏色顯示表明文字的不同屬性。

綠色:注解;黑色:程序主體;紅色:屬性值的設(shè)定;藍(lán)色:控制流程。在運(yùn)行程序之前,必須設(shè)置好MATLAB的工作路徑M文件的編輯與路徑設(shè)置進(jìn)入MATLAB的Editor/Deb53程序設(shè)計(jì)技術(shù)程序出錯(cuò)主要為兩類:1)格式錯(cuò)誤,如缺‘(’或‘)’等,在運(yùn)行時(shí)可檢測(cè)出大多數(shù)該類錯(cuò)誤,并指出錯(cuò)在哪一行。2)算法錯(cuò)誤,邏輯上的錯(cuò)誤,不易查找,遇到此類錯(cuò)誤時(shí)需耐心。程序設(shè)計(jì)技術(shù)程序出錯(cuò)主要為兩類:54程序控制結(jié)構(gòu)有三種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。任何復(fù)雜的程序都由這三種基本結(jié)構(gòu)組成。

順序結(jié)構(gòu)M文件控制流按排列順序依次執(zhí)行各條語句,直到程序的最后。這是最簡單的一種程序結(jié)構(gòu),一般涉及數(shù)據(jù)的輸入輸出、數(shù)據(jù)的計(jì)算或處理等。程序控制結(jié)構(gòu)有三種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。任何復(fù)雜55選擇結(jié)構(gòu)是根據(jù)給定的條件成立或不成立,分別執(zhí)行不同的語句。Matlab

用于實(shí)現(xiàn)選擇結(jié)構(gòu)的語句有if

語句和switch

語句。選擇結(jié)構(gòu)選擇結(jié)構(gòu)是根據(jù)給定的條件成立或不成立,分別執(zhí)行不同的語句。56ifexpression1(條件1)

statements1(語句組1)elseifexpression2(條件2)

statements2(語句組2)

......

elseifexpressionm(條件m)

statementsm(語句組m)else

statements(語句組)end多分支結(jié)構(gòu)if條件語句ifexpression1(條件1)多分支結(jié)構(gòu)if條57forvariable=expression

statement(循環(huán)體)end循環(huán)變量循環(huán)結(jié)構(gòu)whileexpression(條件)

statement(循環(huán)體)endforvariable=expression循環(huán)變量循環(huán)結(jié)58for循環(huán)【練習(xí)】一個(gè)三位整數(shù)各位數(shù)字的立方和等于該數(shù)本身則稱該數(shù)為水仙花數(shù)。輸出全部水仙花數(shù)。for循環(huán)【練習(xí)】一個(gè)三位整數(shù)各位數(shù)字的立方和等于該數(shù)本身則59舉例fork=1:1:nx0=x1;x1=x0-f(x0)/df(x0);end

數(shù)值穩(wěn)定性實(shí)驗(yàn):fori=1:1:8fori=8:-1:1

…………

end

end

迭代法求根,線性方程組迭代法求解,常微分方程數(shù)值解等舉例fork=1:1:n數(shù)值穩(wěn)定性實(shí)驗(yàn):迭代法求根,線60循環(huán)語句可以嵌套使用while循環(huán)whileexpression(條件)

statement(循環(huán)體)end不能在for循環(huán)體內(nèi)改變循環(huán)變量的值為了提高代碼的運(yùn)行效率,應(yīng)盡可能提高代碼的向量化程度,避免

for循環(huán)的使用如果預(yù)先就知道循環(huán)的次數(shù),則可以采用for循環(huán);否則,如果預(yù)先無法確定循環(huán)的次數(shù),則可以使用while循環(huán)。循環(huán)語句可以嵌套使用while循環(huán)whileexpre61while循環(huán)舉例【例】Fibonacci數(shù)組的元素滿足Fibonacci規(guī)則:且。現(xiàn)要求該數(shù)組中第一個(gè)大于10000的元素。a(1)=1;a(2)=1;i=3;a(i)=a(i-1)+a(i-2);whilea(i)<=10000i=i+1; a(i)=a(i-1)+a(i-2);endi,a(i),while循環(huán)舉例【例】Fibonacci數(shù)組的元素滿足Fi62

break

continue

break

語句用于終止循環(huán)的執(zhí)行,即跳出最內(nèi)層循環(huán)

continue

語句用于結(jié)束本次循環(huán),進(jìn)行下一次循環(huán)

break

和continue

一般與if

語句配合使用其它流控制語句

return

return

語句用于退出正在運(yùn)行的腳本或函數(shù),通常用在函數(shù)文件中。break和continuebreak語句用于終止63continue語句【例】把100到120之間的能被7整除的整數(shù)輸出。fori=100:120

ifrem(i,7)~=0

continue

endiendcontinue語句【例】把100到120之間的能被7整除的64break語句【例】輸出100到120之間第一個(gè)能被7整除的整數(shù)fori=100:120

ifrem(i,7)~=0

continue

endibreakendbreak語句【例】輸出100到120之間第一個(gè)能被7整除的65return語句functionoutput=fact(n)ifn==1output=1;return;endoutput=n*fact(n-1);return語句functionoutput=fact66程序示例【例】分段函數(shù)的最基本實(shí)現(xiàn)。程序示例【例】分段函數(shù)的最基本實(shí)現(xiàn)。67數(shù)值計(jì)算方法課程(運(yùn)用Matlab)課件68根據(jù)表達(dá)式的不同取值,分別執(zhí)行不同的語句。switchexpression(表達(dá)式)

casevalue1(表達(dá)式1)

statement1(語句組1)

casevalue2(表達(dá)式2)

statement2(語句組2)

......casevaluem

(表達(dá)式m)

statementm(語句組m)

otherwise

statement(語句組)endswitch語句根據(jù)表達(dá)式的不同取值,分別執(zhí)行不同的語句。switche69首先由計(jì)算機(jī)隨機(jī)產(chǎn)生一個(gè)[1,100]之間的一個(gè)整數(shù),然后由用戶猜測(cè)所產(chǎn)生的這個(gè)數(shù)。根據(jù)用戶猜測(cè)的情況給出不同的提示,如果猜測(cè)的數(shù)大于產(chǎn)生的數(shù),則顯示“High”,小于則顯示“

Low”

,等于則顯示“Youwon!”,同時(shí)退出游戲。用戶最多有7次機(jī)會(huì)。上機(jī)作業(yè)猜數(shù)游戲首先由計(jì)算機(jī)隨機(jī)產(chǎn)生一個(gè)[1,100]之間的一個(gè)整數(shù),然70Matlab繪圖Matlab繪圖71Matlab二維作圖

plot(x,y)基本形式x,y都是向量,則以x中元素為橫坐標(biāo),y中元素為縱坐標(biāo)作平面曲線。此時(shí)x,y必須具有相同長度。x,y都是矩陣,則將x的列和y中相應(yīng)的列相組合,繪制多條平面曲線。此時(shí)x,y必須具有相同的大小。x是向量,y是矩陣,若x的長度與y的行數(shù)相等,則將x與y中的各列相對(duì)應(yīng),繪制多條平面曲線;否則,若x的長度與y的列數(shù)相等,則將x與y中的各行相對(duì)應(yīng),繪制多條平面曲線。此時(shí)x的長度必須等于y的行數(shù)或列數(shù)。Matlab二維作圖plot(x,y)基本形式x,72

點(diǎn)和線的基本屬性圖形的屬性

plot(x,y,string)其中string

是用單引號(hào)括起來的字符串,用來指定圖形的屬性(點(diǎn)、線的形狀和顏色)屬性可以全部指定,也

可以只指定其中某幾個(gè)排列順序任意紅色、虛線、離散點(diǎn)用加號(hào)藍(lán)色、點(diǎn)劃線

離散點(diǎn)為菱形黑色、實(shí)線

離散點(diǎn)用星號(hào)>>

x=[0:0.2:2*pi];>>

plot(x,cos(x));>>

plot(x,cos(x),’r+:’);>>

plot(x,cos(x),’bd-.’);>>

plot(x,cos(x),’k*-’);點(diǎn)和線的基本屬性圖形的屬性plot(x,y,string73同時(shí)繪制多個(gè)函數(shù)圖像

plot(x1,y1,s1,x2,y2,s2,...,xn,yn,sn)屬性選項(xiàng)可以省略等價(jià)于:holdonplot(x1,y1,s1)plot(x2,y2,s2)...plot(xn,yn,sn)同時(shí)繪制多個(gè)函數(shù)圖像plot(x1,y1,s1,x2,y74圖形的基本屬性線型點(diǎn)標(biāo)記顏色-

實(shí)線:

虛線-.

點(diǎn)劃線--

間斷線.

點(diǎn)o

小圓圈x

叉子符+

加號(hào)*

星號(hào)s

方格d

菱形^

朝上三角v

朝下三角>

朝右三角<

朝左三角p

五角星h

六角星y

黃色

m

品紅色

c青色r紅色g綠色b藍(lán)色w白色k黑色help

plot

查看圖形的基本屬性線型點(diǎn)標(biāo)記顏色-實(shí)線.點(diǎn)y黃75圖形的其他屬性標(biāo)題title(’text’)坐標(biāo)軸標(biāo)注xlabel(’text’)

ylabel(’text’)添加圖例legend(string1,string2,...)圖形的其他屬性標(biāo)題title(’text’)坐標(biāo)軸標(biāo)注x76其他相關(guān)命令保持當(dāng)前窗口的圖像holdon或

holdoff新建繪圖窗口figure(n)顯示網(wǎng)格gridon或

gridoff其他相關(guān)命令保持當(dāng)前窗口的圖像holdon或hold77其它調(diào)用方式:axisauto自動(dòng)模式,使得圖形的坐標(biāo)滿足圖中的一切元素axisequal各坐標(biāo)軸采用等長刻度axissquare使繪圖區(qū)域?yàn)檎叫蝍xison/off恢復(fù)/取消對(duì)坐標(biāo)軸的一切設(shè)置axismanual以當(dāng)前的坐標(biāo)限制圖形的繪制(多圖時(shí))……更多參見axis的聯(lián)機(jī)幫助坐標(biāo)軸控制axis([xmin,xmax,ymin,ymax,zmin,zmax])作用:控制坐標(biāo)軸的顯示范圍

坐標(biāo)軸控制命令:axis其它調(diào)用方式:axisauto自動(dòng)模式,使78圖形的其他屬性>>

x=-pi:pi/10:pi;>>

y=sin(x);>>

plot(x,y,'rh:','linewidth',2,...'markeredgecolor','b',...'markerfacecolor','g')例:

線條的粗細(xì),字體大小,坐標(biāo)軸屬性等。linewidth:指定線條的粗細(xì)markeredgecolor:指定標(biāo)記的邊緣色markerfacecolor:指定標(biāo)記表面的顏色注:1)屬性與屬性的值是成對(duì)出現(xiàn)的2)更多屬性參見plot的聯(lián)機(jī)幫助圖形的其他屬性>>x=-pi:pi/10:pi;例:線條79數(shù)值分析實(shí)驗(yàn)選講牛頓迭代法實(shí)驗(yàn)2微分方程數(shù)值解實(shí)驗(yàn)3數(shù)值積分實(shí)驗(yàn)4數(shù)值穩(wěn)定性實(shí)驗(yàn)1數(shù)值分析實(shí)驗(yàn)選講牛頓迭代法實(shí)驗(yàn)2微分方程數(shù)值解實(shí)驗(yàn)3數(shù)值積分80數(shù)值穩(wěn)定性實(shí)驗(yàn)數(shù)值穩(wěn)定性實(shí)驗(yàn)81教材第6頁例1.1例:計(jì)算公式一:記為則初始誤差教材第6頁例1.1例:計(jì)算公式一:記為則初始誤差82Ans=0.1820000000000.0900000000000.0500000000000.083333333333-0.1666666666671.033333333333-5.00000000000025.142857142858-125.589285714292Ans=83例:計(jì)算公式二:例:計(jì)算公式二:84S1=0.182321559771430.088392201142860.058038994285710.043138361904760.034308190476190.028459047619050.024371428571430.021000000000000.02000000000000S1=85n00.1823210.1820.182310.0883920.0900.0883920.0580390.0500.05803830.0431380.0830.04313840.034306-0.16660.03430850.0284681.03330.02845960.024324-5.00000.0243770.02123625.14280.02180.018836-125.58920.020n00.1823210.1820.182310.08839286

選用數(shù)值穩(wěn)定性的算法計(jì)算思考與練習(xí)提示:選用數(shù)值穩(wěn)定性的算法計(jì)算思考與練習(xí)提示:87牛頓迭代法實(shí)驗(yàn)牛頓迭代法實(shí)驗(yàn)88教材第200頁例1.1

203頁例7.8教材第200頁例1.1203頁例7.889教材第200頁例1.1例:求下面方程的一個(gè)根,其中控制精確度tol=10^(-8).教材第200頁例1.1例:求下面方程的一個(gè)根,其中控制90調(diào)用結(jié)果若取初始值為1:>>[x1,n]=mynewton(1,1e-8)x1=0.60259620356652n=

7若取初始值為0:>>[x1,n]=mynewton(0,1e-8)x1=0.60259620356652n=27

調(diào)用結(jié)果91調(diào)用結(jié)果2>>[x1,n]=mynewton(1,1e-6);第1次迭代值為:0.82731056第2次迭代值為:0.69235833第3次迭代值為:0.62007843第4次迭代值為:0.60334207第5次迭代值為:0.60259760第6次迭代值為:0.60259620第7次迭代值為:0.60259620共迭代7次求得的近似根x*=:0.60259620調(diào)用結(jié)果2>>[x1,n]=mynewton(1,1e-692微分方程數(shù)值解實(shí)驗(yàn)微分方程數(shù)值解實(shí)驗(yàn)93教材第248頁例9.2教材第248頁例9.294調(diào)用結(jié)果調(diào)用結(jié)果95數(shù)值積分實(shí)驗(yàn)數(shù)值積分實(shí)驗(yàn)96MATLAB快速入門

編程環(huán)境1編程入門2繪圖3MATLAB快速入門編程環(huán)境1編程入門2繪圖397Matlab簡介Matlab提供了強(qiáng)大的科學(xué)計(jì)算、靈活的程序設(shè)計(jì)流程、高質(zhì)量的圖形可視化與界面設(shè)計(jì)等功能,被廣泛應(yīng)用于科學(xué)計(jì)算、控制系統(tǒng)、信息處理等領(lǐng)域的分析、仿真和畢業(yè)設(shè)計(jì)。Matlab功能強(qiáng)大、簡單易學(xué)、編程效率高,深受廣大科技工作者的歡迎。

Matlab是一種廣泛應(yīng)用于工程計(jì)算及數(shù)值分析領(lǐng)域的新型高級(jí)語言,現(xiàn)已成為國際公認(rèn)的最優(yōu)秀的工程應(yīng)用開發(fā)環(huán)境。Matlab簡介Matlab提供了強(qiáng)大的科學(xué)計(jì)算、靈活的98感受MatlabA=magic(3),det(A),inv(A),eig(A)

求的根f(x)=x*exp(x^2)

的10次導(dǎo)數(shù),在區(qū)間【0,1】上的積分等運(yùn)算x=symsxf=x*exp(x^2)

diff(f,x,10)int(f,x,0,1)

繪圖感受MatlabA=magic(3),det(A),inv99Matlab具有很強(qiáng)的數(shù)值計(jì)算功能

Matlab以矩陣作為數(shù)據(jù)操作的基本單位,但無需預(yù)先指定矩陣維數(shù)(動(dòng)態(tài)定維)提供十分豐富的數(shù)值計(jì)算函數(shù),方便計(jì)算,提高效率

簡便易學(xué):Matlab命令與數(shù)學(xué)中的符號(hào)、公式非常接近,可讀性強(qiáng),容易掌握Matlab是一個(gè)交互式軟件系統(tǒng)輸入一條命令,立即就可以得出該命令的結(jié)果Matlab:MatrixLaboratryMatlab具有很強(qiáng)的數(shù)值計(jì)算功能Matlab以矩陣100Matlab的特點(diǎn)與功能Matlab符號(hào)計(jì)算功能強(qiáng)大Matlab的編程功能Matlab簡單易學(xué)、編程效率高。Matlab的繪圖功能強(qiáng)大Matlab提供豐富的繪圖命令,

很方便實(shí)現(xiàn)數(shù)據(jù)的可視化Matlab豐富的工具箱(toolbox)根據(jù)專門領(lǐng)域中的特殊需要而設(shè)計(jì)的各種可選工具箱SymbolicMathPDEOptimizationSignalprocessImageProcessStatisticsControlSystemSystemIdentification…

…Matlab的特點(diǎn)與功能Matlab符號(hào)計(jì)算功能強(qiáng)大101Matlab的基本用法Matlab系統(tǒng)的啟動(dòng)雙擊桌面上的Matlab快捷圖標(biāo)使用Windows“開始”菜單→程序→MATLAB7.0→MATLAB7.0

Matlab系統(tǒng)的退出在Matlab主窗口File

菜單中選擇ExitMatlab

命令在Matlab命令窗口輸入exit或quit

命令單擊Matlab主窗口的“關(guān)閉”按鈕注:在任何時(shí)候,只要按ctrl+c,MATLAB將停止運(yùn)行的所有工作Matlab的基本用法Matlab系統(tǒng)的啟動(dòng)雙擊桌面102Matlab的工作界面命令窗口當(dāng)前工作目錄當(dāng)前工作空間輸入命令的歷史記錄命令提示符Matlab的工作界面命令窗口當(dāng)前工作目錄當(dāng)前工作空間輸入103Matlab的命令窗口

交互式的命令執(zhí)行方式在CommandWindow內(nèi)的提示符(>>)之后輸入運(yùn)算式,并按Enter鍵即可缺省變量名「ans」若不想在屏幕上輸出結(jié)果,可以在語句最后加分號(hào)cos(0),2^10,2+4iA=[123;246;369]det(A)t=0:pi/100:2*pi;y=sin(t);plot(t,y,'r*')Matlab的命令窗口交互式的命令執(zhí)行方式在Comman104變量命名原則Matlab變量以字母開頭:x1,y,千萬不要以數(shù)字開頭

后面可以跟字母、數(shù)字

和下劃線變量名稱區(qū)分字母的

大小

寫,比如Abc和abc不同字母間不可留空格,可以用下劃線math_score

Matlab語句的通常形式變量=表達(dá)式續(xù)行符…的作用變量命名原則Matlab變量以字母開頭:x1,y,千萬105系統(tǒng)預(yù)定義變量Matlab變量

pi

圓周率

inf/Inf無窮大

nan/NaN

Not-a-Number,一個(gè)不定值,如0/0

eps浮點(diǎn)運(yùn)算相對(duì)精度特殊變量

ans

i/j

虛部單位,即應(yīng)盡量避免給系統(tǒng)預(yù)定義變量重新賦值!系統(tǒng)預(yù)定義變量Matlab變量pi圓周率i106

數(shù)與算術(shù)表達(dá)式Matlab數(shù)值運(yùn)算Matlab中的數(shù)默認(rèn)是雙精度實(shí)數(shù),表示方法同

C語言3,-9,0.4,1.603e-12,3.23e+20

浮點(diǎn)運(yùn)算的相對(duì)誤差為

eps

浮點(diǎn)數(shù)表示范圍為:10-308

~10308

復(fù)數(shù)的輸入

z=3+4i

(4與i之間不能有空格)

z=3+4*i數(shù)與算術(shù)表達(dá)式Matlab數(shù)值運(yùn)算Matlab中的數(shù)107數(shù)學(xué)運(yùn)算符

+

加法Matlab數(shù)值運(yùn)算

-

減法

*

乘法

/和

\

除法(右除和左除)

^

冪運(yùn)算.*./.\.^

點(diǎn)運(yùn)算數(shù)學(xué)運(yùn)算符+加法Matlab數(shù)值運(yùn)算-減法108常用數(shù)學(xué)函數(shù)函數(shù)名含義函數(shù)名含義sin正弦函數(shù)exp自然指數(shù)函數(shù)cos余弦函數(shù)pow22的冪tan正切函數(shù)abs絕對(duì)值函數(shù)asin反正弦函數(shù)angle復(fù)數(shù)的幅角acos反余弦函數(shù)real復(fù)數(shù)的實(shí)部atan反正切函數(shù)imag復(fù)數(shù)的虛部sinh雙曲正弦函數(shù)conj復(fù)數(shù)共軛運(yùn)算cosh雙曲余弦函數(shù)rem求余數(shù)或模運(yùn)算常用數(shù)學(xué)函數(shù)函數(shù)名含義函數(shù)名含義sin正弦函數(shù)e109函數(shù)名含義函數(shù)名含義tanh雙曲正切函數(shù)mod模除求余asinh反雙曲正弦函數(shù)fix向零方向取整acosh反雙曲余弦函數(shù)floor不大于自變量的最大整數(shù)atanh反雙曲正切函數(shù)ceil不小于自變量的最小整數(shù)sqrt平方根函數(shù)round四舍五入到最鄰近的整數(shù)log自然對(duì)數(shù)函數(shù)sign符號(hào)函數(shù)log10常用對(duì)數(shù)函數(shù)gcd最大公因子log2以2為底的對(duì)數(shù)函數(shù)lcm最小公倍數(shù)常用數(shù)學(xué)函數(shù)函數(shù)名含義函數(shù)名含義tanh雙曲正切函數(shù)mod模110簡單實(shí)例練習(xí):①求29的自然對(duì)數(shù)和無理數(shù)e的值②簡單實(shí)例練習(xí):111矩陣的基礎(chǔ)操作矩陣的基礎(chǔ)操作112

矩陣的直接輸入矩陣用方括號(hào)“[]”括起例:>>

A=[123;456;789]矩陣同一行中的元素之間用空格或逗號(hào)分隔矩陣行與行之間用分號(hào)分開直接輸入法中,分號(hào)可以用回車代替矩陣Matlab的操作對(duì)象是矩陣矩陣的直接輸入矩陣用方括號(hào)“[]”括起例:>>A=113矩陣下標(biāo)矩陣下標(biāo)114單個(gè)元素的引用例:>>

A(2,3)矩陣元素的引用利用小括弧和元素所在的位置(下標(biāo))x(i):向量x中的第i個(gè)元素A(i,j):矩陣A中的第i行,第j列元素單個(gè)元素的引用例:>>A(2,3)矩陣元素的引用利用小括115矩陣操作提取矩陣的部分元素:冒號(hào)運(yùn)算符A(i,j)A的第i行第j列元素

A(:,k)A的第k列

A(k,:)A的第k行

A(:,k:m)A的第k到第m列組成的子矩陣A(end,end)A的最后一行最后一列如何獲得由A的第一、三行和第一、二列組成的子矩陣?自己動(dòng)手矩陣操作提取矩陣的部分元素:冒號(hào)運(yùn)算符A(i,j)116矩陣的各種處理A(2,3)%查詢第2行第3列所對(duì)應(yīng)的元素A(12)%查詢第12個(gè)元素A([914],[1015])%思考之A(:,4)%查詢第4列元素A(4,:)%查詢第4行元素A(end,:)%最后一行元素A(find(A>5))%查詢大于5的元素A(2,3)=5%重新賦值第2行3列元素為5矩陣的各種處理A(2,3)%查詢第2行第3列所對(duì)應(yīng)的元素117

向量與矩陣的生成向量與矩陣的生成

向量的生成

直接輸入:a=[1,2,3,4]冒號(hào)創(chuàng)建:x=a:step:b

從矩陣中抽取行或列生成線性等分向量:x=linspace(a,b,n)

x=linspace(0,1,5)x2=a+h:h:b-h;%2倍的點(diǎn)x4=a+h/2:h:b-h/2;%4倍的點(diǎn)向量與矩陣的生成向量與矩陣的生成向量的生成直接輸入:118大矩陣可以把小矩陣作為其元素矩陣元素賦值例:>>

A=[A;111213]在原矩陣的下方加一行如何在原矩陣的右邊添加一列?

已知矩陣A和行向量b,如何得到矩陣大矩陣可以把小矩陣作為其元素矩陣元素賦值例:>>A=119常見矩陣生成函數(shù)zeros(m,n)生成一個(gè)m

行n

列的零矩陣,m=n

時(shí)可簡寫為zeros(n)ones(m,n)生成一個(gè)m行n列的元素全為1的矩陣,

m=n

時(shí)可寫為ones(n)eye(m,n)生成一個(gè)主對(duì)角線全為1的m

行n

列矩陣,

m=n

時(shí)可簡寫為eye(n),即為n

維單位矩陣diag(A)diag(x)A是矩陣,則diag(A)為A的主對(duì)角線向量x是向量,diag(x)產(chǎn)生以x為主對(duì)角線的對(duì)角矩陣rand(m,n)產(chǎn)生0~1間均勻分布的隨機(jī)矩陣m=n

時(shí)簡寫為rand(n)randn(m,n)產(chǎn)生均值為0,方差為1的標(biāo)準(zhǔn)正態(tài)分布隨機(jī)矩陣

m=n

時(shí)簡寫為randn(n)常見矩陣生成函數(shù)zeros(m,n)生成一個(gè)m行n列120矩陣操作查看矩陣的大小:size

size(A)

列出矩陣A的行數(shù)和列數(shù)

size(A,1)返回矩陣A的行數(shù)

size(A,2)返回矩陣A的列數(shù)例:>>

A=[123;456]>>

size(A)>>

size(A,1)>>

size(A,2)

length(x)返回向量X的長度

length(A)等價(jià)于max(size(A))矩陣操作查看矩陣的大小:sizesize(A)列出121逆矩陣與行列式計(jì)算矩陣的逆矩陣:inv(A)矩陣的行列式:det(A)

要求A為方陣矩陣的秩:rank(A)例:>>A=[123;456;235];A1=inv(A),d=det(A1),rank(A1)逆矩陣與行列式計(jì)算矩陣的逆矩陣:inv(A)矩陣的行列式:d122矩陣的數(shù)組運(yùn)算數(shù)組運(yùn)算:對(duì)應(yīng)元素進(jìn)行運(yùn)算點(diǎn)與算術(shù)運(yùn)算符之間不能有空格!

數(shù)組運(yùn)算包括:點(diǎn)乘、點(diǎn)除、點(diǎn)冪

相應(yīng)的數(shù)組運(yùn)算符為:“.*”,“./”,“.\”和“

.^”例:>>

A=[123;456];B=[321;654];>>

C=A.*B;D=A./B;E=A.\B;F=A.^B;矩陣的數(shù)組運(yùn)算數(shù)組運(yùn)算:對(duì)應(yīng)元素進(jìn)行運(yùn)算點(diǎn)與算術(shù)運(yùn)算符之間123數(shù)與數(shù)組的點(diǎn)冪x.^y

=[1^4,2^5,3^6]=[1,32,729]

x.^2

=[1^2,2^2,3^2]=[1,4,9]

2.^x

=

?例:x=[123];y=[456];數(shù)與數(shù)組的點(diǎn)冪x.^y=[1^4,2^5,3^6]=[1,124矩陣的“除法”

矩陣的除法:/、\右除和左除

若A可逆方陣,則A\B

<==>A的逆左乘B<==>inv(A)*BB/A

<==>A的逆右乘B<==>B*inv(A)X=A\B<==>A*X=BX=B/A<==>X*A=B通常,矩陣除法可以理解為當(dāng)A和B行數(shù)相等時(shí)即可進(jìn)行左除當(dāng)A和B列數(shù)相等時(shí)即可進(jìn)行右除例:設(shè)A、B滿足關(guān)系式:AB=2B+A,求B。其中A=[301;110;014]。矩陣的“除法”矩陣的除法:/、\右除和左除若A可125向量特殊運(yùn)算介紹min最小值sum總和max最大值prod總乘積mean平均值std標(biāo)準(zhǔn)差median中位數(shù)sort排序dot數(shù)量積cross向量積例:A=magic(3)或A=1:5%運(yùn)算對(duì)向量或矩陣都適用B=mean(A)C=sum(A)向量特殊運(yùn)算介紹min最小值sum總和max最大值prod總126矩陣操作矩陣的上、下三角陣,對(duì)角陣

triu(A,k)uppertriangularpart上三角

tril(A,k)lowertriangularpart下三角矩陣的旋轉(zhuǎn)

fliplr(A)

左右旋轉(zhuǎn)

flipud(A)

上下旋轉(zhuǎn)

rot90(A)

逆時(shí)針旋轉(zhuǎn)90度;

rot90(A,k)逆時(shí)針旋轉(zhuǎn)k×90

度矩陣操作矩陣的上、下三角陣,對(duì)角陣triu(A,k)127變量的存儲(chǔ)存儲(chǔ)當(dāng)前工作空間中的變量

save

將所有變量存入文件matlab.mat

savemydata

將所有變量存入指定文件mydata.mat存儲(chǔ)指定的變量

savemydata.mat

將所有變量存入文件mydata.matsave

文件名

變量名列表例:>>

savemydataAxz

變量名列表中各變量之間用空格分隔。變量的存儲(chǔ)存儲(chǔ)當(dāng)前工作空間中的變量save將所有變量128變量的讀取將數(shù)據(jù)文件中的變量載入當(dāng)前工作空間

loadmydata

載入數(shù)據(jù)文件中的所有變量

loadmydataAx

從數(shù)據(jù)文件中提取指定變量掌握如何從txt文件和excel文件載入數(shù)據(jù)清除當(dāng)前工作空間中的變量

clear清除當(dāng)前工作空間中的所有變量

clearAx

清除指定的變量變量的讀取將數(shù)據(jù)文件中的變量載入當(dāng)前工作空間loadm129輸出格式Matlab的輸出

Matlab以雙精度執(zhí)行所有的運(yùn)算,運(yùn)算結(jié)果可以在屏幕上輸出,同時(shí)賦給指定變量;若無指定變量,則系統(tǒng)會(huì)自動(dòng)將結(jié)果賦給變量“ans”

File菜單,選擇Preferences菜單項(xiàng),可以設(shè)置顯示格式Matlab中數(shù)的輸出格式可以通過format

命令指定format只改變變量的輸出格式,但不會(huì)影響變量的值!輸出格式Matlab的輸出Matlab以雙精度執(zhí)行所130幾個(gè)小技巧

Matlab的命令記憶功能:上下箭頭鍵命令補(bǔ)全功能:Tab鍵

可以先輸入命令的前幾個(gè)字符,再按上下鍵縮小搜索范圍用Esc鍵刪除命令行幾個(gè)小技巧Matlab的命令記憶功能:上下箭頭鍵命令補(bǔ)131Matlab幫助系統(tǒng)聯(lián)機(jī)幫助help

顯示指定命令的簡短使用說明例:>>

helpeig

helpsqrt

>>

helphelp

helpelfun

詳細(xì)使用幫助doc

以網(wǎng)頁形式顯示指定命令的幫助頁例:>>

doceig

其它相關(guān)命令helpdesk、helpwin、moreMatlab幫助系統(tǒng)聯(lián)機(jī)幫助help顯示指定命令132基礎(chǔ)編程基礎(chǔ)編程133編程基礎(chǔ)關(guān)系與邏輯運(yùn)算1數(shù)據(jù)輸入與輸出2函數(shù)文件3選擇與循環(huán)語句4程序設(shè)計(jì)技巧簡介5編程基礎(chǔ)關(guān)系與邏輯運(yùn)算1數(shù)據(jù)輸入與輸出2函數(shù)文件3選擇與循環(huán)134用Matlab語言編寫的程序稱為M文件。

M文件是由若干Matlab命令組合在一起構(gòu)成的,它可以完成某些操作,也可以實(shí)現(xiàn)某種算法。事實(shí)上,Matlab

提供的內(nèi)部函數(shù)以及各種工具箱,都是利用Matlab

語言開發(fā)的M文件。用戶也可以結(jié)合自己的工作需要,開發(fā)自己的程序或工具箱。

M文件根據(jù)調(diào)用方式的不同可以分為兩類:

Script:腳本文件/命令文件

Function:函數(shù)文件M文件

M

文件以.m

為擴(kuò)展名。用Matlab語言編寫的程序稱為M文件。M文135

M

文件是一個(gè)文本文件,可以用任何文本編輯器來建立和編輯,通常使用Matlab

自帶的M

文件編輯器。M文件的建立與打開新建一個(gè)M文件菜單操作(FileNewM-File

)命令操作

(edit

M文件名)命令按鈕

(

快捷鍵

)打開已有的M文件菜單操作

(FileOpen

)命令操作(edit

M文件名)命令按鈕

(

快捷鍵

)雙擊M

文件M文件是一個(gè)文本文件,可以用任何文本編輯器來建立和編輯,136程序控制結(jié)構(gòu)有三種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。M文件控制流選擇結(jié)構(gòu)是根據(jù)給定的條件成立或不成立,分別執(zhí)行不同的語句。Matlab

用于實(shí)現(xiàn)選擇結(jié)構(gòu)的語句有if

語句和switch

語句。程序控制結(jié)構(gòu)有三種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。M文件控137關(guān)系運(yùn)算<小于<=小于等于>大于>=大于等于==等于~=不等于比較大小,如果結(jié)論是真則返回1,否則返回0注意==與=

的區(qū)別關(guān)系操作符能用來比較兩個(gè)同樣大小的數(shù)組,或用來比較一個(gè)數(shù)組和一個(gè)標(biāo)量,在后一種情況,標(biāo)量和數(shù)組中的每一個(gè)元素相比較,比較結(jié)果與數(shù)組大小一樣。關(guān)系運(yùn)算符關(guān)系運(yùn)算<小于<=小于等于>大于>=大于等于==等于~=不等138&與(ElementwiseAND)|或(ElementwiseOR)~

非xor(x,y)

異或邏輯運(yùn)算邏輯運(yùn)算符A

&

B

等價(jià)于and(A,B)A

|

B

等價(jià)于or(A,B)

~

A

等價(jià)于not(A)&與(ElementwiseAND)|或(El139例:A=input('PleaseinputA:')數(shù)據(jù)的輸入:inputA=input(提示信息)其中提示信息為字符串,該命令要求用戶輸入A

的值(可以是數(shù)或字符串)數(shù)據(jù)輸入inputA=input(提示信息,'s')注:此時(shí)輸入的字符串不要加單引號(hào)!如果是輸入字符串,也可以使用下面的方法name=input('What''syourname?','s')例:例:A=input('PleaseinputA:')140disp(X)輸出變量X的值,可以是數(shù)值矩陣或字符串>>

B=[123;456;789];>>

disp(B)數(shù)據(jù)輸出disp數(shù)據(jù)的輸出:disp>>

A='Hello,Tom!';>>

disp(A)例:disp(X)輸出變量X的值,可以是數(shù)值矩陣或字符串>>141單分支結(jié)構(gòu)ifexpression

(條件)

statements(語句組)endif條件語句ifexpression(條件)

statements1(語句組1)else

statements2(語句組2)end雙分支結(jié)構(gòu)單分支結(jié)構(gòu)ifexpression(條件)if條件語142數(shù)據(jù)輸出fprintffprintf(fid,format,variables)按指定的格式將變量的值輸出到指定的文件數(shù)據(jù)的輸出:fprintf

fid

為文件句柄,若缺省,則將變量的值輸出到屏幕上

format

用來指定數(shù)據(jù)輸出時(shí)采用的格式,常見的有%e(采用科學(xué)計(jì)算形式)

%f(采用浮點(diǎn)數(shù)形式)%g(由系統(tǒng)自動(dòng)選取上述兩種格式之一)

%s(輸出字符串)

format

中還可以使用一些特殊格式,如:\n

(換行)\t

(制表符)\b

(退格)

\\

(反斜桿)

%%

(百分號(hào))

數(shù)據(jù)輸出fprintffprintf(fid,format143數(shù)據(jù)輸出fprintffprintf('第%2d次迭代值為:%10.8f\n',n,x1)例:

format

中的輸出格式要與輸出變量一一對(duì)應(yīng)數(shù)據(jù)輸出fprintffprintf('第%2d次迭代值為144functio

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論