它取決於運算符或函數以及以下操作數:當函數以矩陣作為其輸入參數,輸出參數是給定s i z e的標量或向量時,輸出參數的格式總是返回到完整的矩陣形式,如命令s i z e .
當函數以標量或向量作為輸入參數,輸出參數為矩陣時,輸出參數的格式總是返回全矩陣,比如命令e y e,還有壹些特殊的命令可以得到稀疏矩陣,比如命令Spreye。
對於其他只有壹個參數的函數,返回的結果通常與參數的形式相同,比如d i a g。
對於雙參數運算或函數,如果兩個參數的形式相同,將返回相同形式的結果。如果兩個參數的形式不同,除非需要運算,否則將以全矩陣的形式給出結果。
兩個矩陣[A B]的群和,如果A或B中至少有壹個是全矩陣,則結果是全矩陣。
表達式右側的冒號是壹個需要壹個參數的運算符。遵守這些操作規則。
表達式左側的冒號不會改變矩陣的形式。假設:
這是壹個5×5單位全矩陣和相應的稀疏矩陣。
(a) C = 5*B,結果是:
這是壹個稀疏矩陣。
(b) D = A+B,結果是:
這是壹個全矩陣。
(c) x = B \ h,結果是:
這是壹個完整的矢量。
有許多命令可以對非零元素進行操作。
命令集8 9矩陣的非零元素
N n z (A)求矩陣A中非零元素的個數,既可以求全矩陣,也可以求稀疏矩陣。
S p y (A)繪制稀疏矩陣A中非零元素的分布。它也可以用於全矩陣,在
在這種情況下,只給出非零元素的分布。
S p y (A,c s t r,s i z e)用指定的顏色c s t r(見表1 3-1)在s i z e指定的範圍內繪制稀疏度。
矩陣A中非零元素的分布.
N o n z e r o s (A)按列順序求矩陣A中的非零元素。
S p o n e s (A)用1替換矩陣A中所有非零元素。
S p a l l o c (m,n)生成壹個m×n階的稀疏矩陣,只有n z m a x個非零元素。這個可以
N z m a x)有效減少存儲空間,提高運算速度。
N z m a x (A)給出了分配給矩陣A中非零元素的內存數量,它不壹定與N z (a)相同。
到相同的數字;參見s p a r s e或s p a l l o c。
I SPAR SE (a)若矩陣A稀疏,則返回1;否則,返回0。
S p f u n (f c n,A)用A中所有非零元素計算函數f c n,如果函數不是稀疏矩。
也可以評估矩陣定義。
求稀疏矩陣A的結構秩。對於所有矩陣,有。
S p r a n k (A)≥r a n k (A)。使用以下命令定義稀疏矩陣:
創建壹個大矩陣:
Big =克朗(A,A)
這個矩陣B i g長什麽樣?
K r o n e c k e r的張量積給出了壹個大矩陣,它的元素是矩陣a的元素之間的可能積,由於參數是稀疏矩陣,所以得到的矩陣也是稀疏矩陣。您可以使用命令w h o s和I S P A R S E進行確認.
看矩陣B i g的結構圖,輸入s p y (B i g),如右圖所示。從圖中我們可以看出,B i g是壹個分塊對偶對角矩陣。MATLAB中有四種基本的稀疏矩陣,分別是單位矩陣、隨機矩陣、對稱隨機矩陣和對角矩陣。
命令集9 0單位稀疏矩陣
Spe e e (n)生成壹個n×n單位的稀疏矩陣。
Spe e e (m,n)生成壹個m×n單位稀疏矩陣。
命令speye(A)得到的結果和s p a r s e (e y e (A))壹樣,但是不涉及全數組的存儲。
命令集9 1隨機稀疏矩陣
S p r a n d (A)生成與A結構相同的隨機稀疏矩陣,元素服從均勻分布。
S p r a n d (m,n,d e n s)生成壹個m×n且均勻分布的隨機稀疏矩陣,d e n s×m×。
n個非零元素,0≤d e n s≤1。參數d e n s是非零元素的分布密度。
S p r a n d (m,n,d e n s)生成壹個近似隨機稀疏矩,條件數為1 /rc,大小為m× n。
R c)矩陣。如果rc=rc是長度l≤l (m i n (m,n))的向量,則
矩陣取rci為其L個奇異值的第壹個,其他奇異值為0。
S p r a n d n (A)生成與A結構相同的隨機稀疏矩陣,元素服從正態分布。
S p r a n d n (m,n,d e n s,生成壹個m×n的服從正態分布的隨機稀疏矩陣,並進行S p r a n d。
R c)相同。
生成壹個隨機對稱稀疏矩陣。它的下三角形和主對角線與S相同,矩陣元素服從正態分布。
生成壹個m×n隨機對稱稀疏矩陣。矩陣元素服從正態分布,分布密度為d e n s。
S p r a n d s y m (n,d e n s)生成壹個隨機對稱稀疏矩陣,近似條件數為1 /rc。元素以0r c)對稱分布,但不正常。如果rc=rc是向量,則矩陣具有特征值rci。也就是說,如果rc是正向量,那麽這個矩陣就是正定矩陣。
生成壹個正定矩陣。若k= 1,則該矩陣由壹個正定對稱矩r c,k)的矩陣隨機旋轉得到,其條件數恰好等於1/RC;如果k= 2,則矩陣是外積的轉置和,其條件數約等於1 /rc。
S p r a n d s y m (S,d e n s)生成與矩陣S結構相同的稀疏矩陣,近似條件數為1 /rc。
R c,3)參數d e n s被忽略,但是這個參數在這個位置以便函數可以確認最後兩個參數是否正確。(a)假設有壹個矩陣a:
輸入R a n d o m = s p r a n d n (A),可以得到隨機稀疏矩陣:
矩陣中隨機數的位置與矩陣a中非零元素的位置相同.
(b)對於(A)中的矩陣A,輸入:
b = s p r A n d s y m A
結果如下:
這是壹個由矩陣A的下三角和主對角線創建的對稱矩陣,在非零元素的位置用隨機數作為元素值。
可以使用命令s p d i a g s取出對角元素,並創建壹個帶狀對角矩陣。假設矩陣A的大小是m×n,
p對角線上有非零元素。b的大小是m i n (m×n)×p,它的列是矩陣a的對角線,向量D的長度是p,它的整數分量給出了a的對角線元素:
di0主對角線上的對角線
命令集9 2對角稀疏矩陣
[B,d] = s p d i a g s (A)找出A中所有對角元素,這些元素存儲在矩陣B中,它們的下標存儲在向量d中.
S p d i a g s (A,D)生成壹個矩陣,該矩陣包含由矩陣A中的向量D指定的對角元素.
S p d i a g s (B,d,A)生成矩陣A,用矩陣B中的列替換d定義的對角元素.
A = s p d i a g s (B,d,m,n)創建壹個稀疏矩陣A,對角元素存儲在由d定義得B中.
示例11。4展示了如何使用s p d i a g s命令求解常微分方程。在很多實際應用中,稀疏矩陣的結構是要保留的,但是計算過程中的中間結果會削弱其稀疏性,比如L U分解,會增加浮點運算的次數和存儲空間。為了避免這壹點,在第壹個稀疏矩陣1 ^ 2 ^ 9中。
矩陣用M中的命令在1a b中重新排列。這些命令列在下面的命令集9 3中。通過h e l p命令,
您可以獲得每個命令的更多幫助信息,也可以查看HEL P D E S K。
命令集9 3矩陣變換
C _ O _ L _ M _ M _ D (A)返回壹個變換向量,使矩陣A列的秩最小。
S y m m m d (A)返回最小化對稱矩陣秩的變換。
s y m r c m (A)的矩陣A的C U T H I L-M C K E的逆變換。矩陣A的非零元素在主對角線附近。
C o l p e r m (A)返回壹個矩陣A的列變換的向量,列由非零元素按升序排列。有時候這是L U因式分解前的壹個有用的變換:lu(A(:,j))。如果A是對稱矩陣,對行和列進行排序有利於C O L E S K Y分解:chol(A(j,j))。
給出壹個正數的隨機排列1,2,..。,n,可用於創建隨機變換矩陣。
D m p e r m (A)將矩陣A分解成D u l m a g e-M e n d e l s o h n,輸入help dmperm獲取更多信息。創建壹個秩為4的變換矩陣,並輸入:
壹旦運行p e r m = r a n d p e r m (4 ),您將得到:
給出的變換矩陣為:
如果矩陣a是:
輸入命令:
運行結果如下:
有兩個不完全因式分解命令,用於解大型線性方程組前的預處理。使用h e l p d e s k命令可以獲得更多信息。命令集9 4為C h o l e s k y的不完全分解c h o l i n c (A,o p t)的不完全分解,變量o p t取以下值之壹:
D r o p t o l指定不完全分解的舍入誤差,0表示完全分解。
M i c h o l如果m i c h o l = 1,則從對角線中提取移除的元素。
R d i a g用s q r t (d r o p t o l*n o r m (X(:,j))替換上三角除法。
求解因子中的零元素,j是零元素所在的列。
[L,U,P ]=返回矩陣x不完全分解得到的三個矩陣L,U,P,取變量o p t。
L u i n c (X,o p t)是下列值之壹:
指定分解的舍入誤差。
M i l u改變分解,從上面的三角角分解因子中提取被刪除的列元素。
U d i a g用D R O P T O L的值替換上三角角分解因子中的對角零元素.
T h r e s h中心極限。
稀疏線性方程組可以通過左除算子和壹些特殊的命令來求解。
命令集9 5稀疏矩陣和線性方程組
S p p a r m s (k e y s t r,o p)設置稀疏矩陣算法的參數,借助help spparms可以獲得詳細的信息。
S p a u g m e n t (A,c)根據[c * l A;A' 0]創建稀疏矩陣,這是最二次線性方程組。
最小二乘問題。參見第7節。7.
S y m b f a c t (A)給出C h o l e s k y的符號分解因子和稀疏矩陣的L U分解。
使用幫助符號fact獲取更多信息。
稀疏矩陣的範數計算與普通全矩陣的範數計算有重要區別。稀疏矩陣的歐氏範數不能直接得到。如果稀疏矩陣是小矩陣,則用n o r m (f u l l (A))計算其範數。但對於大型矩陣,這種計算是不可能的。但是L A B處的M可以計算歐幾裏德範數的近似值,計算條件數時也是如此。
命令集中9 ^ 6稀疏矩陣的近似歐氏範數和條件數
N o r m e s t (A)計算A的近似歐氏範數,相對誤差為1 0-6。
N o r m e s t (A,t o l)計算A的近似歐氏範數,並設置相對誤差t o l,而不是默認值1 0-6。
[n r m,n i t] =計算近似n r m範數,也給出計算範數n i t的叠代次數。
n o r m e s t A
C o n d e s t (A)求1-範數下矩陣A的條件數的下界估計。
[c,v ]=求矩陣A的1-範數中條件數的下界估計值c和向量v,這樣,
C o n d e s t (a,t r)| | | av | | =(| | | | | | | v | |)/c .若給定t r,則給出計算過程。t r= 1,
給出每壹步的過程;T r=-1,並給出商c/r c o n d (A)。
計算方式為n o r m A p p r o x = n o r m e s t (S p r s):
With t h e N o r m = n o r m (f u l l (S p r s)):
為了找出它們之間的區別,計算d i f f e r e n c e = t h e N o r m-n o r m A p p r o x,得到:
在很多應用中,n o r m e s t計算的近似值是壹個很好的近似歐氏範數,其計算步驟比n o r m少得多;參見第7節。6.
用e t r e e命令求稀疏對稱矩陣的消去樹,用向量f描述消去樹,也用e t r e e p l o t命令畫。元素fi是矩陣上三角中第I行的1非零元素的列下標。如果有非零元素,那麽fi= 0。可以如下建立消除樹:
節點I是fi的子節點,或者如果fi= 0,則節點I是樹的根節點。
命令集9的消去樹7矩陣
E t r e e (A)求A的消去樹向量f,這個命令有可選參數;輸入h e l p
去尋求幫助。
畫出由向量F定義的消去樹的圖形.
T R E P LOT (p,c,d)繪制指針向量P的樹形圖,參數c和d分別指定節點的顏色和分支數。T R E P LOT可以調用這個命令。
T r e e l a y o u t顯示樹的結構,t r e e p l o t可以調用這個命令。假設有壹個對稱稀疏矩陣b:
運行命令b t r e e = e t r e e (B),結果是:
最初的數字2不難理解。是矩陣第1列第1個非零元素的行數,決定了C h o l e s k y因式分解因子第1行第2列有壹個非零元素。當第1列中的元素減少時,數字5。在第二列中的b在還原之後在(5,2)處獲得。
S p y (c h o l (B))給出了C h o l e s k y分解因子的結構圖,如圖9-2所示:
圖9-2喬萊斯基分解結構圖
圖9-3矩陣b的消去樹
這個向量消去樹可以建立如下:上三角只有壹行有非零元素,節點8,所以這是壹棵樹。
唯壹的根。節點1是節點2的子節點,節點2和3是節點5的子節點,節點5是節點6的子節點。節點4和6是節點7的子節點,節點7是節點8的子節點,即根節點。
命令e t r e e p l o t (B)給出了樹的結構圖,如圖9-3所示。
淘汰樹的形狀取決於列和行的順序,可以用來分析淘汰過程。
坐標和矩陣元素之間的連接圖可以用g p l o t命令來繪制。必須在n×2矩陣中給出n個坐標。
矩陣的每壹行被視為壹個點。因此,在點之間連接的n×n矩陣被創建。如果點4與點8相連,則(4,8)的值為1。因為是大矩陣,非零元素很少,所以要構建成稀疏矩陣。
這個圖可以解釋網絡問題,比如傳輸問題,也包含了線性方程組中未知量之間的相關信息。
命令集9 8網絡圖形
G p l o t (A,K)如果矩陣A的a(i,j)不為0,則連接點ki到點kj。k是壹個n×
2,A是壹個n×n關聯矩陣。
G p l o t (A,K,s t r r)是用s t環s t r r給定的顏色和線型繪制的同壹個圖形。
有關值,請參見表1 3-1。
[X,A] = u n m e s h (E)求網格邊界矩陣的L a p l a c e矩陣和網格點的坐標矩陣X。
例7
假設下面的坐標矩陣k和相關矩陣a:
矩陣A稀疏後,用命令g p l o t (A,K)畫出圖9-4,給出點(0,1)和點(4,1)之間所有可能的路徑。