linkedin facebook linkedin facebook nod32

Matritsalarni almashtirish amallari

Muallif: Mengliyev SH.

Qo`shilgan sana: 2014-08-02

Matritsalarni almashtirish amallari

Matlabda matritsalar ustida oddiy arifmetik amallardan tashqari maxsus amallar va almashtirishlar mavjud. Ulardan biri matritsalarni transponirlashdir. Biror A matritsani transponirlash deganda uni mos qatorlarini ustunlar bilan almashtirish tushuniladi va u A' kabi belgilanadi. Masalan, A= [ 1   2   3; 4   5   6 ]  bo‘lsa, A'=[3 6; 2 5; 1 4] ,bo‘lgan  (3*2) o‘lchovli matritsaga teng bo‘ladi.
Bir nechta matritsalarni birlashtirish uchun
V= cat (<o‘lchov> A1, A2, ... )
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 180 gradusga ustunlarini almashtirish yo‘nalishida buradi. flipud (A) esa A matritsani pastdan yuqoriga 180 gradusga qatorlarini almashtirish yo‘nalishida buradi. Masalan, A quyidagicha bo‘lsin:
A= [ 2  3 
7  1
9  0]
U xolda fliplr (A) = [9  0;  7  1;  2  3] , flipud (A) = [3  2 ; 1  7; 0  9]  kabi bo‘ladi.
Berilgan matritsani soat strelkasiga qarshi 900 ga buruvchi rot 90 (A) komandasidir.

Misol:   B=[1  3  5 
7  9  11
2  3  4];   
rot 90(B)=[5  1  4 ; 3  9  3 ; 1  7  2];   
Undan tashqari matlabda maxsus ko‘rinishdagi matritsalarni xosil qilish imkoniyati bor. Ana shunday matritsalarni xosil qiluvchi komandalarni keltirib o‘tamiz:

  • eye (m,n) – asosiy diagonalda 1, qolgan elementlari 0 bo‘lgan (m*n) matritsa xosil qiladi;
  • lincpase (a, b, [n]) – [a, b] – oraliqda tekis taqsimlangan n ta elementli matritsa, n ko‘rsatilmasa avtomatik tarzda 100 deb olinadi;
  • ones (m, n) elementlari faqat 1 dan iborat bo‘lgan  (m*n) matritsa;
  • rand (m, n) – elementlari (0, 1) oraliqda tekis taqsimlangan tasodifiy miqdorlar bo‘lgan (m*n) matritsa;
  • zeros (m, n) - (m*n) o‘lchovli faqat nollardan tuzilgan matritsa;
  • hilb (n) – n tartibli Gilьbert matritsasi (Uning elementlari h (i,j)=1/(i+j-1));
  • invhilb (n) – Gilьbertning teskari matritsasi;
  • magic (n) – qator bo‘yicha elementlar yig‘indisi ustunlar bo‘yicha elementlar yig‘indisiga teng bo‘lgan “sehrli”  matritsa;
  • size (A) – A matritsaning o‘lchovi;
  • length (A) – A vektor uzunligi (elementlar soni);
  • ndims (A) – A matritsa o‘lchovlari soni;
  • isempty (A) – A matritsa  bo‘sh bo‘lsa 1, aks xolda 0 qiymatni beradi;
  • isegual (A, V) – A=V bo‘lsa 1 ni beradi, aks xolda “0” ni beradi;
  • inumeric (A) – A matritsa sonli tipda bo‘lsa 1 ni beradi, aks xolda “0” ni beradi;

Arifmetik amallar

Matlabda skalyar miqdorlar ustida quyidagi oddiy arifmetik amallarni bajarish mumkin:
+ - qo‘shish;
- - ayirish;
* - ko‘paytirish;
/ - o‘ngdan bo‘lish;
\ - chapdan bo‘lish;
^ - darajaga oshirish.
Agar bir qatordagi ifodada bir nechta amallar bo‘lsa, ularni bajarilish ketma-ketligi quyidagi ustivorlik qoidasi bo‘yicha amalga oshiriladi:

Ustivorlik

Amallar

1

() Oddiy qavs

2

^ Darajaga oshirish, chapdan-o‘nga

3

Ko‘paytirish va bo‘lish, chapdan-o‘nga

4

qo‘shish va ayrish, chapdan-o‘nga

                                         

 

Matlabda bu qoidalar skalyar miqdorlarga oddiy usulda qo‘llaniladi.
Masalan,

komanda                                                     natija
2*5                                                           ans =10
5/8                                                           ans =0.625
5\8                                                           ans = 1.600
x= pi/6; y= sin(x)                                                       y= 0.500
a=0; z=exp (4*a)/8                                                    z= 0.125

                                            

2.Vektorlar va matritsalar ustida amallar. Arifmetik amallarni matritsalar ustida ham bajarish mumkin, faqat ularni bajarish qoidalari skalyar miqdorlarnikidan farqli bo‘ladi. Qo‘shish va ayirish amallari matritsalar uchun  ularning mos elementlari orasida bajariladi. SHuning uchun a va b  matritsalarni qo‘shish va ayirish uchun ularning o‘lchovlari bir xil bo‘lishi talab etiladi: a va b (nxm) o‘lchovli bo‘lsa, u xolda
s = a±b
Matritsa elementlari s(i,j)=a(i,j)+b(i,j) tengliklar bilan aniqlanadi. Masalan,

         a=[1 2 3; 4 5 6] , 
b=[4 5 3; 2 3 -4],
c=a+b,
c=[5 7 6; 6 8 2] ,
d=a-b,
d=[-3 -3 0; 2 2 10].
A va b matritsalar o‘lchovlari har xil bo‘lsa, ular ustida qo‘shish va ayirishni bajarib bo‘lmaydi.
Matritsalarni ko‘paytirish esa xuddi algebradagi qoida bo‘yicha bajariladi. Bu holda chapdagi matritsaning ustunlari soni o‘ngdagi matritsaning qatorlari soniga teng bo‘lishi kerak: a ning o‘lchovi (mxk) b niki (kxm) bo‘lsa, u holda s=a*b matritsa (nxm) o‘lchovli bo‘ladi:

Misol: x=[2 1; 0 3; 2 3] , y=[1 2 3 4; 2 -1 3 1] matritsalarda x* y amalni qo‘lda va kompьyuterda bajarib, natijalarni solishtiring.
Undan tashqari, matlabda matritsalarni mos elementlari orasida bajariladigan quyidagi amallar mavjud. Bu amallarni boshqalardan ajratish uchun belgi oldiga (.) nuqta qo‘yiladi.
A.* b – a ning har bir elementi b ning mos elementiga ko‘paytiriladi;
a./ b -  a ning har bir elementi b ning mos elementiga bo‘linadi;
a.\ b – b ning har bir elementi  a  ning mos elementiga bo‘linadi;
a.^ b – a ning har bir elementini b ning mos elementi darajasiga oshiriladi.
Masalan, a=[1 2 3; 2 3 1], b =[0 1 2; 2 1 2] bo‘lsa , u holda c=a.* b quyidagicha bo‘ladi:
         c=[0 2 6; 4 3 2].
         C matritsadan (J komandasi yordamida c1(1,J, c2(2,J qator- vektorlarni hosil qilamiz va c2ni transponerlab quyidagicha
         c1*c2’=18
amalga oshirilgan ko‘paytmani c1 va c2 vektorlarning (ichki) skalyar ko‘paytmasi deyiladi.
         C1’*c2
ko‘paytma esa (3x3) o‘lchovli matritsa bo‘ladi. Bu ko‘paytma tashqi ko‘paytma deyiladi.
         Sum (A) – ustunlar bo‘yicha elementlar yig‘indisi
         Sum (A, dim) – dim=1 da ustunlar bo‘yicha elementlar yig‘indisini, dim=2 da qatorlar bo‘yicha elementlar yig‘indisini qaytaradi.
         Sum (diag(A)) – diagonal elementlar yig‘indisini beradi.
         Det (A) – matritsa determinantini xisoblaydi.
         Rank (A) – matritsa rangini, inv (A) – teskari matritsani xisoblaydi.

Solishtirish va mantiqiy amallar. Mantiqiy amallarni ikki guruhga bo‘lib o‘rganamiz:
a)solishtirish amallari;
b)haqiqiy mantiqiy amallar.
         Solishtirish amallariga quyidagilar kiradi:
a>b- oni amali;
a<b- kichik amali;
a<=b- kichik yoki teng amali;
a>=b- oni yoki teng amali;
a==b- teng amali;
a~=b-teng emas amali.
Massivlarni solishtirishda bu amallar ularning mos elementlari orasida amalga oshiriladi. Bunda solishtirilayotgan massiv o‘lchoviga teng o‘lchovli massiv hosil bo‘ladi. YA’ni massivning mos elementi 1 bo‘ladi, agar solishtirish natijasi “rost” bo‘lsa , 0 bo‘ladi agar solishtirish natijasi “yolg‘on” bo‘lsa. Agar solishtirishda >, <, >=, <= amallari ishlatilsa elementlarning faqat haqiqiy qismi solishtiriladi, == yoki ~= amallari ishlatilsa elementlarning ham haqiqiy, ham mavhum qismlari solishtiriladi.
Ikkita qatorni ekvevalentligini tekshirish uchun strcmp komandasdan foydalaniladi. Bu holda vektorlarning uzunliklari har xil bo‘lishi mumkin.
Agar solishtirilayotganlardan biri skalyar, ikkinchisi matritsa bo‘lsa, u holda solishtirish uchun skalyarni matritsa o‘lchovlariga teng qilib, matritsaga to‘ldiriladi va undan keyin solishtiriladi. Masalan:
a=3;
b=[1 4 0; 2 5 7];
bo‘lsa a>b natijasi quyidagicha bo‘ladi:
         ans=[1 0 1; 1 0 0]
         Matritsa elementlari kompleks bo‘lgan holda misol ko‘ramiz:
         c=[5+2i 4-i];
         d=[5+7i 3-i];
d<=c ning natijasi
         ans=[1 1],
c<=d ning natijasi
         ans= [1 0]
bo‘ladi.
         Matlabda haqiqiy mantiqiy amallarga quyidagilar kiradi:
         &=”va” amali;
         |-“yoki” amali;
         ~-“yo‘q” amali.
         Mantiqiy amallar matritsalarni mos elementlari orasida bajariladi. Bu amallarni bajarishda 0 ishlatiladi, agar amal natijasi “yolg‘on” bo‘lsa va “rostlik”ni bildiruvchi mantiqiy bir ixtiyoriy nol bo‘lmagan son bo‘lishi mumkin.
         YUqoridagi barcha mantiqiy amallar uchun “rostlik” jadvali quyidagicha  bo‘ladi:

x

y

x&y 

x|y

~x

0

0

0

0

1

0

1

0

1

1

1

0

0

1

0

1

1

1

1

0

                                                      

         Haqiqiy mantiqiy amallar bajarilishi bo‘yicha arifmetik va solishtirish amallariga nisbatan past ustuvorlikka ega bo‘ladi. Mantiqiy amallar o‘z-o‘ziga nisbatan quyidagi ustuvorlik qoidasiga bo‘ysunadi:
a) ”yo‘q” amali eng yuqori ustuvorlikka ega;
b) ”va” bilan “yoki” teng ustuvorlikka ega va chapdan o‘ngga ketma-ket bajariladi.
Quyidagi misollarni ko‘ramiz:
1&0+2
3>5&1
Ularning natijasi mos ravishda 1 va 0 bo‘ladi. Birinchi ifodada avval 0+2=2, undan keyin esa 1&2 amali bajariladi. Ikkinchi ifodada esa avval solishtirish amali 3>5=0, undan keyin esa 0&1 mantiqiy amal bajariladi.
Quyidagi keltirilgan misollarda esa mantiqiy amallar ketma-ket chapdan o‘ngga qarab bajariladi:
1&0 | 1=1
0&0 | 0=0
Solishtirish amallarini simvolli ifodalarga xam qo‘llash mumkin:
>>’b’>’a’
ans=1
xor – “yoki” ni bekor qiluvchi amal
any – “rost”, agar vektorning barcha elementlari 0 bo‘lsa.
All – “rost”, agar vektorning barcha elementlari 0 dan farqli bo‘lsa.
Matlabda mantiqiy elementli massivlar yaratish mumkin:
>>false (2,3)
Ans= 0 0 0
0 0 0
>>true (2,3)
Ans= 1 1 1
1 1 1  

Matlabning asosiy matematik funksiyalari .  YUqorida aytilganidek Matlab paketi asosan har xil matematik va amaliy masalalarni echishga, matritsalar va vektorlar ustida har xil amallarni bajarishga mo‘ljallangandir. SHuning uchun Matlabda foydalanuvchi uchun zarur bo‘lgan matematik funksiyalar mavjuddir. Bu funksiyalarni quyidagicha ikkita guruhga bo‘lish mumkin:
a) elementar funksiyalar- barcha yuqori darajadagi tillarda ham mavjud bo‘ladi;
b) maxsus funksiyalar- faqat Matlabda qo‘llaniladigan va murakkab, maxsus funksiyalarni hisoblashga mo‘ljallangan.
Elemantar funksiyalarga trigonometrik, darajali, ko‘rsatkichli, sonlarga ishlov beruvchi, qoldiq va yaxlitlash funksiyalari kiradi.  

1730 marta o`qildi.

Parol:
Eslab qolish.


Ro`yhatdan o`tish

testing

+998915878681

Siz o`z maxsulotingizni 3D reklama ko`rinishda bo`lishini xohlaysizmi? Unda xamkorlik qilamiz.

3D Reklama


Рейтинг@Mail.ru
Рейтинг@Mail.ru

Besucherzahler
счетчик посещений