|
4-тема. Matlabda siyreklesken matritsalar
|
Sana | 01.06.2024 | Hajmi | 414,99 Kb. | | #258931 |
Bog'liq 4-tema APP
4.1. Siyreklesken matritsalar ústinde ámeller orinlaw
Elementleri nolge teń bolmaǵan matrisa tolıq dep ataladı. Siyreklesken matrisa dep nol elementlerge de iye bolǵan matrisa túsiniledi. Siyreklesken matritsalar bul maǵlıwmatlardı ayriqsha saqlaw sxeması hám zárúr ámeldi orınlaw ushın uyqas algoritmı menen birgeliktegi kompleks bolıp tabıladı. Eger keltirilgen maǵlıwmatlardı saqlawshı sxema hám algoritm massiv kórinistegi ápiwayı saqlaw sxeması hám ápiwayı algoritmǵa qaraǵanda yad hám waqıttan utıw imkaniyatın berse, bul halda Siyreklesken matritsalardan paydalansaq boladı.
Siyreklesken matritsalar hár qıylı máselelerde payda boladı. Olardı birlestiriwshi ózgeshelik birew: bul máselelerde belgisizler sanı kóp, olar teńlemeler arqalı baylanısqan, hár bir baylanıstatek bir neshe belgisizler qatnasadı.
Siyreklesken matritsalar Matlabta kompakt formada, yaǵniy tek nol bolmaǵan elementler hám olardıń uyqas indeksleri suwretlenedi hám saqlanadı. Matlabtasiyreklesken matritsalar menen islew ushın qatar dúzilgen funksiyalar bar.
1. SPARSE funksiyası járdeminde Siyreklesken matritsa jaratıw múmkin, yaǵniy nol elementli matritsani siyreklesken kóriniste suwretleydi. Bul funksiyanıń tómendegi formatları bar:
S=sparse (i, j, s, m, n, nzmax) - (mxn) ólshewli siyreklesken matritsani (nol bolmaǵan elementler sanı nzmax den úlken emes) i, j, s vektorlardan paydalanıp payda etedi (bul jerde i, j -indekslerdi anıqlaydı, s- element mánisin anıqlaydı);
S=sparse(i, j, s, m, n) - bul jerde avtomatikalıq tárzde nzmax=leńth(s);
S=sparse (i, j) - bul jerde m=max (i), n=max (j) funksiyalar s dıń nol qatarları óshirilmasdan aldın esaplanadı;
S=sparse (m, n) -Siyreklesken matritsa uchun xotirani band etadi va sparse ([],[],[], m, n, 0) funksiyaǵa teń kúshli bolıp tabıladı (barlıq mxn elementler nolǵa teń );
S=sparse (A) - A matritsaniń barlıq nol elementlerin óshirip, Siyreklesken matritsa payda etedi.
Mısal:
A=[10 0 0; 0 0 20 ; 30 40 0];
>> S=sparse (A)
S =
(1, 1) 10
(3, 1) 30
(3, 2) 40
(2, 3) 20
Keltirilgen mısalda matritsani bunday saqlaw sxemasınıń tabıs'i ayqın kórinip turıptı. Bul mısalda yad tek nolǵa teń bolmaǵan double túrdegi sanlarǵa hám uint32 túrdegi indekslerge ajratıladı. A matritsa 72 báyit yadtı iyeleydi, S Siyreklesken matritsa bolsa 64 báyit yadtı iyeleydi. Bunday tabıs úlken matritsalar ushın sezilerli boladı.
Keyińi mısalda SPARSE funksiyası arqalı Siyreklesken matrtitsa jaratılıwınıń taǵı bir holi yoritiladi ( nolǵa teń bolmaǵan sanlardıń indeksleri hám olardıń bahaları, hám de matritsa ólshewi uyqas túrde kiritiledi):
>> S = sparse([1 3 3 2], [1 1 2 3], [10 30 40 20], 3, 3)
S =
(1,1) 10
(3,1) 30
(3,2) 40
(2,3) 20
2. SPDIAGS funksiyası arqalı tek matritsaniń diagonallarıda nólǵe teń bolmaǵan elementler jaylasqan siyreklesken matritsa jaratsa boladı.
SPDIAGS funksiyası kiretuǵın parametrler sanına qaray, 4 formatda isletiledi:
[B, d] =spdiags (A) -(mxn)-ólshewli A matritsadan barlıq nól emes diagonalların ajratadı; B -min (m, n) xp - ólshewli matritsa bolıp, p baǵanaları- A matritsaniń nól emes diagonalları; d - p vektor uzınlıǵı (p vektordıń pútin oń elementi tiykarǵı diagonalınan joqarıdaǵı diagonal nomerin, keri elementi bolsa tómeńi diagonal nomerin ańlatadı);
B = spdiags (A, d) - d de kórsetilgen qiyiqlerdi ajratadı;
A = spdiags (B, d, A) - A matritsaniń d de kórsetilgen diagonalların B matritsanıń baǵanaları menen almastıradı;
A = spdiags (B, d, m, n) - d de kórsetilgen diagonal boyınsha B matritsaniń baǵanaların jaylastırıp, (mxn) ólshewli siyreklesken matritsa jaratadı.
3. FULL funksiyası. full(s) - s siyreklsken matritsani tolıq kóriniske keltiredi.
Mısal.
>> S = sparse ([1 3 3 2],[1 1 2 3],[10 30 40 20], 3, 3)
S =
(1, 1) 10
(3, 1) 30
(3, 2) 40
(2, 3) 20
>> A = full (S)
A =
0 0
0 0 20
30 40 0
5. SPEYE funksiyası. speye (m, n) - bas qiyiqi birlerden, qalǵan elementleri nóllardan ibarat ( mxn) ólshewli siyreklashgan matritsa jaratadı;
speye (n) yamasa speye (n, n) funksiya bolıp tabıladı.
Mısal.
>>S=speye (3)
S =
(1, 1) 1
(2, 2) 1
(3, 3) 1
6. SPRAND funksiyası. R=sprand (m, n, density) —density*m*n tegis bólistirilgen nól emes elementlerge iye bolǵan (mxn) ólshewli tosınarlı siyreklestirilgen matritsani qaytaradı (0=< density>=1).
R = sprandn (S) - S siyreklestirilgen matritsaniń strukturasına uqsas R matritsani jaratadı, biraq onıń elementleri orta mánisi 0 ge hám dispersiyasi 1 ge teń bolǵan normal nızam boyınsha bólistirilgen.
R = sprandn (m, n, density) - tosınarlı siyreklesken matritsa, onıń nól emes elementler sanı shama menen density * m * n ga teń hám olar normal nızamı boyınsha bólistirilgen.
>> R=sprandn (S)
R =
(1, 1) 0. 2944
(2, 2) -1. 3362
(3, 3) 0. 7143
7. SPRANDSYM funksiyası. R = sprandsym (S) - tosınarlı simmetrik matritsa bolıp, onıń bas diagonlı hám tómen diagonallarınıńń strukturası S matritsaniń strukturasına uqsas, elementleriniń bahaları orta mánisi 0 ge hám dispersiyasi 1 ge teń bolǵan normal nizamlıq tiykarında bólistirilgen.
Bul funksiyanıń taǵı tómendegishe formatları ámeldegi:
R = sprandsym (n, alpha), R = sprandsym (n, alpha, rcond)
Mısallar.
>> M=[23 2 11; 0 23 1; 0 12 3]
M =
23 2 11
0 23 1
0 12 3
>> A=sprandsym (M)
A =
(1, 1) 2. 1832
(2, 2) -0. 1364
(3, 2) 1. 0668
(2, 3) 1. 0668
(3, 3) 0. 1139
8. FIND funksiyası. k = find (x) - x vektordıń nól emes elementleriniń indekslerin anıqlaydı; eger bunday elementler bolmasa, nátiyje bos vektor boladı. Eger X kirisiw matritsa bolsa, bunday shaqırıqta ol baǵana-vektor dep qaraladı (bul baǵana-vektor berilgen matritsaniń ústinler birlespesinen shólkemlesken, dep esaplanadı).
[i, j] = find (X) - X matritsa nól emes elementleriniń qatar hám baǵana indekslerin qaytarıp beredi;
[i, j, s] = find (X) --indekslerdi hám X matritsaniń nól emes elementlerden ibarat s baǵana-vektorın qaytaradı.
[i j]= find (X, N) - Xmatrisaniń 1-baǵana jaylasqan dáslepki N ta nól emes elementtiń indekslerin qaytaradı ; [i j]= find (X, N, 'first') - tap find (X, N) sıyaqlı ;
[i j]= find (X, N, 'last')- aqırǵı baǵanadaǵı dáslepki N nol emes elementtiń indekslerin anıqlaydı; [i j m]= find (X)- X dıń nolmas elementleri m vektor-baǵana retinde hám olardıń indekslerin qaytaradı ;
[i j m]=find (XN) - kórsetilgen munasábetti qánaatlantıratuǵın elementler indeksleri hám logikalıq raslıqlardan ibarat vector baǵananı payda etedi.
Mısallar: Tórt ólshewli sexrli matritsadan hám de buyrıqlar aynasında payda etińan d matritsadan paydalanıp, barlıq joqarıdaǵı find operatorların islewin tekserip kóriń.
Matritsalarni payda etip tómendegi nátiyjelerge iye bolamız:
4. 1 - súwret. k = find (x) komandasınıń qollanıwı.
4. 2-su'wret. Nól emes elementler indeksleri.
4. 3 - súwret. Nól emes hám shártli elementler indeksleri.
4. 4 - súwret. Nól emes elementler hám olardıń indeksleri.
9. ISSPARSE funksiyası. Eger X matritsa siyreklesken bolsa, issparse (x) funksiya
1 ni qaytaradi, aks xolda 0 ni qaytaradi.
Mısal:
>> S = sparse ([1 3 3 2],[1 1 2 3],[10 30 40 20], 3, 3)
S =
(1, 1) 10
(3, 1) 30
(3, 2) 40
(2, 3) 20
>> A=issparse (S)
A =1
10. NNZ funksiyası járdeminde X matritsaniń nól emes elementler sanın qaytarıw múmkin.
Mısal: >> A=nnz (S)
A =4
11. NONZEROS funksiyası járdeminde X matritsaniń baǵanalar boylap nól emes elementlerin tańlap vektor jaratıw múmkin. Mısal:
>>A=nonzeros (S)
A = 10
30
40
20
12. SPFUN funksiyası - berilgen siyreklashgan matritsaniń nól emes elementlerine kórsetilgen funksiyanı qollaydı. Mısal: >> f = spfun (@sin, S) f =
(1, 1) -0. 5440
(3, 1) -0. 9880
(3, 2) 0. 7451
(2, 3) 0. 9129
13. SPY funksiyasınan siyreklesken matritsalarni vizuallastırıw ushın paydalanıladı. (Siyreklesken matritsa shablonı hám nól emes elementler sanın shıǵaradı). Mısal:
S = sprand (100, 100, 0. 01); spy (S)
4. 5 - súwret. Siyreklashgan matritsalarni vizuallastırıw.
Qadaǵalaw sorawları
1. Qanday matritsa tolıq dep ataladı?
2. Siyreklesken matritsa dep nege aytıladı?
3. Matlabta siyreklesken matritsa dep ne túsiniledi?
4. Siyreklesken matritsalar qashan payda bolıwı múmkin?
5. Matlabta siyreklesken matritsalar ústinde islew ushın qanday funksiyalar ámeldegi?
|
| |