當前位置:成語大全網 - 書法字典 - 稀疏矩陣的運算

稀疏矩陣的運算

全矩陣在M AT L A B中的運算和作用也可以用在稀疏矩陣中。無論結果是稀疏矩陣還是全矩陣,

它取決於運算符或函數以及以下操作數:當函數以矩陣作為其輸入參數,輸出參數是給定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)之間所有可能的路徑。