日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于MATLAB的学习记录(纯入门用)

發(fā)布時(shí)間:2023/12/29 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于MATLAB的学习记录(纯入门用) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

其實(shí)大二時(shí)有修過MATLAB這門課,但最終還是流于應(yīng)付考試的表面。
今年終于決定試試美賽,于是乎又撿起來這門課,學(xué)習(xí)內(nèi)容是按照bilibili上面中南大學(xué)的視頻講解,再加上自己編寫代碼和先前學(xué)習(xí)的印象做了一份筆記。
就當(dāng)是存檔,方便日后回憶查找。如有侵權(quán),純屬無心,聯(lián)系刪除。

專題一,MATLAB基礎(chǔ)知識

一、數(shù)據(jù)類型:

1整型:帶符號和無符號兩種
(數(shù)值類型轉(zhuǎn)換:int8函數(shù)轉(zhuǎn)換為帶符號的整型,uint8函數(shù)轉(zhuǎn)化為不帶符號的整型)
2、浮點(diǎn)型:單精度型和雙精度型。(數(shù)值型數(shù)據(jù)默認(rèn)為雙精度)可采用single函數(shù)、double函數(shù)進(jìn)行轉(zhuǎn)換。
3、復(fù)型數(shù)據(jù):包括實(shí)部和虛部兩部分。(real函數(shù)求實(shí)部,imag函數(shù)求虛部。)

二、數(shù)值數(shù)據(jù)的輸出格式

format函數(shù)來改變之后數(shù)值的輸出格式,format long/format(默認(rèn)是short),只影響輸出格式,但不影響儲存和計(jì)算。
format rat命令:以有理數(shù)形式輸出。

三、常用的數(shù)學(xué)函數(shù)

函數(shù)的調(diào)用格式:函數(shù)名(自變量值)
函數(shù)的應(yīng)用:
(1)三角函數(shù):sin函數(shù)自變量采用弧度制,sind函數(shù)自變量采用角度制。例如:sin(pi/2)=sind(90)=1
(2)exp(x):求ex
(3)Abs函數(shù),實(shí)數(shù)的絕對值,復(fù)數(shù)的摸,字符串的ASCII值。
(4)用于取整的函數(shù):round函數(shù)(四舍五入)ceil函數(shù)(向上取整)
floor函數(shù)(向下取整)fix函數(shù)(向0取整)
(5)求余函數(shù):rem函數(shù):rem(被除數(shù),除數(shù))輸出余數(shù),
即:a=rem(345,10)輸出a=5
(6)isprime函數(shù):判斷變量是否為素?cái)?shù),是返回1,否則返回0.
(7)find函數(shù):查找矩陣變量中的非零向量序號,利用數(shù)組輸出,例:k=find(A)(查找A矩陣中的非零向量序號),P=X(k)(將X矩陣中與上述查找到的非零向量對應(yīng)序號的元素輸出為P矩陣)

四、變量與賦值語句

變量=內(nèi)存單元,通過變量名訪問內(nèi)存單元。(MATLAB中,變量名以字母開頭,后接字母、數(shù)字或下劃線等字符。)
① 變量名區(qū)分字母的大小寫,即A和a表示的是兩個(gè)變量。
② 內(nèi)部標(biāo)準(zhǔn)函數(shù)名及命令名必須采用小寫字母,否則會(huì)出錯(cuò)。
賦值語句:變量=表達(dá)式,或直接輸入表達(dá)式,采用系統(tǒng)默認(rèn)ans。變量結(jié)果會(huì)在最后顯示,若在賦值語句最后加分號(;),則僅賦值,并不顯示結(jié)果。

五、預(yù)定義變量

ans:默認(rèn)賦值變量。
i和j:表示虛數(shù)單位,兩者等價(jià)。
Pi:代表圓周率
NaN:代表非數(shù)
如:在繪圖時(shí),如果需要裁減圖形,可將其相應(yīng)坐標(biāo)設(shè)置為NaN。

六、變量管理

Who命令、whose命令:顯示駐留變量,前者只給名稱,后者會(huì)顯示名稱和具體信息(例如:大小,格式等)
Save命令:創(chuàng)建內(nèi)存變量文件
load命令:裝入內(nèi)存變量文件

七、矩陣

1)直接輸入法:中括號外包,同行元素采用逗號分隔,不同行采用分號分隔。
2)利用已經(jīng)建立好的矩陣,拼接成大矩陣,例:A、B分別為兩個(gè)矩陣,可以創(chuàng)建C矩陣,即:C=[A,B;B,A]
3)也可以采用實(shí)部矩陣和虛部矩陣構(gòu)成復(fù)數(shù)矩陣,例:
4)冒號表達(dá)式: 初始值:步長:終止值(默認(rèn)步長=1)
5)linspace函數(shù):生成等差數(shù)列行向量
linspace(第一個(gè)元素,最后一個(gè)元素,元素總數(shù)),總數(shù)省略時(shí)默認(rèn)為100個(gè)元素。
6)結(jié)構(gòu)矩陣:數(shù)據(jù)類型不同但邏輯相關(guān)的數(shù)據(jù)組成整體,結(jié)構(gòu)矩陣內(nèi)的元素均是結(jié)構(gòu)數(shù)據(jù)類型。
格式:結(jié)構(gòu)矩陣元素.成員名=表達(dá)式

7)單元矩陣:采用大括號包括,元素類型可以不限于數(shù)值。

八、矩陣元素的引用方式

(1)通過下標(biāo)來引用元素:A(行,列),如果引用元素行列下標(biāo)超過原引用矩陣的行列數(shù),則MATLAB會(huì)自動(dòng)對其進(jìn)行擴(kuò)展,并將之前不存在的行列中元素賦值為0。
(2)通過序號引用:元素存儲是按列進(jìn)行存儲,故排序也是按列排序。序號與下標(biāo)是一一對應(yīng)的,例:m(行)×n(列)矩陣,元素A(i,j)序號為(j-1)×m+i
sub2ind函數(shù):將矩陣中指定元素的行列下標(biāo)轉(zhuǎn)換為存儲序號,例:D=sub2ind(行列數(shù)組成的向量,行,列)9
可采用size函數(shù)獲取行列數(shù)組成的向量。

ind2sub函數(shù):將矩陣元素的序號轉(zhuǎn)換為對應(yīng)的下標(biāo)。
[I,J]=ind2sub(S,D)(行數(shù)和列數(shù)組成的向量,序號)
(3)利用冒號表達(dá)式獲得子矩陣:
A(i,:)第i行全部元素
A(:,J)第j列全部元素
A(i:i+m,k:k+m)第ii+m行,第kk+m列的全部元素
(4)end運(yùn)算符:表示某一維的末尾元素。
(5)利用空矩陣刪除矩陣中的元素:即使相應(yīng)位置的元素為空,使矩陣相應(yīng)的發(fā)生改變。
(6)reshape函數(shù):改變矩陣的形狀,在矩陣總元素保持不變的前提下,將矩陣A重新排列為m×n的二維矩陣,例reshape(A,m,n)。只改變行列數(shù),即結(jié)構(gòu),但不改變元素本身、個(gè)數(shù)、儲存順序。
(7)A(:):將矩陣A每一列元素堆疊起來,形成一個(gè)列向量。

九、算術(shù)運(yùn)算

基本算術(shù)運(yùn)算:加、減、乘、右除/、左除\、乘方^
① 加減運(yùn)算:要求矩陣同型,即行列數(shù)要相同,若維數(shù)不同則出現(xiàn)錯(cuò)誤。標(biāo)量和矩陣也可以相運(yùn)算,可看做矩陣每一個(gè)元素都與該標(biāo)量進(jìn)行一次運(yùn)算。
② 乘法運(yùn)算:A與B相乘,要求A的列數(shù)與B的行數(shù)相等,否則錯(cuò)誤。稱為A、B可乘,或兩矩陣維數(shù)和大小相容。
③ 左除\和右除/:如果A為非奇異矩陣則B(右除)/A,則等于B*inv(A)(即B乘以A的逆矩陣)
④ 乘方運(yùn)算:A^x,要求A為方陣,x為標(biāo)量。
點(diǎn)運(yùn)算:量矩陣的對應(yīng)元素進(jìn)行相關(guān)運(yùn)算,要求進(jìn)行運(yùn)算的兩矩陣同型。
關(guān)系運(yùn)算符:
小于 <,小于或等于 <=,大于 >,大于或等于 >=,等于 ==,不等于 ~=
標(biāo)量比較:直接比較,成立為1,不成立為0。
矩陣比較:同型基礎(chǔ)上,相同位置元素按標(biāo)量比較,輸出結(jié)果以矩陣呈現(xiàn),由0、1組成。
標(biāo)量與矩陣比較:將標(biāo)量與矩陣內(nèi)每個(gè)元素進(jìn)行比較,輸出為矩陣,由0、1組成。
邏輯運(yùn)算:與 & ,或 | 、非 ~
標(biāo)量:
a&b 只有當(dāng)ab全為0時(shí),運(yùn)算結(jié)果為1,否則為0。
a|b a、b任一為非零時(shí),結(jié)果為1。
~a 當(dāng)a為0時(shí),運(yùn)算結(jié)果為1。
矩陣:同型矩陣對應(yīng)元素比較,輸出由0、1組成的矩陣為結(jié)果。

十、字符串的運(yùn)用處理

字符串的表示:用單引號括起來的字符序列。
字符串中的單引號作為字符本身需要用兩個(gè)單引號表示。
將字符串A中的字符重新排列m=A(end:-1:1)
字符串的執(zhí)行:
eval函數(shù):eval(字符串),將字符串的內(nèi)容作為MATLAB中相應(yīng)的函數(shù)進(jìn)行執(zhí)行。
字符串與數(shù)值間的轉(zhuǎn)換:
① abs和double函數(shù)都可以用于獲取字符串矩陣所對應(yīng)的ASCII碼數(shù)值矩陣。
② char函數(shù)可以把ASCII碼矩陣轉(zhuǎn)換為字符串矩陣。同一個(gè)字符到小寫ASCII的值相差32。
字符串的比較:一一對應(yīng)相比較ASCII碼的大小。
strcmp函數(shù):strcmp(s1,s2)用于比較兩字符串是否相等。相等返回1,不等返回0.
strcmpi函數(shù):忽略字符中的大小寫問題進(jìn)行比較,是否相等。
strncmp函數(shù):strncmp(s1,s2,n)用于比較兩字符串前n個(gè)字符是否相等。
strncmpi函數(shù):忽略大小寫對函數(shù)前n項(xiàng)進(jìn)行比較。
字符串的查找與替換:
findstr(s1,s2):返回短字符串在長字符串中的開始位置。
strrep(s1,s2,s3):將字符串s1中所有子字符s2換為字符串s3.

專題二,MATLAB矩陣處理

一、特殊矩陣

1.通用特殊矩陣
①zero函數(shù):產(chǎn)生全0矩陣,即0矩陣。
zero(m):產(chǎn)生m行m列矩陣;
zero(m,n):產(chǎn)生m行n列矩陣
zero(size(A)):產(chǎn)生與A矩陣同大小的0矩陣。
②ones函數(shù):產(chǎn)生全1矩陣。
③eye函數(shù):產(chǎn)生對角線為1的矩陣。當(dāng)矩陣為方陣時(shí),得到一個(gè)單位矩陣。
④rand函數(shù):產(chǎn)生(0,1)區(qū)間均勻分布的隨機(jī)矩陣。
要得到(a,b)區(qū)間上均勻分布的隨機(jī)矩陣,可用:
fix(a+(b-a+1)*rand(x))
⑤randn函數(shù):產(chǎn)生均值為0,方差為1的標(biāo)準(zhǔn)正態(tài)分布隨機(jī)矩陣。
要得到均值為a,方差為b的正態(tài)分布隨機(jī)矩陣,可用:
a+sqrt(b)*randn(x)
2.專用特殊矩陣
①魔方矩陣:n階魔方陣由1,2,3…n2共n2個(gè)整數(shù)組成,且每行、每列以及主副對角線上各n個(gè)元素之和都相等 ;每行每列的元素之和均為(n+n3)/2;可由magic函數(shù)產(chǎn)生(n大于2時(shí)有很多不同的魔方陣,但magic函數(shù)只產(chǎn)生一種特定的魔方陣)。
②范德蒙矩陣:最后一列全為1,前一列為基礎(chǔ)數(shù),各列均以該列為底數(shù),以其次方產(chǎn)生相應(yīng)元素。
vander(V),產(chǎn)生以V為基礎(chǔ)的范德蒙矩陣。
③希爾伯特矩陣:著名的病態(tài)矩陣,即任何一個(gè)元素發(fā)生較小的變化,矩陣的值和逆矩陣都會(huì)產(chǎn)生較大的變化,其病態(tài)程度與其的階數(shù)有關(guān),越高越病態(tài)。
hilb函數(shù),例hilb(n),生產(chǎn)n階希爾伯特矩陣。

④伴隨矩陣:采用compan(p),生成伴隨矩陣,p為多項(xiàng)式系數(shù)向量,高次冪系數(shù)排在前,低次在后。
伴隨矩陣的特征值(即伴隨矩陣第一行的值),為多項(xiàng)式方程的根。
⑤帕斯卡矩陣:根據(jù)二項(xiàng)式定理,(x+y)n展開后的系數(shù)隨著n的增大組成一個(gè)三角形表,這個(gè)三角形稱為楊輝三角形。
把二項(xiàng)式系數(shù)依次填寫在矩陣的左側(cè)對角線上,然后提取左側(cè)的n行n列元素,即為n階帕斯卡矩陣。

二、矩陣變換

1.矩陣舉例
1.對角矩陣:只有對角線上有非零元素的矩陣。
①提取矩陣的對角線元素:
diag(A):提取矩陣A主對角線(k=0)元素,產(chǎn)生一個(gè)列向量。
diag(A,k):提取矩陣A第k條對角線的元素,產(chǎn)生一個(gè)列向量。
②構(gòu)造對角陣矩陣:
diag(1:5):建立對角線元素為1,2,3,4,5的對角陣。
③使矩陣D各行元素乘以A的對角線元素:當(dāng)對角矩陣A左乘一個(gè)矩陣D,即A*D,相當(dāng)于讓對角線上元素A1,1乘以D矩陣第一行每一個(gè)元素;同理相當(dāng)于讓An,n乘以矩陣D第n行每一個(gè)元素。
同理,要將D的各列元素乘以A的對角線元素,即采用右乘對角陣。
2.三角矩陣:
①上三角陣:矩陣的對角線以下的元素全為0的矩陣。
triu(A):提取矩陣A主對角線(k=0)及以上的元素。
triu(A,k)提取矩陣A第k條對角線及以上的元素。
②下三角陣:矩陣的對角線以上的元素全為0的矩陣,采用tril函數(shù),用法同上述triu函數(shù)。
3.數(shù)量矩陣:對角線上的元素相等的對角矩陣。
4.單位矩陣:對角線上的元素為1的對角矩陣。
2.矩陣的轉(zhuǎn)置
轉(zhuǎn)置即將行元素變?yōu)榱性?#xff0c;運(yùn)算符號我小數(shù)點(diǎn)后接單引號(.’);
若為共軛轉(zhuǎn)置,其運(yùn)算符是單引號(’),它在轉(zhuǎn)置的基礎(chǔ)上還要取每個(gè)數(shù)的復(fù)共軛(共軛是針對于復(fù)數(shù)而言:即實(shí)部不變,虛部前面加負(fù)號。)
3.矩陣的旋轉(zhuǎn)
rot90(A,k):將矩陣逆時(shí)針旋轉(zhuǎn)90°的k倍,當(dāng)k為1時(shí)可以省略。
fliplr(A):對矩陣A實(shí)施左右翻轉(zhuǎn)。
flipud(A):對矩陣A實(shí)施上線翻轉(zhuǎn)。
4.矩陣的求逆
inv(A):求矩陣的逆,可利用逆矩陣求解線性方程組。

三、矩陣求值

1.行列式值
把一個(gè)方陣看作一個(gè)行列式,并對其按行列式的規(guī)則求值,這個(gè)值就稱為方陣所對應(yīng)的行列式的值。
det(A):求方陣A所對應(yīng)的行列式值。
2.矩陣的秩
線性無關(guān)的行數(shù)或列數(shù),用rank函數(shù)求解。例:
矩陣的跡:等于矩陣對角線元素之和,也等于矩陣的特征值之和。
可用函數(shù)trace(A)求解。
3.矩陣和向量的范數(shù)
用于度量矩陣或向量在某種意義下的長度。
(1)向量的3種常用范數(shù):
①向量1-范數(shù):向量元素的絕對值之和,例:可用norm(V,1)計(jì)算向量V的范數(shù)。
②向量2-范數(shù):向量元素平方和的平方根,norm(V)或norm(V,2)。
③向量∞-范數(shù):所有向量元素絕對值中的最大值,norm(V,inf)。
(2)矩陣的3種常用范數(shù):(計(jì)算和調(diào)用函數(shù)與向量相同。)
①矩陣A的1-范數(shù):所有矩陣列元素絕對值之和的最大值。
②矩陣A的2-范數(shù):矩陣A的轉(zhuǎn)置與矩陣A的乘積矩陣(A’A)的最大特征值的平方根。
③矩陣A的∞-范數(shù):所有矩陣行元素絕對值之和的最大值。
4.矩陣的條件數(shù)
矩陣A的條件數(shù)等于A的范數(shù)與A的逆矩陣的范數(shù)的乘積。條件數(shù)越接近1矩陣的性能越好(矩陣微變產(chǎn)生的誤差較小),反之矩陣的性能越差。(應(yīng)用:可以用來判斷迭代的病態(tài)程度)
①cond(A,1)
②cond(A)或cond(A,2)
③cond(A,inf)

四、矩陣的特征值與特征向量

設(shè)A為n階方陣,如果存在常數(shù)λ和n維非零列向量x,使得等式Ax=λx成立,則稱λ為A的特征值,相應(yīng)的x即為特征向量。
E=eig(A):求矩陣A的全部特征值,構(gòu)成向量E。
[X,D]=eig(A):求矩陣A的全部特征值,構(gòu)成對角陣D,并產(chǎn)生矩陣X,X各列是相應(yīng)的特征向量。
同一特征值的特征向量的非零線性組合仍是這個(gè)特征值的特征向量。
eigshow函數(shù)可以繪制單位圓上向量x和Ax之間的關(guān)系,運(yùn)行如下圖;在變化過程中,x和Ax共線的方向,即成為特征方向,此時(shí)有Ax=λx。

五、稀疏矩陣

是指零元素個(gè)數(shù)遠(yuǎn)遠(yuǎn)多于非零元素個(gè)數(shù)的矩陣。
1.矩陣的存儲方式
完全存儲方式:將矩陣的全部元素按列存儲。
稀疏存儲:只存儲矩陣的非零元素的值及其位置,即行號和列號。
2.稀疏存儲方式的產(chǎn)生
①完全存儲方式與稀疏存儲方式的轉(zhuǎn)換:
sparse函數(shù):將矩陣轉(zhuǎn)化為稀疏方式存儲。
full函數(shù):將矩陣按完全方式存儲。
②直接建立稀疏矩陣存儲:
sparse(m,n):生成一個(gè)m×n的所有元素都是零的稀疏矩陣。
sparse(u,v,S):其中u、v、S是三個(gè)等長的向量。s是要建立的稀疏存儲矩陣的非零元素,u(i)、v(i)分別是S(i)的行和列下標(biāo)。
spconvert(A):A為一個(gè)三列或四列矩陣,每行表示一個(gè)非零元素。A的第一列表示非零元素所在行號,第二列表示列號,第三列為非零元素實(shí)部,第四列為虛部。
③帶狀稀疏矩陣的存儲:稀疏矩陣有兩種基本類型(無規(guī)則結(jié)構(gòu)的稀疏矩陣與有規(guī)則結(jié)構(gòu)的稀疏矩陣)。而帶狀稀疏矩陣是指所有非零元素集中在對角線上的矩陣。例:
[B,d]=spdiags(A):從帶狀稀疏矩陣中提取全部非零對角線元素賦給矩陣B及其這些非零對角線的位置向量d。
A=spdiags(A):產(chǎn)生帶狀稀疏矩陣的稀疏存儲矩陣A,其中m、n為原帶狀稀疏矩陣的行列數(shù),B矩陣的第i列為原帶狀稀疏矩陣的第i條非零對角線,向量d為原帶狀稀疏矩陣所有非零對角線的位置。

專題三,程序流程控制

腳本文件:可在命令行窗口直接執(zhí)行的文件,也稱命令文件。M文件。
函數(shù)文件:定義一個(gè)函數(shù),不能直接執(zhí)行,而必須以函數(shù)調(diào)用的方式來調(diào)用它。利用function建立,例: function C = f2(A,B),C為輸出量,A、B為輸入量,f2必須與文件名相同。建立后可在窗口或其他M文件中調(diào)用。

一、順序結(jié)構(gòu)

(1)數(shù)據(jù)的輸入:input函數(shù),A=input(‘提示信息’)
(2)數(shù)據(jù)的輸出:disp(輸出項(xiàng))
(3)程序的暫停:pause(延遲秒數(shù)),若在執(zhí)行過程中強(qiáng)行終止程序,可以采用ctrl+c。
(4)步驟:
輸入原始數(shù)據(jù)
對原始數(shù)據(jù)進(jìn)行處理
輸出處理結(jié)果

二、選擇結(jié)構(gòu)

1.if語句
語句格式: if 條件(關(guān)系運(yùn)算或邏輯運(yùn)算,用以判斷)
語句組
end
單分支if語句:當(dāng)條件結(jié)果為標(biāo)量時(shí),非零表示條件成立,零表示條件不成立;
當(dāng)條件結(jié)果為矩陣時(shí),如果矩陣為非空,且不包含零元素,則條件成立,否則不成立。
雙分支if語句: if 條件
語句組
else
語句組
End

2.switch語句
switch 表達(dá)式
case 結(jié)果表1
語句組1
case 結(jié)果表2
語句組2

case 結(jié)果表m
語句組m
otherwise
語句組n
end

注意事項(xiàng):
①整個(gè)switch語句只會(huì)執(zhí)行一個(gè)語句組,當(dāng)多個(gè)條件均滿足時(shí),只執(zhí)行第一個(gè)遇見的條件,執(zhí)行后直接執(zhí)行switch語句之后的命令。
②采用switch進(jìn)行選擇,其值應(yīng)該是一個(gè)可列舉的表達(dá)式。
③case結(jié)果表為switch的取值,當(dāng)取多個(gè)時(shí),用單元數(shù)據(jù)表示。

三、循環(huán)結(jié)構(gòu)

1.for語句
格式:
for 循環(huán)變量 = 初值 :步長 :終值(不寫步長時(shí),默認(rèn)步長為1)
循環(huán)體語句
End
說明:
①for語句針對向量的每一個(gè)元素執(zhí)行一次循環(huán)體。
②退出循環(huán)之后,循環(huán)變量的值就是向量中最后的元素值。
③向量為空時(shí),循環(huán)體一次也不執(zhí)行。例:for i = 3: 1: 1。
蒙特卡洛法:以投點(diǎn)投入正切于正方形內(nèi)的單位圓的概率與投入正方形內(nèi)的概率之比作為π值。
for語句的循環(huán)變量也可以是一個(gè)列向量,格式:
for 循環(huán)變量 = 矩陣表達(dá)式(依次將各列元素賦給變量)
循環(huán)體語句
end
2.while語句
while 條件
循環(huán)體語句
end
while語句多用于循環(huán)次數(shù)不確定的情況,而對于循環(huán)次數(shù)確定的情況,使用for語句更方便。在一定程度上,兩種語句可以相互替代。
流程轉(zhuǎn)向語句:
break語句:跳出循環(huán),繼續(xù)執(zhí)行循環(huán)語句之后的程序,用于終值整個(gè)循環(huán)。
continue語句:結(jié)束本次循環(huán),開始下一次循環(huán)。

四、函數(shù)文件的定義與調(diào)用

function 輸出形參表 = 函數(shù)名(輸入形參表)
%%注釋說明(可寫,可不寫)
函數(shù)體語句
注意事項(xiàng):
①有多個(gè)形參時(shí),形參直接采用逗號分隔,組成形參表。當(dāng)輸出形參多余一個(gè)時(shí),應(yīng)用方括號括起來,構(gòu)成一個(gè)輸出矩陣。
②函數(shù)文件名(m文件名)最好與函數(shù)名相同,方便調(diào)用和存儲。不相同時(shí),MATLAB會(huì)忽略函數(shù)名,調(diào)用時(shí)采用函數(shù)文件名。
③return語句:結(jié)束執(zhí)行函數(shù)文件。
調(diào)用格式:
[輸出實(shí)參表(相當(dāng)于將結(jié)果賦給相應(yīng)的變量)] = 函數(shù)名(輸入實(shí)參表:相當(dāng)于對變量賦值)
函數(shù)在調(diào)用時(shí),函數(shù)實(shí)際輸入輸出的參數(shù)稱為實(shí)際參數(shù),簡稱實(shí)參。
注意事項(xiàng):
①實(shí)參的個(gè)數(shù),順序,格式等,應(yīng)與函數(shù)在定義時(shí)相應(yīng)的形參一致
匿名函數(shù):(用以定義函數(shù))
函數(shù)句柄變量 = @{匿名函數(shù)輸入?yún)?shù)}匿名函數(shù)表達(dá)式(多個(gè)輸入?yún)?shù)時(shí),逗號分隔)
函數(shù)句柄變量 = @函數(shù)名

五、函數(shù)的遞歸調(diào)用

一個(gè)函數(shù)調(diào)用它自身稱為遞歸調(diào)用(套娃)。
(1)直接遞歸調(diào)用
(2)間接遞歸調(diào)用
對要進(jìn)行遞歸的分段函數(shù)利用if語句進(jìn)行判斷,并且利用遞歸進(jìn)行循環(huán)求解。
text函數(shù):進(jìn)行驗(yàn)證
六、函數(shù)參數(shù)與變量的作用域
nargin函數(shù):輸入實(shí)參的個(gè)數(shù)
nargout函數(shù):輸出實(shí)參的個(gè)數(shù)
可以使一個(gè)函數(shù),完成不同的操作。
局部變量:在程序中只在特定過程或函數(shù)中可以訪問的變量。
全局變量:在MATLAB中全程有效,所有函數(shù)都可以對其調(diào)用。
定義格式:global 變量名

專題四,MATLAB繪圖

一、二維曲線

1.plot函數(shù)
用于繪制平面上的線性坐標(biāo)曲線,用線段將各數(shù)據(jù)點(diǎn)連接起來。
調(diào)用格式:
plot(x,y):x,y分別為對應(yīng)坐標(biāo)組成的向量。
x為向量,y為矩陣時(shí),需分情況:
①y的列數(shù)=x長度,則以x為橫坐標(biāo),y的每個(gè)行向量為縱坐標(biāo)繪制曲線,曲線數(shù)與y的行數(shù)相等。
②y的行數(shù)=x長度,則以x為橫坐標(biāo),y的每個(gè)列向量為縱坐標(biāo)繪制曲線,曲線數(shù)與y的列數(shù)相等。
③x、y為同型矩陣,以x、y對應(yīng)列元素分別繪制曲線,曲線條數(shù)對于列數(shù)。
plot(x1,y1,x2,y2…,xn,yn)其中每一向量對構(gòu)成一組數(shù)據(jù)點(diǎn)的橫、縱坐標(biāo),繪制n條曲線。
plot(x):當(dāng)x為實(shí)向量時(shí),則以元素的下標(biāo)為橫坐標(biāo),元素的值為縱坐標(biāo);當(dāng)x為復(fù)數(shù)向量,實(shí)部為橫坐標(biāo),虛部為縱坐標(biāo)。(complex函數(shù)可用于構(gòu)建虛數(shù),complex(x,y))
Plot(x,y,選項(xiàng)):用以確定線型、顏色、數(shù)據(jù)點(diǎn)標(biāo)記。(具體設(shè)置:課本P120)
2.fplot函數(shù)
fplot(f,lims,選項(xiàng)):其中f代表一個(gè)函數(shù),通常采用函數(shù)句柄形式;lims為x軸取值范圍(可以看做定義域),用[xmin,xmax]描述,默認(rèn)值為[-5,5]。選項(xiàng)與plot函數(shù)定義相同。
fplot(funx,funy,tlims,選項(xiàng)):funx、funy表示函數(shù),通常采用函數(shù)句柄的的形式(參照隱匿函數(shù))。tlims為參數(shù)的自變量取值范圍,[tmin,tmax]表述。
(可以用于繪制隱函數(shù)圖像,例:x、y均為t的函數(shù),則上式中funx、funy為相應(yīng)的x、y關(guān)于t的表達(dá)式,tlims就是t的取值范圍。)

二、繪制圖形的輔助操作

1.圖形標(biāo)注
①title:圖形標(biāo)題。
title(‘標(biāo)題內(nèi)容’):默認(rèn)位置是圖形上方中央;
title({‘第一行內(nèi)容’,’第二行內(nèi)容’}):要顯示兩行標(biāo)題時(shí),兩行內(nèi)容用大括號包括,中間逗號分隔。
使用LaTeX格式控制符輸出希臘字母等,詳情可以參見課本P125。
title(圖形標(biāo)題,屬性名,屬性值):color屬性,設(shè)置顏色,取值與plot函數(shù)相同,默認(rèn)為黑色;fontsize屬性,設(shè)置標(biāo)題字號,默認(rèn)字號為11。
②xlabel:x軸說明;ylabel:y軸說明
③text:x、y圖形說明
Text(x,y,說明):在坐標(biāo)(x,y)處輸出相應(yīng)的說明。
gtext(說明):文本隨鼠標(biāo)移動(dòng),單擊放置文本在該處。
④legend:圖例;legend(圖例1,圖例2,圖例3…,’location’,’eastoutside’),圖例間用逗號隔開,圖例順序要與plot函數(shù)繪制順序一致。location函數(shù)可以用于指定整個(gè)圖例框的位置。
2.坐標(biāo)控制
①axis函數(shù)
axis([xmin,xmax,ymin,ymax,zmin,zmax])
axis equal:縱、橫坐標(biāo)軸采用等長刻度。
axis square:產(chǎn)生正方形坐標(biāo)系。(默認(rèn)是矩形)
axis auto:使用坐標(biāo)軸的默認(rèn)設(shè)置。
axis off:取消坐標(biāo)軸,即不顯示。
axis on:顯示坐標(biāo)軸。
②grid函數(shù):給坐標(biāo)系加網(wǎng)格線。
grid on:顯示網(wǎng)格線。
grid off:隱藏網(wǎng)格線。
grid:用于切換現(xiàn)在網(wǎng)格線的狀態(tài)。
③box函數(shù):給坐標(biāo)系加邊框。(默認(rèn)有邊框線)
box on:顯示邊框。
box off:隱匿邊框。
box:切換現(xiàn)在邊框的狀態(tài)。
3.圖形保持
hold on:保持圖形不被刷新。
hold off:控制刷新圖形窗口。
hold:控制在兩種狀態(tài)間切換。
4.圖形窗口的分隔
subplot函數(shù):subplot(m,n,p),其中m和n指定將圖形窗口分成m行×n列個(gè)繪圖區(qū),p指定當(dāng)前活動(dòng)區(qū),區(qū)號按行優(yōu)先變化。后續(xù)的繪圖、更改坐標(biāo)系數(shù)據(jù)等命令僅作用于上述活動(dòng)區(qū)。(可不限于等分,可以任意分隔)

繪圖可增強(qiáng)數(shù)據(jù)的可視化效果。

三、 其他形式的二維圖形

1.對數(shù)坐標(biāo)圖
semilogx(x1,y1,選項(xiàng)1x2,y2,選項(xiàng)2,…):x為對數(shù)坐標(biāo),y為線性坐標(biāo)。
semilogy(x1,y1,選項(xiàng)1,x2,y2,選項(xiàng)2,…):y為對數(shù)坐標(biāo),x為線性坐標(biāo)R。
loglog(x1,y1,選項(xiàng)1,x2,y2,選項(xiàng)2,…):采用全對數(shù)坐標(biāo),即x、y均為對數(shù)坐標(biāo)。
2.極坐標(biāo)圖
polar(theta,rho,,選項(xiàng)):theta為極角,rho為極徑
3.統(tǒng)計(jì)圖
①條形圖:bar函數(shù)(垂直條形圖);barh函數(shù)(水平條形圖),兩者用法相同。
bar(y,style),其中y為數(shù)據(jù),(若y為向量,則以元素的值作為矩形條的高度,對于的下標(biāo)作為橫坐標(biāo);若y為矩陣,則以y的每一行元素組成一組,用行號作為橫坐標(biāo),分組繪制矩形條。)
選項(xiàng)style用于指定分組排列模式(‘grouped’,簇狀分組,默認(rèn)形式;’stacked’,堆積分組)。

②直方圖:hist函數(shù)(直角坐標(biāo)系下的直方圖),rose函數(shù)(極坐標(biāo)系下的直方圖)。
hist(y),參數(shù)y為向量,繪圖時(shí)將y中最大值和最小值的數(shù)值區(qū)間等分,并統(tǒng)計(jì)落在每個(gè)區(qū)間的元素個(gè)數(shù),以元素個(gè)數(shù)為高度繪制直方圖。
hist(y,x),x用于設(shè)置區(qū)間的劃分方式。若x為標(biāo)量,則統(tǒng)計(jì)參數(shù)劃分為x個(gè)小區(qū)間;若x為向量,則向量x中的每個(gè)數(shù)指定分組的中心值,x中元素的個(gè)數(shù)為數(shù)據(jù)分組數(shù)。x缺省時(shí),默認(rèn)按10個(gè)等分區(qū)間進(jìn)行統(tǒng)計(jì)。
rose(theta,x),其中向量theta用于確定每一區(qū)間與原點(diǎn)的角度,x用于指定區(qū)間劃分方式。x缺省時(shí),默認(rèn)按20個(gè)等分區(qū)間進(jìn)行統(tǒng)計(jì)。
③面積類圖形
pie(x,explode),參數(shù)x存儲待統(tǒng)計(jì)數(shù)據(jù)(通常x為向量,x的每一個(gè)元素對于一個(gè)扇形,每個(gè)扇形的覆蓋角度,反應(yīng)相對應(yīng)的x在總體中占的比重。),選項(xiàng)explode控制圖塊的顯示模式(與explode的非零值對應(yīng)的部分,將從圖形中分離出來,explode為與x同大小的向量,省略explode參數(shù)時(shí),圖形為一個(gè)完整的圓)。
area函數(shù):繪制面積圖,反應(yīng)多個(gè)數(shù)據(jù)系列累計(jì)變化的趨勢,使用方法同plot函數(shù)相同,只是將所得曲線的下方區(qū)域填充顏色。
④散點(diǎn)類圖形
scatter函數(shù):散點(diǎn)圖。
stairs函數(shù):階梯圖。
stem函數(shù):桿圖。
三者用法與plot函數(shù)相似,且三者相似,故選擇以scatter函數(shù)為例:
scatter(x,y,選項(xiàng),’filled’),x、y用于定位數(shù)據(jù)點(diǎn),選項(xiàng)用于指定線型、顏色、數(shù)據(jù)點(diǎn)標(biāo)記,省略時(shí)數(shù)據(jù)點(diǎn)為空心點(diǎn)。
⑤矢量類圖形
compass函數(shù):羅盤圖。
feather函數(shù):羽毛圖。
quiver函數(shù):箭頭圖,常用于繪制矢量場,箭頭方向?yàn)槭噶糠较?#xff0c;長短表征矢量大小。
三者用法與plot函數(shù)相似,且三者相似,以quiver函數(shù)為例:
quiver(x,y,u,v),其中(x,y)為矢量起點(diǎn),(u,v)為矢量終點(diǎn)。

四、三維曲線

1.plot3函數(shù)
plot3(x,y,z),其中參數(shù)x、y、z組成一組曲線的坐標(biāo)。

x、y、z一般為長度相等的向量;
當(dāng)為同型矩陣時(shí),則以x、y、z對應(yīng)列元素繪制曲線,曲線條數(shù)=矩陣列數(shù)。
當(dāng)參數(shù)中既有向量又有矩陣時(shí),向量的長度應(yīng)與矩陣相符(行向量的長度應(yīng)與矩陣列數(shù)相同,列向量的長度應(yīng)與矩陣行數(shù)相同。)
plot3(x1,y1,z1,x2,y2,z2…,xn,yn,zn),每一組x、y、z向量構(gòu)成一組數(shù)據(jù)坐標(biāo),繪制一條曲線,共繪制n條曲線。
plot3(x,y,z,選項(xiàng)),用于指定線型,顏色,標(biāo)記等。
2.fplot3函數(shù)
fplot3(funx,funy,funz,tilms)。
其中funx、funy、funz表示定義曲線x、y、z坐標(biāo)的函數(shù),通常采用函數(shù)句柄的形式。
tlims為參數(shù)函數(shù)自變量的取值范圍,用二元向量[tmin,tmax]描述,默認(rèn)范圍為[-5,5]。

五、三維曲面

繪制前需要先生成網(wǎng)格數(shù)據(jù),再調(diào)用相應(yīng)的(f)mesh函數(shù)和(f)surf函數(shù)繪制。
1.平面網(wǎng)格數(shù)據(jù)的生成
1)利用矩陣運(yùn)算生成
x = 2:6;
y = (3:8)’
X = ones(size(y))x;
Y = yones(size(x));
ones(size(A)):生成一個(gè)與A同大小的全1矩陣
2)利用meshgrid函數(shù)生成
[X,Y] = meshgrid(x,y):其中參數(shù)x,y為向量,存儲網(wǎng)格點(diǎn)坐標(biāo)的X,Y為矩陣。
x = 2:6;
y = (3:8)’
[X,Y] = meshgrid(x,y);
Z = randn(size(X));
plot3(X,Y,Z); %繪圖命令
grid on %顯示網(wǎng)格線
2.繪制三維曲面的函數(shù)
mesh(x,y,z,c):用于繪制三維網(wǎng)格圖
surf(x,y,z,c):用于繪制三維曲面圖,各線條間的補(bǔ)面,有顏色填充。
1)x,y,z為同型矩陣,其中x、y是網(wǎng)格坐標(biāo)矩陣,z是網(wǎng)格點(diǎn)上的高度矩陣,c用于指定在不同高度下的曲面顏色。c省略時(shí),默認(rèn)為定,即顏色的選擇正比于z坐標(biāo)。
2)當(dāng)參賽x,y省略時(shí),z矩陣的第二維(列)下標(biāo)當(dāng)做x軸坐標(biāo),第一維(行)下標(biāo)當(dāng)做y軸坐標(biāo)。
meshc函數(shù):帶等高線的三維網(wǎng)格曲面函數(shù)。(底面為等高線圖)
meshz函數(shù):帶底座的三維網(wǎng)格線曲面函數(shù)。(底面投影與上方曲面一一相連)
surfc函數(shù):具有等高線的曲面函數(shù)。
surfl函數(shù):具有光照效果的曲面函數(shù)。
繪制標(biāo)準(zhǔn)三維曲面:sphere函數(shù)、cylinder函數(shù)
[x,y,z] = sphere(n):產(chǎn)生三個(gè)n+1階的矩陣,可以生產(chǎn),圓心在原點(diǎn),半徑為1的球體,若,不帶輸出參數(shù),則直接繪制球面,輸入?yún)?shù)n決定了球面的圓滑程度,默認(rèn)值為20,越大越圓滑。
[x,y,z] = cylinder(R,n):R為存放柱面各個(gè)等間隔高度上的半徑,n表示,在圓柱圓周上的間隔點(diǎn)數(shù),默認(rèn)為20個(gè)。當(dāng)R為標(biāo)量時(shí),則生產(chǎn)圓柱面。
peaks函數(shù):可以用來生成繪圖數(shù)據(jù)矩陣,矩陣元素是按照多峰函數(shù)生成。在所考慮的區(qū)間中有多個(gè)局部極大值(峰值)的實(shí)值函數(shù)。調(diào)用:

peaks(n):參數(shù)為標(biāo)量n時(shí),生成n階方陣
peaks(V):參數(shù)為向量時(shí),帶入上述式子求z坐標(biāo)。
peaks(x,y):參數(shù)為網(wǎng)格坐標(biāo)矩陣時(shí),帶入上述式子求z坐標(biāo)。
peaks:默認(rèn)等分?jǐn)?shù)為48,即生成49階的多峰函數(shù),并直接繪制多峰函數(shù)曲面圖。
當(dāng)自變量有兩個(gè)時(shí):u,v,fsurf函數(shù)和fmesh函數(shù),繪制三維曲面:
fsurf(funx,funy,funz,uvlims)
fmesh(funx,funy,funz,uvlims)
其中,funx,funy,funz代表定義球面的坐標(biāo)函數(shù),常用句柄形勢調(diào)用(參照隱匿函數(shù))。uvlims為自變量的取值范圍,用四元向量[umin,umax,vmin,vmax]描述,默認(rèn)值為[-5,5,-5,5]。

六、圖形的修飾處理

1.視點(diǎn)處理
方位角:又稱旋轉(zhuǎn)角,是視點(diǎn)與原點(diǎn)連線在平面上的投影,與y軸負(fù)方向的夾角。正值表示逆時(shí)針,負(fù)值表示順時(shí)針。
(默認(rèn)值為-37.5°)
仰角:又稱視角,是視點(diǎn)與原點(diǎn)連線,與xoy平面的夾角,正值表示視點(diǎn)在xoy平面上方,負(fù)值表示在下方。(默認(rèn)值為30°)
view(az,el):設(shè)置視點(diǎn)的函數(shù),其中,az為方位角,el為仰角。
view(x,y,z):設(shè)置視點(diǎn)在笛卡爾坐標(biāo)系中的位置。
view(2):設(shè)置從二維平面觀察圖形,方位角為0°,仰角為90°。
view(3):設(shè)置從三維空間觀察圖形,均為默認(rèn)值。
2.色彩處理
1)顏色的向量表示:[R G B]
[0 0 1]藍(lán)色 [1 0 0]紅色 [0 1 0]綠色 [1 1 1]白色 [0 0 0]黑色
2)色圖(colormap)
為m行三列的矩陣,每一行都是R G B三元組,定義了一個(gè)包含m種顏色的色表。
內(nèi)建色圖為64行三列,默認(rèn)為parule色圖。
指定使用色圖: colormap 色圖名(例如hot)
也可以自定義色圖矩陣:

3)三維圖形表面著色,可以用shading函數(shù)改變著色方式,調(diào)用格式:
shading faceted:將每個(gè)網(wǎng)格片用其高度對應(yīng)的顏色進(jìn)行著色,網(wǎng)格線為黑色,這是系統(tǒng)默認(rèn)的著色方式。
shading flat:將每個(gè)網(wǎng)格片用同一個(gè)顏色進(jìn)行著色,且網(wǎng)格線也用相應(yīng)的顏色。
shading interp:在網(wǎng)格片內(nèi)采用顏色插值處理,得出的表面圖顯得最光滑。
3.圖形的剪裁處理
將圖形中需要剪裁部分的函數(shù)值設(shè)置為NaN,這樣在繪制時(shí)該部分就不會(huì)顯示出來,從而達(dá)到剪裁的目的。

七、交互式繪圖工具

1.“繪圖”選項(xiàng)卡

在工作區(qū)選定變量后,即可根據(jù)系統(tǒng)識別繪制圖形。
若選中多個(gè)變量,以先選中的變量作為橫坐標(biāo),后選中的變量作為縱坐標(biāo)。(也可以根據(jù)切換變量順序按鈕進(jìn)行切換)
2.繪圖工具
①可以單擊繪圖窗口的“顯示繪圖工具和??繄D形”按鈕
②也可以在命令行中輸入命令:plottools

1)圖形選項(xiàng)板:用于在圖形窗口中添加和排列子圖,觀察和選擇繪圖數(shù)據(jù),以及添加標(biāo)注和注釋。
2)繪圖瀏覽器:以圖例的方式列出了圖形中的元素。
3)屬性編輯器:用于觀測和設(shè)置所選對象的名稱,顏色填充,標(biāo)記形狀等。

專題五,數(shù)據(jù)分析與多項(xiàng)式計(jì)算

一、數(shù)據(jù)統(tǒng)計(jì)分析

1.求矩陣的最大元素與最小元素
max函數(shù):求向量或矩陣的最大元素。
min函數(shù):求向量或矩陣的最小元素。
兩函數(shù)的調(diào)用格式相同,以max函數(shù)為例:
①當(dāng)參數(shù)為向量時(shí):
y=max(X):返回向量X的最大值賦給y,如果X中包含復(fù)數(shù),則按模最大取。
[y,k]=max(X):返回向量X的最大值賦給y,最大值元素序號存入k,如果X中包含復(fù)數(shù),則按模最大取。
②當(dāng)參數(shù)為矩陣時(shí):
B=max(A):返回一個(gè)行向量B,向量的第i個(gè)元素,是矩陣A第i列的最大值。
[Y,U]=max(A):返回行向量Y和U,Y向量記錄A的每列的最大值,U向量記錄每列最大元素的行號。
max(A,[],dim):dim=1,作用同max(A);當(dāng)dim=2時(shí),按行取最大值,返回一個(gè)列向量,第i個(gè)元素,是矩陣A第i行的最大值。
max(max(A)):連續(xù)調(diào)用兩次max函數(shù)即可獲得矩陣的最大值元素。
2.求矩陣的平均值和中值
平均值容易受極端數(shù)據(jù)影響,在某些情況下,中值更能反應(yīng)平均水平。
mean函數(shù):求算數(shù)平均值。 median:求中值。 (調(diào)用同max函數(shù))
3.求和與求積
sum函數(shù):求和; prod函數(shù):求積。(相當(dāng)于求階乘)
Cumsum:求累加和; cumprod:求累乘積。(相當(dāng)于求階乘向量)
(調(diào)用格式同max函數(shù))

4.標(biāo)準(zhǔn)差與相關(guān)系數(shù)
①樣本標(biāo)準(zhǔn)差: 總體標(biāo)準(zhǔn)差:
std函數(shù):計(jì)算標(biāo)準(zhǔn)差,調(diào)用格式如下:
std(X):計(jì)算向量X的標(biāo)準(zhǔn)差。
std(A):計(jì)算矩陣A各列的標(biāo)準(zhǔn)差。
std(A,flag,dim):flag=0時(shí),計(jì)算樣本標(biāo)準(zhǔn)差;當(dāng)flag=1時(shí),計(jì)算總體標(biāo)準(zhǔn)差。dim=1,按列計(jì)算;dim=2,按行計(jì)算。默認(rèn):flag=0,dim=1。
②相關(guān)系數(shù):,取值范圍:[-1,1],絕對值越接近于1數(shù)據(jù)相關(guān)性越高,越接近于0,相關(guān)性越差。
corrcoef函數(shù):求相關(guān)系數(shù),調(diào)用格式如下:
corrcoef(A):返回由矩陣A所形成的一個(gè)系相關(guān)系數(shù)矩陣,其中第i行第j列的元素表示矩陣A中第i列和第j列的相關(guān)系數(shù)。
corrcoef(X,Y):X、Y為向量,與corrcoef([X,Y])作用相同,用于求X、Y向量間的相關(guān)系數(shù)。
(應(yīng)用舉例:銷售數(shù)據(jù)與分配方案的相關(guān)系數(shù)越接近于1.則方案越合理。)
5.排序
sort函數(shù):用于排序,調(diào)用格式如下:
sort(X):對向量X按升序排列。
[Y,L]=sort(A,dim,mode):dim是指按行排序還是按列。mode分為兩種,ascend,則按升序排序;descend,則按降序排序。默認(rèn)升序,輸出參數(shù)中,Y為排序后矩陣,而L中記錄Y中相應(yīng)元素在A 中的位置。

二、多項(xiàng)式計(jì)算

1.多項(xiàng)式的表示
多項(xiàng)式以變量前的常數(shù)組成向量表示,向量的排序是按次數(shù)的從高到低,若缺少該次項(xiàng),則向量中相應(yīng)位置元素為0,不可省略,且要記錄常數(shù)項(xiàng)。
2.多項(xiàng)式的四則運(yùn)算
conv(P1,P2):兩多項(xiàng)式相乘。
[Q,r]=deconv(P1,P2):兩多項(xiàng)式相除,Q返回P1除以P2 的商式,r返回余式。
(在多項(xiàng)式除法P(x)/Q(x)運(yùn)算中,如果P(x)可以表示成Q(x)*S(x)+R(x)的形式(其中S(x)、R(x)為整式),那么S(x)叫該除法式中的商式;R(x)就是余式。)
則有:P1 = conv(Q,P2)+ r成立
3.多項(xiàng)式的求導(dǎo)
polyder函數(shù):多項(xiàng)式求導(dǎo)函數(shù),調(diào)用格式如下:
p = polyder(P):求多項(xiàng)式P的導(dǎo)函數(shù)。
p = polyder(P,Q):求P·Q的導(dǎo)函數(shù)。
[p,q] = polyder(P,Q):求 P/Q的導(dǎo)函數(shù),導(dǎo)函數(shù)分子存入P,分母存入q。
4.多項(xiàng)式的求值
polyval(p,x):p為多項(xiàng)式,x為多項(xiàng)式的自變量取值。x為標(biāo)量時(shí),求得p在該點(diǎn)的值;x為向量或矩陣時(shí),則多向量或矩陣中每個(gè)元素求p對應(yīng)的值。
ployvalm(p,x):函數(shù)要求x為方陣,以方陣為自變量(即以整體為自變量,變?yōu)榫仃囘\(yùn)算,不再按矩陣內(nèi)單個(gè)元素一一計(jì)算,與上式并不同)求多項(xiàng)式值。
5.多項(xiàng)式求根
roots(p):求多項(xiàng)式的根系數(shù)向量p。
p=poly(x):在已知全部根的條件下,可以反求多項(xiàng)式。
求兩多項(xiàng)式交點(diǎn):p = p1 - p2,roots(p)

三、數(shù)據(jù)插值

interp1函數(shù):一維插值函數(shù),調(diào)用:y1 = interp1(x,y,x1,method),即根據(jù)x、y的值,計(jì)算含稅在x1處的值,賦給y1。X1是一個(gè)向量或標(biāo)量,表示要插值的點(diǎn)。
其中,method的4種方法:
①linear:線性插值,也是默認(rèn)方法。將與插值點(diǎn)相近的兩數(shù)據(jù)點(diǎn)用直線連接,然后再直線上選取對應(yīng)的插值點(diǎn)數(shù)據(jù)。
②nearest:最近點(diǎn)插值。選擇最近樣本點(diǎn)的值作為插值數(shù)據(jù)。
③pchip:分段3次埃爾米特插值。采用分段三次多項(xiàng)式,除滿足插值條件,還需滿足在若干節(jié)點(diǎn)處相鄰段插值函數(shù)的一階導(dǎo)數(shù)相等,使得曲線光滑的同時(shí),還具有保型性。
④spline:3次樣條插值。每個(gè)分段內(nèi)構(gòu)造一個(gè)三次多項(xiàng)式,使插值函數(shù)除滿足插值條件外,還要求在各節(jié)點(diǎn)處有連續(xù)一階二階導(dǎo)數(shù)。即進(jìn)一步提高曲線的光滑性。

四、曲線擬合

功能:數(shù)據(jù)估算,趨勢預(yù)測,規(guī)律總結(jié)。擬合前要三性審查,必要時(shí)可分段擬合。
polyfit函數(shù):求得最小二乘擬合多項(xiàng)式系數(shù),進(jìn)一步得到擬合函數(shù)。調(diào)用如下:
P=polyfit(X,Y,m)
[P,S] = polyfit(X,Y,m)
[P,S,mu] = polyfit(X,Y,m)
根據(jù)樣本數(shù)據(jù)X、Y,產(chǎn)生一個(gè)m次多項(xiàng)式P及其采樣點(diǎn)誤差數(shù)據(jù)S,mu是一個(gè)二元向量,mu(1)= mean(X),mu(2)= std(X)。
樣本數(shù)據(jù)為精確數(shù)據(jù),適用于插值;樣本為統(tǒng)計(jì)數(shù)據(jù)誤差較大,適用于曲線擬合。

專題六,數(shù)值微積分與方程求解

一、數(shù)值微分與數(shù)值積分

1.數(shù)值微分
①數(shù)值差分與差商
極限:
以h為步長的差分:

當(dāng)步長h充分小時(shí),得到f(x)在x0點(diǎn)處以h為步長的差商:

②數(shù)值微分的實(shí)現(xiàn)
diff函數(shù):求向前差分,調(diào)用如下:
dx = diff(x):計(jì)算向量x的一階向前差分,dx(i)= x(i+1)- x(i),i=1,2,3…,n-1。
dx = diff(x,n):計(jì)算向量的n階向前差分,例:diff(x,2)=diff(diff(x))
dx = diff(A,n,dim):計(jì)算矩陣A的n階差分。dim=1,按列;dim=2,按行。計(jì)算的是向量元素間的差分,故最后的結(jié)果向量元素,比原向量少1(個(gè)/行/列)。
計(jì)算差分之后,可以用f(x)在某點(diǎn)處的差商,作為其導(dǎo)數(shù)的近似值。

2.數(shù)值積分
①基于自適應(yīng)辛普森法:
[l,n] = quad(filename,a,b,tol,trace)
②基于自適應(yīng)Gauss-Lobatto法:
[l,n] = quadl(filename,a,b,tol,trace)
其中:filename是被積函數(shù)名;a,b為定積分的上下限,積分限[a,b]必須是有限的,不能為無窮大(inf);tol用于控制積分精度,默認(rèn)值為10-6;trace控制是否展現(xiàn)積分過程,非0展現(xiàn),0則不展現(xiàn),默認(rèn)trace = 0;返回參數(shù)l為定積分的值,n為被積函數(shù)的調(diào)用次數(shù)。
③基于全局自適應(yīng)積分法:
l = integral(filename,a,b)
其中l(wèi)是計(jì)算得到的積分值,a、b為上下限,可以是inf(無窮大)。
④基于高斯-克朗羅德法:
[l,err] = quadgk(filename,a,b)
其中,err返回近似誤差范圍,其他參數(shù)的含義和用法與quad函數(shù)相同。積分上下限可以是無窮大(inf),也可以是復(fù)數(shù)。當(dāng)積分上下限為復(fù)數(shù)時(shí),quadgk函數(shù)在復(fù)平面上求積分。
⑤基于梯形積分法:
應(yīng)用于在函數(shù)關(guān)系表達(dá)式未知,僅由一組測定的樣本點(diǎn)數(shù)據(jù)值時(shí)
l = trapz(x,y),其中(xi,yi)(i=1,2,3…,n),且a=x1<x2<…<xn=b,且y=f(x)
⑥求高階積分:
I = quad2d(filename,a1,b1,a2,b2)
I = integral3(filename,a1,b1,a2,b2,a3,b3)

二、線性方程組求解

1.直接法
在不考慮舍入誤差的情況下,通過有限步的矩陣初等運(yùn)算,求得方程組精確解。
①列主元消去法:利用左除運(yùn)算符計(jì)算,,但若矩陣為奇異或接近奇異時(shí)(即,行列式值為0),則MATLAB會(huì)出錯(cuò)。
②矩陣分解求解線性:方程組:將給定矩陣分解為若干特殊矩陣的乘積。
[L,U] = lu(A):產(chǎn)生一個(gè)上三角矩陣U和變換形式的下三角陣L,使之滿足A=LU。這里的A必須是方陣。
[L,U,P] = lu(A):產(chǎn)生上、下三角陣U、L,以及一個(gè)置換矩陣P,使PA=LU成立,且A為方陣。
2.迭代法
給定一個(gè)解的初始值,然后按照一定的迭代算法,進(jìn)行逐步逼近,求出精確解。
(需要考慮算法的收斂性)
①雅克比迭代法
②高斯-賽德爾迭代法

三、非線性方程求解與極值計(jì)算

函數(shù)極值計(jì)算實(shí)際上是一個(gè)最優(yōu)化問題計(jì)算,如:路徑最短,能量最小等。
1.非線性方程數(shù)值求解
(1)單變量非線性方程,調(diào)用格式:
X = fzero(filename,x0):其中filename是待求根方程左端的函數(shù)表達(dá)式,x0是迭代初值。(初值的選取在一定程度上決定了結(jié)果的正確性,fzero執(zhí)行的是一個(gè)數(shù)值搜索過程,搜索的結(jié)果依賴于函數(shù)特性和指定的初值)
(2)非線性方程組的求解,調(diào)用格式:
X = fsolve(filename,x0,option):其中,X為返回近似解,其中filename是待求根方程左端的函數(shù)表達(dá)式,x0是初值,option用于設(shè)置優(yōu)化工具箱的優(yōu)化參數(shù),可以調(diào)用optimset函數(shù)來完成。
多角度選擇和分析是很有必要的。
2.函數(shù)極值計(jì)算
MATLAB中只求極小值,若要求f(x)極大值,可以通過求-f(x)的極小值得到。
求線性函數(shù)極小值問題屬于最優(yōu)化問題,進(jìn)而分為有無約束情況。
(1)無約束最優(yōu)化問題
[xmin,fmin] = fminbnd(filename,x1,x2,option):求一元函數(shù)在x1到x2的開區(qū)間內(nèi)的極小值點(diǎn)xmin,和最小值fmin;x1,x2表征被研究區(qū)域的左右邊界。
[xmin,fmin] = fminsearch(filename,x0,option):基于單純形算法,求多元函數(shù)的極小值點(diǎn)xmin,和最小值fmin;x0是一個(gè)向量,表示極值點(diǎn)的初值。
[xmin,fmin] = fminunc(filename,x0,option):基于擬牛頓法求多元函數(shù)的極小值點(diǎn)xmin,和最小值fmin;x0是一個(gè)向量,表示極值點(diǎn)的初值。
Option為優(yōu)化參數(shù),可以通過optimset函數(shù)來設(shè)置。
例:option=optimset(‘Display’,’off’)
(2)有約束的最優(yōu)化問題
約束條件細(xì)化為:①線性不等式約束②線性等式約束③非線性不等式約束④非線性等式約束⑤x的上界和下界
[xmin,fmin] = fmincon(filename,x0,A,b,Aeq,beq,Lbnd,Ubnd,NonF,option)
前部與先前函數(shù)相同部分意義和用法相同,后部為不同種約束條件,當(dāng)約束不存在時(shí),用空矩陣表示。

四、常微分方程數(shù)值求解

求解常微分方程初值問題就是尋找函數(shù)y(t)使之滿足如下方程:

數(shù)值解法,就是求y(t)在離散節(jié)點(diǎn)tn處的函數(shù)近似值yn的方法,yn≈y(xn)。這些近似值稱為常微分方程的數(shù)值解,相鄰兩個(gè)節(jié)點(diǎn)之間的距離,稱為步長。
單步法:在計(jì)算yn+1時(shí),只用到前一步的yn,因此在有了初值之后,就可以逐步往下計(jì)算,其代表是龍格-庫塔法。
多步法:在計(jì)算yn+1時(shí),除用到前一步的yn值外,還要用到y(tǒng)n-p(p=1,2,…,k,k>0)的值,即前面的k步,其代表是亞當(dāng)斯法。
[t,y] = solver(filename,tspan,y0,option)
其中,t、y分別給出時(shí)間向量和相應(yīng)的數(shù)值解;solver為求常微分方程數(shù)值解的函數(shù);filename是定義f(t,y)的函數(shù)名,該函數(shù)必須返回一個(gè)列向量;tapan形式為[t0,t1]表示求解區(qū)間;y0是初始狀態(tài)向量;option是可選參數(shù),應(yīng)用與設(shè)置求解屬性,常用屬性為相對誤差值,默認(rèn)值為10-3;絕對誤差值,默認(rèn)值為10-6。

總結(jié)

以上是生活随笔為你收集整理的关于MATLAB的学习记录(纯入门用)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。