為什么要壓縮特殊矩陣 稀疏矩陣一般的壓縮方式有兩種
什么是壓縮矩陣?特殊矩陣的壓縮原則有哪些,矩陣的壓縮存儲(chǔ)是什么?特殊矩陣和稀疏矩陣哪一種采用壓縮存儲(chǔ)會(huì)失去隨機(jī)存取的功能?為什么?對(duì)稀疏矩陣進(jìn)行壓縮存儲(chǔ)的目的是什么?對(duì)特殊矩陣的壓縮可以降低運(yùn)算的時(shí)間復(fù)雜度嗎?
本文導(dǎo)航
- 什么情況用解碼矩陣
- 對(duì)矩陣壓縮的目的
- n階矩陣壓縮存儲(chǔ)一共多少個(gè)元素
- 稀疏矩陣一般的壓縮方式有兩種
- 稀疏矩陣常用的兩種存儲(chǔ)方法
- 稀疏矩陣采用壓縮存儲(chǔ)后的缺點(diǎn)
什么情況用解碼矩陣
在這里分開(kāi)來(lái)給你解釋
矩陣是許多科學(xué)計(jì)算、工程數(shù)學(xué)尤其是數(shù)值分析中經(jīng)常研究的對(duì)象,矩陣也就是二維數(shù)組,所以它可以采用順
序存儲(chǔ)是來(lái)存儲(chǔ)其中的元素。但有時(shí)矩陣的階數(shù)很高,同時(shí)在矩陣中游很多值相同的元素,或大多數(shù)元素的值為
零,這時(shí)再采用嚴(yán)格的順序存儲(chǔ)顯然是很浪費(fèi)空間的,因?yàn)榇鎯?chǔ)零元素或許多值相同的元素是沒(méi)有意義的,因此為
了節(jié)省存儲(chǔ)空間,對(duì)這類矩陣通常采用壓縮存儲(chǔ)。
壓縮存儲(chǔ):為多個(gè)值相同的元素值分配一個(gè)存儲(chǔ)空間,對(duì)零元素不分配存儲(chǔ)空間。
特殊矩陣:各個(gè)元素的分布有一定規(guī)律
系數(shù)矩陣:矩陣中多數(shù)元素值為零。
對(duì)矩陣壓縮的目的
【知識(shí)點(diǎn)】
若矩陣A的特征值為λ1,λ2,...,λn,那么|A|=λ1·λ2·...·λn
【解答】
|A|=1×2×...×n= n!
設(shè)A的特征值為λ,對(duì)于的特征向量為α。
則 Aα = λα
那么 (A2-A)α = A2α - Aα = λ2α - λα = (λ2-λ)α
所以A2-A的特征值為 λ2-λ,對(duì)應(yīng)的特征向量為α
A2-A的特征值為 0 ,2,6,...,n2-n
【評(píng)注】
對(duì)于A的多項(xiàng)式,其特征值為對(duì)應(yīng)的特征多項(xiàng)式。
線性代數(shù)包括行列式、矩陣、線性方程組、向量空間與線性變換、特征值和特征向量、矩陣的對(duì)角化,二次型及應(yīng)用問(wèn)題等內(nèi)容。
n階矩陣壓縮存儲(chǔ)一共多少個(gè)元素
二維數(shù)組在形式上是矩陣,因此一般用二維數(shù)組來(lái)存儲(chǔ)矩陣。在不壓縮存儲(chǔ)的情況下,矩陣采用按行優(yōu)先或按列優(yōu)先方式存儲(chǔ),占用的存儲(chǔ)單元數(shù)等于矩陣的元素個(gè)數(shù)。在實(shí)際應(yīng)用中,經(jīng)常出現(xiàn)一些階數(shù)很高的矩陣,同時(shí)在矩陣中非零元素呈某種規(guī)律分布或者矩陣中有大量的零元素,若仍然用常規(guī)方法存儲(chǔ),可能存儲(chǔ)重復(fù)的非零元素或零元素,這將造成存儲(chǔ)空間的大量浪費(fèi)。因此對(duì)這類矩陣進(jìn)行壓縮存儲(chǔ),從而合理地利用存儲(chǔ)空間。
為了節(jié)省存儲(chǔ)空間,可以利用特殊矩陣的規(guī)律,對(duì)它們進(jìn)行壓縮存儲(chǔ),也就是說(shuō)為多個(gè)值相同的元素只分配一個(gè)存儲(chǔ)單元,對(duì)零元素不分配空間。適合壓縮存儲(chǔ)的矩陣一般是值相同的元素或者零元素在矩陣中分布有一定規(guī)律的特殊矩陣和稀疏矩陣。常見(jiàn)的特殊矩陣有對(duì)稱矩陣、三角矩陣和對(duì)角矩陣。
稀疏矩陣一般的壓縮方式有兩種
稀疏矩陣壓縮存儲(chǔ)后,必會(huì)失去隨機(jī)存取功能。
稀疏矩陣在采用壓縮存儲(chǔ)后將會(huì)失去隨機(jī)存儲(chǔ)的功能。因?yàn)樵谶@種矩陣中,非零元素的分布是沒(méi)有規(guī)律的,為了壓縮存儲(chǔ),就將每一個(gè)非零元素的值和它所在的行、列號(hào)做為一個(gè)結(jié)點(diǎn)存放在一起,這樣的結(jié)點(diǎn)組成的線性表中叫三元組表,它已不是簡(jiǎn)單的向量,所以無(wú)法用下標(biāo)直接存取矩陣中的元素。
稀疏矩陣常用的兩種存儲(chǔ)方法
對(duì)稀疏矩陣進(jìn)行壓縮存儲(chǔ)目的是節(jié)省存儲(chǔ)空間。
存儲(chǔ)矩陣的一般方法是采用二維數(shù)組,其優(yōu)點(diǎn)是可以隨機(jī)地訪問(wèn)每一個(gè)元素,因而能夠較容易地實(shí)現(xiàn)矩陣的各種運(yùn)算。
但對(duì)于稀疏矩陣而言,若用二維數(shù)組來(lái)表示,會(huì)重復(fù)存儲(chǔ)了很多個(gè)0了,浪費(fèi)空間,而且要花費(fèi)時(shí)間來(lái)進(jìn)行零元素的無(wú)效計(jì)算。所以必須考慮對(duì)稀疏矩陣進(jìn)行壓縮存儲(chǔ)。
擴(kuò)展資料
優(yōu)點(diǎn)
稀疏矩陣的計(jì)算速度更快,因?yàn)镸ATLAB只對(duì)非零元素進(jìn)行操作,這是稀疏矩陣的一個(gè)突出的優(yōu)點(diǎn)。假設(shè)矩陣A,B中的矩陣一樣,計(jì)算2*A需要一百萬(wàn)次的浮點(diǎn)運(yùn)算,而計(jì)算2*B只需要2000次浮點(diǎn)運(yùn)算。
因?yàn)镸ATLAB不能自動(dòng)創(chuàng)建稀疏矩陣,所以要用特殊的命令來(lái)得到稀疏矩陣。算術(shù)和邏輯運(yùn)算都適用于稀疏矩陣。對(duì)于一個(gè)用二維數(shù)組存儲(chǔ)的稀疏矩陣Amn,如果假設(shè)存儲(chǔ)每個(gè)數(shù)組元素需要L個(gè)字節(jié),那么存儲(chǔ)整個(gè)矩陣需要m*n*L個(gè)字節(jié)。
稀疏矩陣采用壓縮存儲(chǔ)后的缺點(diǎn)
1.k=n*(n+1)/2的原因是:對(duì)于三角矩陣,從1到N的總和是這么多,也就是說(shuō)整個(gè)矩陣有這么多元素。另外正三角陣對(duì)應(yīng)正方形。
對(duì)稱矩陣滿足A的轉(zhuǎn)置也就是自身的特點(diǎn),元素上,a[i,j] = a[j,i]。實(shí)際上的存儲(chǔ)可以利用三角陣。所以老實(shí)說(shuō)我對(duì)于他對(duì)稱陣算法為什么少一個(gè)元素也有疑惑。
可能是三角陣可以對(duì)應(yīng)不等長(zhǎng)的矩陣,所以造成了k值不一樣。
2.上三角陣,存在的元素是滿足[1<= j <=n, i >= j]的關(guān)系[這里用i表橫坐標(biāo)j表縱坐標(biāo)],如果是長(zhǎng)3寬4的當(dāng)然不能和長(zhǎng)4寬3的相提并論,試著畫(huà)畫(huà)就明白了。
3.對(duì)稱陣不會(huì)出現(xiàn)像三角陣那樣有一小角還是其他數(shù)字的情況。這個(gè)其他數(shù)字就是(6+1)-1=6。
4.壓縮存儲(chǔ),只是將部分符合條件的矩陣減少一部分的存儲(chǔ)空間。老實(shí)說(shuō)我也感覺(jué)不很有用,除非他處理的數(shù)據(jù)本身必然具備此類特點(diǎn)。
5.固定的,多試幾次自己記下來(lái)然后找找就好。如果沒(méi)記錯(cuò)的話,在矩陣上畫(huà)畫(huà)就可以看出來(lái)。
6.stdlib.h是標(biāo)準(zhǔn)的輸入輸出庫(kù),最為常用,至少里面包括了scanf等函數(shù),只要你需要printf你就不能扔掉它。否則會(huì)出現(xiàn)函數(shù)未定義的問(wèn)題。畢竟語(yǔ)言本身不提供函數(shù)類庫(kù),類庫(kù)需要另行引用。
掃描二維碼推送至手機(jī)訪問(wèn)。
版權(quán)聲明:本文由尚恩教育網(wǎng)發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。