|
Matlab tizimi dasturlashning uchta asosiy konsepsiyasini amalga oshiradi
|
Sana | 20.12.2023 | Hajmi | 157,13 Kb. | | #125105 |
Bog'liq mustaqil ish 1
MATLAB - matematik va ilmiy-texnik hisoblashlarni amalga oshirishga mo’ljallangan eng qadimiy, uzoq vaqtlar davomida ishlab chiqilgan va tekshirilgan, avtomatlashtirilgan tizimlardan biri bo’lib, u matrisa va matrisaviy amallarni kengaytirilgan talqini ustiga qurilgan. Mazkur tushuncha uning nomida o’z aksini topgan, ya’ni MATLAB - matrix laboratory - matrisali laboratoriya.
Ma’lumki, juda ko’plab dasturlar va ular ustida amallar bajarish sikllar orqali amalga oshiriladi. Bu esa dasturni ishlashini sekinlashtiradi va ba’zi bir amallarni bajarishni dasturlash tillarida ko’p o’lchamli, xususan, ikki o’lchamli, ya’ni matrisalarni e’lon qilishni murakkablashtiradi. MATLABda asosiy obyekt sifatida matrisalardan foydalanish sikllar sonini keskin kamaytiradi. MATLAB tizimini yaratishdagi asosiy maqsadlardan biri bo’lib, texnik va matematik xisoblashlarga yo’naltirilgan, foydalanuvchi uchun qulay va sonli usullarni amalga oshirish uchun tadbiq etib kelinayotgan an’anaviy dasturlash tillari imkoniyatlaridan ustunroq dasturlash tilini yaratish hisoblanadi. Mazkur tizimni yaratishda hisoblashlar tezligini oshirishga hamda tizimning turli xil masalalarini hal qilishga moslashuvchanligiga katta e’tibor qaratilgan.
MATLAB tizimi dasturlashning uchta asosiy konsepsiyasini amalga oshiradi:
a) modullarni, ya’ni protsedura va funksiyalarni yaratishga asoslangan protsedura modulli dasturlash;
b) obyektga yo’naltirilgan dasturlash (ayniqsa, tizimning grafikli vositalarini joriy qilish ahamiyati);
c) foydalanuvchining grafikli interfeysini yaratishga mo’ljallangan vizualyo’naltirilgan dasturlash (GUI-Graphics User Interface).
Umuman olganda, MATLAB dasturlash tili interpretatorlar sinfiga kiradi. Demak, bundan kelib chiqadiki, tizimning har bir buyrug’i nomi bo’yicha aniqlanadi va zudlik bilan joriy qilinadi. Bu esa ixtiyoriy dasturiy kodni qism-qism bo’yicha tekshirishni osonlashtiradi. Tizimning asosiy imkoniyatlardan biri bu uning ochiqligi va kengaytirish mumkinligidir. Tizimning juda ko’plab buyruq va funksiyalari matnli formatdagi m-fayl (kengaytmasi .m) va C/C++ fayllari ko’rinishida bo’lib, barcha fayllarni modifikasiya qilish mumkin.
Ma’lumotlarni kiritish va hisoblashlarni amalga oshirish quyidagicha amalga oshiriladi:
Boshlang’ich ma’lumotlarni kiritishni ko’rsatish uchun >> belgidan foydalaniladi;
Ma’lumotlar oddiy yozuvli tahrir yordamida kiritiladi;
Sozlangan funksiyalar (masalan, sin) yozma xarflar bilan yoziladi, hamda ularning argumentlari oddiy qavslar ichida yoziladi.
Ma’lumki, o’zgaruvchilar kompyuter xotirasida, ya’ni ishchi soha (workspace) da ma’lum bir joy egallaydi. Ishchi sohani keraksiz o’zgaruvchilardan tozalash uchun clear funksiyasining turli xil ko’rinishlaridan foydalaniladi, masalan:
clear - barcha aniqlangan o’zgaruvchilarni yo’qotish;
clear x - aniqlangan x o’zgaruvchini yo’qotish;
clear a, b, c - aniqlangan bir necha o’zgaruvchilarni yo’qotish.
MATLAB+ Simulink tipik kompleksi katta qiymatdagi MATLAB paketlar instrumentlar “qutisi” Toolboxes va vizual-mo’ljallangan blokli imitasion modellashgan Simulink dinamik tizimini imkoniyatlarni kengaytiruvchi Blocksets dan iborat. Simulink paketi MATLAB bilan birga o’rnatiladi.
MATLAB + Simulink tizimi tuzilishi
MATLAB ilovasi MATLAB dasturlash tili atrofida qurilgan. MATLAB ilovasidan keng tarqalgan foydalanish „Buyruqlar oynasi“ dan interaktiv matematik qobiq sifatida foydalanish yoki MATLAB kodini oʻz ichiga olgan matnli fayllarni bajarishni oʻz ichiga oladi.
Yordam tizimi >> help; buyrug’i yoki menu panelining help bo’limidan olish mumkin. Help bo’limi MATLAB so’rovnoma qismi va MATLAB dasturi ishlab chiqarish haqida ma’lumot beradi. Konkret funksiya bo’yicha yordamni olish help buyrug’idan foydalaniladi. Agar funksiya, operator yoki o’zgaruvchilarni nomi ma’lum bo’lmasa va biror kalit so’z ma’lum bo’lsa kerakli faylni quyidagi buyruq yordamida topamiz: look for . Bu buyruq yordamida kalit so’z yordam tizimining barcha bo’limlarida qidiriladi va shu so’z bor bo’lim yoki fayl ko’rsatiladi.
MATLAB tizimi shunday ishlab chiqilganki, hisoblashlarni, foydalanuvchi dasturini tayyorlamasdan to’g’ridan-to’g’ri bajarish mumkin. Bunda MATLAB superkalkulyator vazifasini bajarib, qatorli buyruq rejimida ishlaydi. Misol:
>>2+3, ans=5;
>>2*3, ans=6 va xokazo.
Tizimda ishlash muloqotli (dialogli) tavsifga ega bo’lib, “savol berildi - javob olindi” qoidasi bo’yicha ishlanadi. Ya’ni foydalanuvchi klaviatura yordamida hisoblanishi lozim bo’lgan ifodani kiritadi, tahrir qiladi (agar lozim bo’lsa) va kiritishni ENTER klaviaturasini bosish bilan yakunlaydi. Ma’lumotlarni kiritish va hisoblashlarni amalga oshirish quyidagicha amalga oshiriladi:
• boshlang’ich ma’lumotlarni kiritishni ko’rsatish uchun >> belgidan foydalaniladi;
• ma’lumotlar oddiy yozuvli tahrir yordamida kiritiladi;
• biror bir ifoda hisoblash natijasini blokirovka qilish uchun mazkur ifodadan keyin - ; (nuqta vergul) qo’yiladi;
• hisoblashlar natijasini ko’rsatuvchi o’zgaruvchi aniqlanmagan bo’lsa, u holda MATLAB tizimi bunday o’zgaruvchi deb ans oladi;
• o’zlashtirish amali sifatida juda ko’plab dasturlash tillari kabi : = belgi emas, balki matematikadagi oddiy = ni o’zi olinadi;
•sozlangan funksiyalar (masalan, sin) yozma harflar bilan yoziladi hamda ularning argumentlari oddiy qavslar ichida yoziladi;
• hisoblashlar natijasi yangi qatorda >> belgisiz chiqadi;
• muloqot “Savol berildi - javob olindi” ko’rinishida amalga oshadi.
Juda ko’plab matematik tizimlarda, agar u son bo’lmasa, u holda sin(v) va yexr(v) ifodalarni hisoblab bo’lmaydi, ya’ni tizim bunday ifodalarni xato deb beradi. MATLABda esa agar berilgan o’zgaruvchi vektor bo’lsa, natija ham mazkur o’lchamdagi vektor bo’ladi, agar matrisa bo’lsa, natija ham matrisa bo’ladi. Komandali rejimda bir qatordagi belgilarning maksimal soni - 4096, m - fayllarda esa chegaralanmagan. Barcha matematik tizimlarning markaziy tushunchasi bu matematik ifodalardir. Ular ustida amallar bajarilayotganda, asosan ularning sonli qiymatlaridan foydalaniladi (kam holatlarda belgi ko’rinishlaridan ham foydalaniladi). MATLAB ham matematik tizim bo’lgani uchun bu yerda ham asosiy tushuncha matematik ifodalardir. MATLABda matematik ifodalarni ifodalashni qarab chiqaylik. MATLABda ifodalar bir qator ko’rinishida ifodalanib, sonlarni butun qismlarini ajratish uchun verguldan emas balki nuqtalardan foydalaniladi. Quyida ba’zi bir ifodalarni MATLAB va oddiy matematikadagi ifodalanishini ko’rib chiqamiz:
Matematik ifodalar sonlar, konstantalar, o’zgaruvchilar, operatorlar, funksiyalar va turli xil maxsus belgilar ustiga quriladi. Ilgari aytib o’tganimizdek, nuqta vergul, ya’ni ; belgi natijani chiqishini blokirovka qiladi, ammo ans maxsus o’zgaruvchi yordamida natijani olishimiz mumkin.
Son - MATLAB tilining eng oddiy obyektlaridan biri bo’lib, u miqdoriy ma’lumotlarni ifodalab beradi. Sonlarni konstanta deb hisoblash mumkin. Sonlar butun, kasr, fiksirlangan va suzuvchi nuqtali bo’lishi mumkin. Ularni yaxshi ma’lum bo’lgan ilmiy shaklda, ya’ni mantissa va son tartibini ko’rsatgan holda ifodalash mumkin: 0; -3; 2.301; 123.456ye-24; -234.456ye10.
Yuqoridan ko’rinib turibdiki, mantisadan sonning butun qismi kasr qismidan, juda ko’plab dasturlash tillarida qabul qilinganidek, vergul orqali emas, balki nuqta orqali ajratiladi. Son tartibini mantisadan ajratish uchun ular orasiga ye belgisi qo’yiladi. “+” ishora sonlar oldiga qo’yilmaydi, “-” ishora esa qo’yiladi va uni unar minus deb nomlanadi. Sonlarda belgilar orasiga probel (bo’sh joy) qo’yish ruxsat etilmaydi. Bundan tashqari sonlar kompleks bo’lishi mumkin: z=Re(z) + Im(z)*i. Bunday sonlar Re(z) haqiqiy va Im(z) mavhum qismga ega bo’linadilar. mavhum qism kvadrat darajasi -1 ga teng bo’lgan, i va j ko’paytuvchilarga ega bo’ladi: 3i; 2j; 2+3i; -3.141i; -123.456+2.7e-3i. real (z) funksiya kompleks sonning butun qismini, image(z) - esa mavxum qismini ajratib beradi. Kompleks sonning modulini (kattaligini) abs(z) funksiya, fazasini angle(z) funksiya hisoblab beradi. Misol:
MATLABda eng sodda arifmetik operatorlardan tortib murakkab kompleks amallarni bajarish mumkin. Masalan:
>> 2+5/6-3*2^2
ans=
-9.1167
MATLAB dasturida quyidagi turdagi sonlar ustida amallar bajarish mumkin:
Son turi
|
Misol
|
Integer
|
234, -4567, 1200
|
Real
|
1.234, 0.345, -3,467
|
Complex
|
1.4-3.6i (i= )
|
Inf
|
Infinity (4/0. 8/0)
|
Nan
|
Not a Number, 0/0
|
MATLABda ma’lumotlar faqat bir shaklda, ya’ni matrisa shaklida tashkil qilinadi. Son esa MATLABning eng oddiy obyektlaridan bo’lib, u miqdoriy ma’lumotlarni ifodalab beradi. Xaqiqiy sonlar butun, kasr, fiksirlangan va suzuvchi nuqtali bo’lishi mumkin. Ularni MATLABda mantissa va son tartibini ko’rsatgan xolda ifodalash mumkin:
0; -3; 3.42; 5.2ye-24; -23.43ye10
MATLABda konstanta (o’zgarmas) - bu avvaldan aniqlangan sonli yoki belgili qiymat bo’lib, u noyob nom (identifikator) bilan taqdim etiladi. Sonlar (masalan, 1, -3, 1.5) nomsiz sonli konstanta hisoblanadi.
MATLABda boshqacha ko’rinishdagi konstantalarni tizim o’zgaruvchilari deb atash qabul qilingan, sababi, bir tomondan tizim yuklanayotgan vaqtda ular ham beriladi, ikkinchi tomondan ular dasturlarda qayta aniqlanishi mumkin.
MATLABda ishlatiladigan asosiy tizim o’zgaruvchilari quyidagilardir:
- i yoki j - mavxum birlik;
- pi- π soni, π = 3.1415926...;
- eps = 2-52 - sonlar ustida amallar bajarishdagi xatolik;
- realmin = 2-1022 - suzuvchi nuqtali eng kichik son;
- realmax = 21023 - suzuvchi nuqtali eng katta son;
- inf - mashina cheksizlik qiymati;
- NaN (Not a number) - ma’lumotni sonli tavsifga ega emasligini ko’rsatuvchi o’zgaruvchi;
- ans - qiymati boshqa o’zgaruvchiga o’zlashtirilmagan amalning natijasini saqlovchi o’zgaruvchi;
- belgili konstanta - bu apostrof ichiga olingan belgilar ketma-ketligi. Masalan, ` haqiqiy son `, ` 3x+4y ` va x.k.
MATLABda umumiy o’zgaruvchilar ham mavjud bo’lib, ular nomga ega bo’lgan obyektlar hisoblanadi. Bu o’zgaruvchida turli xil qiymatlarni saqlash mumkin. O’zgaruvchilar sonli, belgili, vektorli yoki matrisali bo’lishi mumkin, lekin MATLABda ularning xammasi matrisa deb tushuniladi.
MATLABning yaxshi xususiyatlaridan biri shuki, unda avvaldan o’zgaruvchini turi e’lon qilinmaydi, balki uni qiymatlariga qarab aniqlanaveradi. Demak ifoda qiymati vektor yoki matrisa bo’lsa, u xolda o’zgaruvchi shunga mos bo’ladi.
O’zgaruvchi nomi (identifikator) - boshlanishi xarfdan iborat ixtiyoriy sondagi belgilardan tashkil topgan bo’lishi mumkin, ammo faqat boshidagi 31tasi orqali identifikasiya qilinadi. O’zgaruvchi nomi boshqa o’zgaruvchilar bilan ustma-ust tushmasligi kerak, ya’ni nom noyob bo’lishi lozim. O’zgaruvchi nomi xarfdan boshlangan bo’lsada, orasida raqamlar va belgidan (podchyorkivaniye) iborat bo’lishi mumkin. Lekin ularning orasiga maxsus belgilar, masalan +, -, *, / va boshqalarni qo’yish mumkin emas.
MATLAB ingliz tilidagi dasturiy kompleks bo’lib izohlar, o’zgaruvchilarning nomlari turlicha belgilar bo’lmasligi shart hamda m-fayllar rus harflari yordamida terilgan dasturlar ishlamaydi.
O’zgaruvchilarni workspace oynasidan tozalash uchun clear buyrug’idan foydalaniladi, masalan:
• clear — hamma o’zgaruvchilarni o’chiradi;
• clear x — faqat x o’zgaruvchini o’chiradi;
• clear a, b, s — faqat a, b, s o’zgaruvchilarni o’chiradi.
Bundan tashqari Command Window oynasini tozalash uchun clc buyrug’i ishlatiladi. MATLABda ma’lumotlar ustida bajariladigan ma’lum bir amalni bajarish uchun ishlatiladigan belgi operator deyiladi. Masalan, oddiy arifmetik amallar +, -, *, / - operatorlarga misol bo’ladi. Bu amallar (1*1) o’lchovlidan yuqori bo’lgan matrisalar ustida bajarilsa va natija ham matrisa bo’lsa, u holda amallar elementlararo bajariladi va * amali. *, / esa./, /. kabi belgilab amalga oshiriladi.
Misol.
Shuni ta’kidlash o’rinliki, ko’paytirish operatori * va bo’lish operatori / ikkita ko’p o’lchamli massivlar, vektorlar yoki matrisalarning ko’paytmasi va bo’linmasini hisoblaydi. Qator maxsus operatorlar ham mavjud, masalan, \ operatori o’ngdan chapga bo’lishni, .* va ./ operatorlar esa massivlarni elementlararo ko’paytirish va elementlararo bo’lishni ifodalaydi. Ayrim hollarda tartibga solingan sonlar ketma-ketliklarini formatlash talab qilinadi. Bunday ketma-ketliklar vektorlarni yoki grafiklarni qurish vaqtida abssissalarning qiymatlarini hosil qilish uchun zarur bo’ladi. Sonlar ketmaketliklarini formatlash uchun MATLAB tizimida: (ikki nuqta) operatori ishlatiladi. Quyida ikki nuqta (:) operatorining qo’llanilishi bo’yicha misollar berilgan.
Misol. Matrisa ustida amallar quyidagicha bajariladi. Misol uchun matrisani vektorga ko’paytmasi:
MATLAB dasturida turli ko’rinishdagi grafiklarni yaratish. Misol sifatida sinusoidaning grafigini qurishni ko’raylik. Funksiyaning x argumenti 0 dan 10 gacha bo’lgan intervalda 0.1 qadam bilan oshib borsin. Grafik qurish uchun avval x=0:0.1:10 vektorni kiritish, keyin esa grafik qurish buyrug’i plot(sin(x)) dan foydalanish yetarli.
» x=0:0.1:10;
» plot(sin(x))
plot buyrug’i yordamida funksiya x vektor oralig’idagi qiymatlari o’zaro siniq chiziqlar bilan birlashtiriladi. Bunday nuqtalar soni ko’p bo’lsa (masalan, 100 ta) grafik silliqroq bo’lib hosil qilinadi, agar kam bo’lsa (masalan 10 ta) grafik xuddi siniq chiziqlardan iboratdek bo’lib ko’rinadi. Blok matritsa va vektor jarayonlarini qo’llamaydi. Blokning chiqish signali xar doim - skalyar bo’ladi..
|
| |