2- laboratoriya mashg’uloti Matrisalarning asosiy xarakteristikalarini xisoblash. I. Ishdan maqsad



Yüklə 434,49 Kb.
Pdf görüntüsü
səhifə2/4
tarix18.04.2023
ölçüsü434,49 Kb.
#99693
1   2   3   4
Lobaratoriya№1

2.Matritsalar ustida amallar  
Matritsalarni almashtirish amallari. Matlabda matritsalar ustida oddiy 
arifmyetik amallardan tashqari maxsus amallar va almashtirishlar mavjud. Ulardan 
biri matritsalarni transnponirlashdir. Biror A matritsani transponirlash dyeganda uni 
mos qatorlarini ustunlar bilan almashtirish tushuniladi va u A' kabi byelgilanadi.
Masalan, A= [ 1 2 3; 4 5 6 ] bo’ladi. dyemak bunda (m*n) o’lchovli matritsaga 
o’tadi.
Bir nyechta matritsalarni birlashtirish uchun
V= cat ( A
1
, A
2
, ... )
komanda ishlatiladi. Bu holda A1, A2, ..., matritsalar ko’rsatilgan o’lchov bo’yicha 
birlashtiriladi:
cat (2, A, V) = [A, V] cat 
(1, A, V) = [A; V]
Matlabda matritsalarni burish uchun fliplr (A), flipud (A) komandalaridan 
foydalaniladi. fliplr (A) komandasi A matritsani chapdan o’ngga ustunlarini 
almashtirish yo’nalishida buradi. flipud (A) esa A matritsani pastdan yuqoriga 
qatorlarini almashtirish yo’nalishida buradi. Masalan, A quyidagicha bo’lsin:
A= [ 2 3 7 1 9 0]
U holda fliplr (A) q [9 0; 7 1; 2 3] , flipud (A) q [3 2 ; 1 7; 0 9] kabi 
bo’ladi. Byerilgan matritsani soat stryelkasiga qarshi 900 ga buruvchi rot 90 (A) 
komandasidir.
Misol: B=[1 3 5 7 
1 2 3 4];
rot 90(B)=[5 1 4 ; 3 9 3 ; 1 7 2];


Undan tashqari matlabda maxsus ko’rinishdagi matritsalarni hosil qilish imkoniyati 
bor. Ana shunday matritsalarni hosil qiluvchi komandalarni kyeltirib o’tamiz:

size (A) – A matritsaning o’lchovi;

length (A) –A vyektor uzunligi (elyemyentlar soni);

ndims (A) – A matritsa o’lchovlari soni;

isempty (A) – A matritsa bo’sh bo’lsa 1, aks holda 0 qiymatni byeradi;

isegual (A, V) – A=V bo’lsa 1 ni byeradi, aks xolda “0” ni byeradi;
inumeric (A) – A matritsa sonli tipda bo’lsa 1 ni byeradi, aks holda “0” ni byeradi; 
Namunalar:
1 – misol: Berilgan A va B matritsalarni bir biriga ko’paytirish:
>> A=[-1 0 1; 0 -1 0; 1 -1 1]
A =
-1 0 1
0 -1 0
1 -1 1
>> B=[1 1 0; 2 -1 0; 3 0 1]
B =
-1 1 0
2 -1 0
3 0 1
>> A*B ans 
=
2 -1 1
-2 1 0
2 2 1
Endi shu amalni algoritmi haqida ya’ni o’z qo’limiz yordamida bajaramiz:
>> for i=1:3; for j=1:3; C(i,j)=0; for k=1:3; C(i,j)=C(i,j)+A(i,k)*B(k,j); end; end; end; 
C C =
2 -1 1
-2 1 0
2 2 1
2-Misol: A va B matritsalarni bir-biriga qo’shish
>> A=[-1 0 1; 0 -1 0; 1 -1 1];
>> B=[1 1 0; 2 -1 0; 3 0 1];
>> A+B ans 
=
0 1 1
2 -2 0


4 -1 2
Endi shu matritsalarni qo’shish amalini algoritmini o’zimiz bajarib ko’ramiz:
>> for i=1:3; for j=1:3; C(i,j)=A(i,j)+B(i,j);end; end; C
C =
0 1 1
2 -2 0
4 -1 2
3 – misol: Matlabda matritsalarni chapdan o’ngga burishda fliplr komandasidan 
foydalanish:
>> A=[-1 0 1; 0 -1 0; 1 -1 1]
A =
-1 0 1
0 -1 0
1 1 -1
1 >> 
fliplr(A) ans 
=
2 0 -1
0 -1 0
1 -1 1
Endi shu komandani qo’lda bajarib chiqamiz:
>> for i=1:3; for j=1:3; C(i,j)=A(3-i+1,j);end; end; C
C =
1 -1 1

-1 0

0 1
4 - misol: Matlabda matritsalarni yuqoridan pastga burishda flipud 
komandasidan foydalanish:
>> A=[-1 0 1; 0 -1 0; 1 -1 1]
A =
-1 0 1
0 -1 0
1 -1 1
>> flipud(A) ans =
1 -1 1
0 -1 0 -
1 0 1
Endi shu amalni algoritmi bilan tanishib chiqamiz:
>> for i=1:3; for j=1:3; C(j,i)=A(j,3-i+1); end; end; C


C =
1 0 -1

-1 0

-1 1
5 – misol: Berilgan matritsani soat strelkasiga qarshi 90
0
ga burish uchun 
ishlatiladigan rot90(A) komandasi:
>> A=[-1 0 1; 0 -1 0; 1 -1 1]
A =
-1 0 1
0 -1 0
1 -1 1
>> rot90(A) ans =
1 0 1
0 -1 -1 -
1 0 1
Endi shu amalning bajarilish tartibi ya’ni algoritmi haqida:
>> for i=1:3; for j=1:3; C(i,j)=A(j,3-i+1); end; end; C
C =
1 0 1

-1 -1

0 1
Undan tashqari matlabda maxsus ko’rinishdagi matritsalarni hosil qilish imkoniyati 
bor. Ana shunday matritsalarni hosil qiluvchi komandalarni kyeltirib o’tamiz:
>> A=[-1 0 1; 0 -1 0; 1 -1 1]
A =
-1 0 1
0 -1 0
1 -1 1
>> size(A) ans 
=
3 3
>> length(A)
ans = 3
>> ndims(A)
ans =
2
>> isempty(A) ans =
0


 6 - misol: diag(A) komandasi berilgan matritsaning diagonalida tugan elementlarni 
ekranga chiqaradi:
>> A=[-1 0 1; 0 -1 0; 1 -1 1]
A =
-1 0 1
0 -1 0
1 -1 1
>> diag(A) ans =
-1 -1 1
Shu amalni o’zimiz bajarib chqamiz:
>> for i=1:3; D(i)=A(i,i);end; D
D =
-1 -1 1
7 – misol: eye(n) komandasi birlik matritsa hosil qilish:
>> eye(5) ans =
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
Endi shu matritsani m-faylga funksiyasini yaratamiz:
Ushbu m-faylga birlik matritsa hosil qiladigan protsedura yasadik va uning nomini 
diagonal.m deb nomladik. Endi bu m-fayl yordamida diagonal(n) komandasi hosil 


bo’ldi. Endi ushbu komanda yordamida ham eye(n) komandasining bajargan ishini 
bajarsa bo’ladi: >> diagonal(5) ans =
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
8-misol: Berilgan matritsaning diagonaildan yuqori qismini elementlarini 0 bilan 
almashtirish:
>> A=[-1 2 4 0 3; -2 1 0 3 4; -2 -1 0 -2 1; -2 3 -1 -1 1; 1 1 1 -1 -1]
A =
-1 2 4 0 3
-2 1 0 3 4
-2 -1 0 -2 1
-2 3 -1 -1 1
1 1 1 -1 -1
>> tril(A) ans 
=
-1 0 0 0 0
-2 1 0 0 0
-2 -1 0 0 0
-2 3 -1 -1 0
1 1 1 -1 -1
Endi shu komandani o’zimiz m-faylga yozib yangi yuqori degan komanda hosil 
qilamiz :


>> B=yuqori(A)
x =
5
B =
-1 0 0 0 0
-2 1 0 0 0
-2 -1 0 0 0
-2 3 -1 -1 0
1 1 1 -1 -1
9 – misol :triu komandasi esa matritsaning diagonalidan pastki qismini nollarga 
aylantiradi:
>> A=[-1 2 4 0 3; -2 1 0 3 4; -2 -1 0 -2 1; -2 3 -1 -1 1; 1 1 1 -1 -1]
A =
-1 2 4 0 3


-2 1 0 3 4
2 -1 0 
3
 
2 -1 1 
3
 
1 -1 1 
4
 
>> flipud(A) 
ans = 
4
 
-1 2 4 0 3 
7
 
0 0 0 -1 1
0 0 0 0 -1
Ushbu triu protsedurasini algoritmini o’zimiz tuzib m-faylga yozib chiqamiz va 
quyidagi natijalarga erishamiz:
>> B=pastki(A) x 
=
5
B =
-1 2 4 0 3
0 1 0 3 4
0 0 0 -2 1


0 0 0 -1 1
0 0 0 0 -1
10 – misol : RESHAPE – matrisa o’lchamini o’zgartish :
>> A=[-1 0 2 0; 0 1 2 -1; -1 -2 -3 2]
A =
-1 0 2 0
0 1 2 -1
-1 -2 -3 2
>> reshape(A,2,6) ans =
-1 -1 1 2 -3 -1
0 0 -2 2 0 2

Yüklə 434,49 Kb.

Dostları ilə paylaş:
1   2   3   4




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin