目錄
1、方陣的行列式計(jì)算
2、累加和與累乘積
(1)累加和
(2)累乘積
3、對(duì)于數(shù)據(jù)進(jìn)行排序
4、求矩陣的秩
5、矩陣的跡
6、計(jì)算矩陣的特征值和特征向量
1、方陣的行列式計(jì)算
在線性代數(shù)中,對(duì)于一個(gè)方陣進(jìn)行求值運(yùn)算需要先將其轉(zhuǎn)換為行列式,MATLAB中提供過了det函數(shù)用于對(duì)于方陣的行列式進(jìn)行求值運(yùn)算,最后計(jì)算得到轉(zhuǎn)換后的行列式的值。
例如:
A=[3,4,8;5,1,9;10,12,4];
B=det(A)
計(jì)算得到結(jié)果為368。
需要注意的是,計(jì)算的矩陣必須是一個(gè)方陣,否則程序會(huì)報(bào)錯(cuò)。
2、累加和與累乘積
在數(shù)據(jù)處理中,經(jīng)常需要對(duì)于所有數(shù)據(jù)進(jìn)行累加和以及累乘積進(jìn)行運(yùn)算,下面計(jì)算在MATLAB對(duì)于累加和與累乘積分別進(jìn)行說明。
(1)累加和
在MATLAB中,第i個(gè)元素的累加和指的是從所有數(shù)據(jù)的第一個(gè)開始到第i個(gè)元素結(jié)束,所有元素的累加之和。假設(shè)第i個(gè)元素的累加和為,前面的數(shù)據(jù)為,那么可以推導(dǎo)出公式如下所示:
MATLAB中提供了comsum函數(shù)計(jì)算從第1個(gè)元素到第i個(gè)元素的累加和,調(diào)用格式如下所示(其中V表示向量,A表示矩陣):
- cumsum(V):求解向量V的累加和。
- cumsum(A):如果原矩陣是一個(gè)m行n列的矩陣,那么cumsum(A)函數(shù)返回一個(gè)m行n列的矩陣,矩陣的第i行第j列元素計(jì)算的是原矩陣的第j列從第1行元素到第i行元素的累加和。
- cumsum(A,num):當(dāng)num=1時(shí),效果與cumsum(A)相同,如果原矩陣是一個(gè)m行n列的矩陣,那么cumsum(A,1)函數(shù)返回一個(gè)m行n列的矩陣,矩陣的第i行第j列元素計(jì)算的是原矩陣的第j列從第1行元素到第i行元素的累加和。當(dāng)num=2時(shí),如果原矩陣是一個(gè)m行n列的矩陣,那么cumsum(A,2)函數(shù)返回的是一個(gè)m行n列的矩陣,矩陣的第i行第j列元素計(jì)算的是原矩陣的第i行從第1列元素到第j列元素的累加和。
- cumsum(A(:)):計(jì)算矩陣中第1個(gè)元素到該元素位置的所有元素的累加和,計(jì)算順序是從第一列的每一行進(jìn)行累加,當(dāng)?shù)谝涣腥肯嗉又?,第二列再進(jìn)行相加……最后一個(gè)元素即為矩陣中所有元素的累加和。
例如計(jì)算一個(gè)向量各個(gè)元素的累加和:
V=[2,3,4,5,6,4,6];
x=cumsum(V)
運(yùn)行結(jié)果如下所示:
x =
2 5 9 14 20 24 30
計(jì)算一個(gè)矩陣中每一列的元素的從第1行的元素到對(duì)應(yīng)行的元素的累加和。
A=[3,4,5,7;4,9,10,13;13,10,11,24];
x=cumsum(A)
運(yùn)行之后的結(jié)果如下所示:
x =
3 4 5 7
7 13 15 20
20 23 26 44
假設(shè)原矩陣是一個(gè)m行n列的矩陣,計(jì)算矩陣每一行從第1列元素開始到第j列元素的累加和以及計(jì)算矩陣每一列從第1行到第i行的累加和:
A=[3,4,5,7;4,9,10,13;13,10,11,24];
x=cumsum(A,1)
y=cumsum(A,2)
運(yùn)行結(jié)果如下所示:
x =
3 4 5 7
7 13 15 20
20 23 26 44
y =
3 7 12 19
4 13 23 36
13 23 34 58
計(jì)算矩陣中所有元素的累加和:
A=[32,4,16,20;31,24,15,19;10,12,18,22;41,22,20,26];
x=cumsum(A(:))
運(yùn)算結(jié)果如下所示:
x =
32
63
73
114
118
142
154
176
192
207
225
245
265
284
306
332
通過上面的結(jié)果可以看出,該矩陣的累加和為332。
(2)累乘積
在MATLAB中,第i個(gè)元素的累乘積指的是從所有數(shù)據(jù)的第一元素開始到第i個(gè)元素結(jié)束,所有元素的累乘之積。假設(shè)第i個(gè)元素的累乘積為,前面的數(shù)據(jù)為,那么可以推導(dǎo)出公式如下所示:
MATLAB中提供了cumprod函數(shù)對(duì)于計(jì)算從第i個(gè)元素到第i個(gè)元素的累乘積,調(diào)用格式如下所示(其中v表示向量,A表示矩陣):
- cumprod(V):求解向量V的累乘積。
- cumprod(A):如果原矩陣是一個(gè)m行n列的矩陣,那么cumprod(A)函數(shù)返回一個(gè)m行n列的矩陣,矩陣的第i行第j列元素計(jì)算的是原矩陣的第j列從第1行元素到第i行元素的累乘積。
- cumprod(A,num):當(dāng)num=1時(shí),效果與cumprod(A)相同,如果原矩陣是一個(gè)m行n列的矩陣,那么cumprod(A,1)函數(shù)返回一個(gè)m行n列的矩陣,矩陣的第i行第j列元素計(jì)算的是原矩陣的第j列從第1行元素到第i行元素的累乘積。當(dāng)num=2時(shí),如果原矩陣是一個(gè)m行n列的矩陣,那么cumprod(A,2)函數(shù)返回的是一個(gè)m行n列的矩陣,矩陣的第i行第j列元素計(jì)算的是原矩陣的第i行從第1列元素到第j列元素的累乘積。
- cumpord(A(:)):計(jì)算矩陣中第1個(gè)元素到該元素位置的所有元素的累乘積,計(jì)算順序是從第一列開始,每一行進(jìn)行累乘,當(dāng)?shù)谝涣腥肯喑酥?,第二列再進(jìn)行相乘……最后一個(gè)元素即為矩陣中所有元素的累乘積。
例如計(jì)算一個(gè)向量各個(gè)元素的累乘積:
V=[2,1,3,4,5,2,3];
x=cumprod(V)
運(yùn)行結(jié)果如下所示:
x =
2 2 6 24 120 240 720
計(jì)算一個(gè)矩陣中每一列的元素的從第1行元素到對(duì)應(yīng)元素的累乘積:
A=[3,4,5,6;6,2,1,2;4,3,2,1];
x=cumprod(A)
運(yùn)行結(jié)果如下所示:
x =
3 4 5 6
18 8 5 12
72 24 10 12
假設(shè)原矩陣是一個(gè)m行n列的矩陣,計(jì)算矩陣每一行從第1列元素開始到第j列元素的累乘積以及計(jì)算矩陣每一列從第1行元素開始到第i行元素結(jié)束的累乘積:
A=[3,4,5,7;4,9,10,13;13,10,11,24];
x=cumprod(A,1)
y=cumprod(A,2)
運(yùn)行結(jié)果如下所示:
x =
3 4 5 7
12 36 50 91
156 360 550 2184
y =
3 12 60 420
4 36 360 4680
13 130 1430 34320
計(jì)算矩陣中所有元素的累乘積:
A=[2,3,6;8,5,2;9,11,12];
x=cumprod(A(:))
運(yùn)行結(jié)果如下所示:
x =
2
16
144
432
2160
23760
142560
285120
3421440
在上面的運(yùn)算結(jié)果中,最后一個(gè)元素3421440即為矩陣中所有元素的乘積。
3、對(duì)于數(shù)據(jù)進(jìn)行排序
在進(jìn)行數(shù)據(jù)處理的時(shí)候,經(jīng)常需要對(duì)于數(shù)據(jù)進(jìn)行排序操作,因此編寫程序的時(shí)候序號(hào)對(duì)數(shù)據(jù)進(jìn)行排序,例如在數(shù)據(jù)結(jié)構(gòu)就有十大經(jīng)典排序算法。同樣在MATLAB中也提供了sort函數(shù)對(duì)于數(shù)據(jù)進(jìn)行排序操作。
sort函數(shù)返回的是一個(gè)新的矩陣,默認(rèn)情況下是從小到大排序的。
- sort(V):對(duì)于向量V進(jìn)行排序,返回的結(jié)果是已經(jīng)從小到大排序好的向量。
- sort(A):對(duì)于矩陣的每一列的元素進(jìn)行排序,返回的是每一列的元素從小到大排序好的矩陣。
- sort(A,num):當(dāng)num=1的時(shí)候,該效果與sort(A)相同,返回的是每一列的元素從小到大排序的好的矩陣;當(dāng)num=2的時(shí)候,對(duì)于矩陣的每一行進(jìn)行排序,返回的結(jié)果是每一行的元素從小到大排序好的矩陣。
- sort(A(:)):返回一個(gè)列向量,該向量是矩陣所有元素的從小到大依次排序。
例如,下面利用sort函數(shù)對(duì)于向量進(jìn)行排序:
V=[34,23,6,41,65,32,7,53];
V=sort(V)
運(yùn)算后的結(jié)果如下所示:
V =
6 7 23 32 34 41 53 65
可以看到利用sort函數(shù)對(duì)于向量進(jìn)行排序之后向量V變成了各個(gè)元素從小到大依次排列好的向量。
再例如,利用sort函數(shù)對(duì)于矩陣每一列進(jìn)行排序:
A=[2,5,3;6,10,7;4,9,11;12,4,3];
sort(A)
運(yùn)行結(jié)果如下所示:
ans =
2 4 3
4 5 3
6 9 7
12 10 11
通過上面的運(yùn)算結(jié)果可以看出,sort函數(shù)對(duì)于矩陣的每一列的元素進(jìn)行從小到大的排序。
再例如利用sort函數(shù)分別對(duì)矩陣的每一行和每一列進(jìn)行排序:
A=[2,5,3;6,10,7;4,9,11;12,4,3];
x=sort(A,1)
y=sort(A,2)
運(yùn)行結(jié)果如下所示:
x =
2 4 3
4 5 3
6 9 7
12 10 11
y =
2 3 5
6 7 10
4 9 11
3 4 12
通過上面的運(yùn)算結(jié)果可以看出,分別當(dāng)sort(A,num)的num為1或者2時(shí),是分別對(duì)于矩陣的列和行進(jìn)行排序。
利用sort函數(shù)對(duì)于矩陣的所有元素進(jìn)行排序:
A=[2,3,6;8,5,2;9,11,12];
sort(A(:))
運(yùn)行結(jié)果如下所示:
ans =
2
2
3
5
6
8
9
11
12
通過運(yùn)行結(jié)果可以看出來,通過sort(A(:))返回的是一個(gè)列向量,可以對(duì)于矩陣的所有元素進(jìn)行排序。
4、求矩陣的秩
矩陣的秩是在對(duì)于矩陣求線性相關(guān)性以及線型方程組的解等問題的一個(gè)重要的工具,定義如下:矩陣的秩是線性代數(shù)中的一個(gè)概念。在線型代數(shù)中,一個(gè)矩陣A的列秩是線型獨(dú)立的縱列的極大數(shù),行秩是矩陣的線性無關(guān)的橫行極大數(shù)目。即如果把矩陣看成了一個(gè)個(gè)行向量或者列向量,秩就是這些行向量和列向量的秩,也就是極大無關(guān)組中所含向量的個(gè)數(shù)。(本段定義來自百度百科矩陣的秩)
在我們實(shí)際運(yùn)算的過程中,一般的運(yùn)算方式是將矩陣轉(zhuǎn)換為行階梯型矩陣,計(jì)算整行中不是全部為0的行的個(gè)數(shù),該個(gè)數(shù)即為矩陣的秩。
而在MATLAB提供了rank函數(shù)用于對(duì)于矩陣的秩進(jìn)行計(jì)算,例如:
A=[1,2,3;2,4,6;8,4,7];
rA=rank(A)
B=[23,6,5;6,3,11;7,13,12];
rB=rank(B)
運(yùn)算結(jié)果如下所示:
rA =
2
rB =
3
通過上面的運(yùn)算結(jié)果顯示,A矩陣的秩為2,B矩陣的秩為3,A和B都是三階矩陣,通過對(duì)于矩陣的秩的計(jì)算可以得到A是一個(gè)滿秩矩陣,而B是一個(gè)不滿秩矩陣。
5、矩陣的跡
對(duì)于方陣A來說,方陣對(duì)角線上所有對(duì)角線之和稱為矩陣的跡,即為tr(A),顯然矩陣的跡的計(jì)算方式為:
?在MATLAB中,提供了trace函數(shù)計(jì)算矩陣的跡。例如:
A=[4,5,3;7,5,3;9,11,3];
B=trace(A)
運(yùn)算結(jié)果如下所示:
B =
12
6、計(jì)算矩陣的特征值和特征向量
特征值的概念是由法國(guó)科學(xué)家拉普拉斯在19世紀(jì)為研究天體力學(xué)、地球力學(xué)的時(shí)候所引進(jìn)的概念,在實(shí)際應(yīng)用中矩陣的特征值的應(yīng)用十分廣泛。
假設(shè)A是一個(gè)n階的矩陣,如果數(shù)和n維非零向量x滿足下面的條件:
?那么是方陣A的特征值,非零向量x稱為方陣A的對(duì)應(yīng)特征值的特征向量。
上面的公式同樣可以寫成形式:
上面的式子有非零解的條件是:
同樣也可以寫成如下形式:?
?在MATLAB中提供了eig函數(shù)計(jì)算矩陣的特征向量和特征值,調(diào)用的格式如下所示:
- e=eig(A):e是一個(gè)列向量,計(jì)算矩陣A中的所有的特征值。
- [V,R]=eig(A):R是矩陣A的特征值構(gòu)成的對(duì)角矩陣,對(duì)角陣R上的元素是矩陣A的所有特征值,而V是A各列相應(yīng)的特征向量。
利用MATLAB的eig函數(shù)計(jì)算矩陣的特征值,例如:
A=[0,1,1;1,0,1;1,1,0];
B=[4,5,5;3,6,7;8,9,4];
e1=eig(A)
e2=eig(B)
結(jié)果如下所示:
e1 =
-1.0000
-1.0000
2.0000
e2 =
17.0296
0.6537
-3.6832
再例如:
A=[12,16,8;9,23,11;24,18,4]
[V,D]=eig(A)
?運(yùn)行結(jié)果如下所示:文章來源:http://www.zghlxwxcb.cn/news/detail-420786.html
V =
-0.4994 -0.4102 -0.1379
-0.6110 0.5782 -0.3173
-0.6143 -0.7053 0.9382
D =
41.4154 0 0
0 3.1994 0
0 0 -5.6149
通過上面的內(nèi)容可以看出矩陣A的特征值分別為41.4154、3.1994、-5.6149,而矩陣V是矩陣A各列的特征向量。文章來源地址http://www.zghlxwxcb.cn/news/detail-420786.html
到了這里,關(guān)于MATLAB中對(duì)方陣行列式的求解、矩陣的累加和與累乘積進(jìn)行求解、矩陣的排序、矩陣的秩和跡、以及矩陣的特征值和特征向量的求解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!