Matlab modellashtirish muhitida dasturlash asoslari.
Mavzu: Matlab modellashtirish muhitida dasturlash asoslari. Reja: I. Kirish II. Asosiy qism 1. Arifmetik amallar . 2. Vektorlar va matritsalar ustida amallar . 3. Solishtirish va mantiqiy amallar . 4. Tayinlash va shartli operatori. 5. Sikl operatorlari . 6. Tanlash operatorlari . 7. Dasturlashga doir misollar. Hisoblashlarda to’xtashlar hosil qilish. 8. Foydalanilgan adabiyotlar.
Kirish. Dasturlash MATLAB tizimida uning imkoniyatlarini kengaytirishi mumkin. Uning foydalanish imkoniyatlarini yanada oshiradi. Yuqorida dasturlashning ma’lum elementlari bilan tanishdik. Bu yerda MATLAB tilining to’ldiruvchi qoidalarini ko’rib o’tamiz. Dasturlash tilida konstantalar va o’zgaruvchilar ishlatiladi. O’zgaruvchi bu ob’ekt nomlariga ega bo’lib, o’zida turli ma’lumot qiymatlarini saqlash xususiyatiga ega. O’zgaruvchining bu ma’lumot qiymatlari sonlar yoki simvollar, vektorlar yoki matritsalar bo’lishi mumkin. O’zgaruvchining aniq bir qiymatini berish uchun o’zlashtirish operatori ishlatiladi: Uning umumiy ko’rinishi quyidagicha: O’zgaruvchi_nomi = ifoda; O’zgaruvchining tipi oldindan e’lon qilinmasligi mumkin. Ular o’zgaruvchining o’zlashtirayotgan ifoda qiymatiga qarab aniqlanadi. O’zgaruvchining nomi bir nechta simvollardan tashkil topishi mumkin, lekin boshlang’ich 31 ta simvol identifikatsiya qilinadi. O’zgaruvchining nomi harf bilan boshlanadi. Bundan tashqari harf, raqam, simvol va ostiga chiziqlar bo’lishi mumkin. Nomda probel va maxsus belgilar ishlatish mumkin emas. Matematik ifodalarda monitor ekraniga joylashmagan holda uning ma’lum qismini keyingi qatorga ko’chirish maqsadga muvofiq. Buning uchun ko’p nuqta (…) simvoli ishlatiladi. Buyruq rejimida bitta satrdagi simvollar soni 4096 ta bo’lishi mumkin. M-faylda esa cheklanmagan, lekin bunday uzun satrlar bilan ishlash noqulay. Shuning uchun satrdagi simvollarni ko’chirish dasturni sifatini yaxshilaydi.
1 . Arifmetik amallar. Matlabda skalyar miqdorlar ustida quyidagi oddiy arifmyetik amallarni bajarish mumkin: + - qo’shish; - - ayirish; * - ko’paytirish; / - o’ngdan bo’lish; \ - chapdan bo’lish; ^ - darajaga oshirish. Agar bir qatordagi ifodada bir nyechta amallar bo’lsa, ularni bajarilish kyetma-kyetligi quyidagi ustivorlik qoidasi bo’yicha amalga oshiriladi: Matlabda bu qoidalar skalyar miqdorlarga oddiy usulda qo’llaniladi. Masalan, 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 elyemyentlari 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 holda s = a±b Matritsa elyemyentlari s[i,j]=a[i,j]+b[i,j] tyengliklar 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 algyebradagi qoida bo’yicha bajariladi. Bu holda chapdagi matritsaning ustunlari soni o’ngdagi matritsaning qatorlari soniga tyeng bo’lishi kyerak: a ning o’lchovi (mxk) b niki (kxm) bo’lsa, u holda c=a+b matritsa (nxm) o’lchovli bo’ladi: i=1,n , j=1,m. Masalan: a=[ 1 2 0 3 2 2 ] b= [ 0 1 1 2 3 0 2 3] bo’lsa, c=a*b quyidagicha bo’ladi. C= [ 2 1 3 0 2 2 6 9 6 9 8 12 ] Agar skalyar miqdor matritsaga ko’paytirilayotgan bo’lsa, u matritsaning har bir elementiga ko’paytiriladi: d=3*b bo’lsa, d= [ 0 3 3 6 9 0 6 9 ] ga teng 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 kompyuterda 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 (:) komandasi yordamida c1(1,:), c2(2,:) 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. 3.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- katta amali; a<b- kichik amali; a<=b- kichik yoki teng amali; a>=b- katta 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 xosil bo’ladi. Ya’ni massivning mos elementi 1 bo’ladi, agar solishtirish