Matlab tizimidagi dasturlar matn formatidagi m-fayllardir


Download 28.62 Kb.
Sana23.04.2023
Hajmi28.62 Kb.
#1387626
Bog'liq
Mashinali 1-mustaqil


O`ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI


MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI
UNIVERSITETI SAMARQAND FILIALI

"Mashinali o`qitishga kirish” fanidan





Mavzu: MATLABda funksiyalar va sozlangan funksiyalar

Bajardi: KI20-02 - guruh talabasi
Ochilov S.
Qabul qildi: Kubayev S.


SAMARQAND – 2023
Mavzu: MATLABda funksiyalar va sozlangan funksiyalar
Reja:

  1. MATLABda funksiyalar

  2. MATLABda sozlangan funksiyalar

  3. MATLAB operatorlari

Matlab tizimidagi dasturlar matn formatidagi m-fayllardir. Matlab tizimida dasturlash tili quyidagi vositalarga ega:

  • Har xil turdagi ma’lumotlar;

  • Konstantalar va o‘zgaruvchilar;

  • Operatorlar(matematik ifodalarning operatorlarini ham o‘z ichiga oladi);

  • Biriktirilgan komanda va funksiyalar;

  • Foydalanuvchining funksiyalari;

  • Boshqaruvchi strukturalar;

  • Sistema operatorlari va funksiyalar;

  • Dasturlash tilining kengaytirish vositalari.

Matlab tizimida dasturlash kodlari yuqori darajali tilda yoziladi va ushbu til tipik interpretator bo‘lib hisoblanadi, ya’ni dasturning har xil instruksiyasi darhol taniladi va bajariladi. Hamma instruksiyalarni, ya’ni to‘liq dasturni kompilyasiya qilish etapi mavjud emas. Matlab bajariluvchi dasturlarni yaratmaydi. Dasturlar faqat m-fayllar ko‘rinishida mavjud bo‘ladi. Dasturlarning ishlashi uchun Matlab muhiti zarur. Lekin Matlabda yozilgan dasturlarni C va C++ dasturlash tillariga translayasiya qiluvchi kompelyatorlar yaratilgan. Ular Matlab muhitida tayyorlangan dasturlarni bajariluvchi dasturlarga aylantirish masalasini hal qilish imkoniyatini beradi. Matlab tizimi uchun kompilyatorlar mustaqil dasturiy vositalardir.
SHuni esda tutish kerakki, Matlabning hamma insruksiyalari ham kompilyasiya bo‘lavermaydi, ya’ni kompilyasiyadan oldin bunday dasturni qayta ishlash talab qilinadi. Kompilyasiya qilish natijasida dasturlarning bajarilish tezligi 10-15 martagacha ortishi mumkin.
Matlabda quyidagi toifadagi ma’lumotlardan foydalaniladi:
-sonli toifa;
-qatorlar va simvollar;
-ob’ektlar (matritsalar);
Sonli toifadagi berilgan ikki xil: haqiqiy va kompleks sonlar bo‘lishi mumkin. Haqiqiy sonlar xuddi matematikadagi kabi ishlatiladi. Butun va kasr qismlari nuqta(.) bilan ajratiladi. Kompleks sonlar esa, avval eslatganimizdek a+ib yoki a+bi ko‘rinishida yoziladi, bu erda a va b mos ravishda kompleks sonning haqiqiy va mavhum qismlari deyiladi, i-belgi (yoki i, j) mavhum birlikni bildiradi(i^2=-1). Kompleks sonni bildiruvchi i belgi b ning chap yoki o‘ng tomoniga probelsiz yozilishi kerak, aks holda Matlab tizimi xatolik beradi.
Umuman, ixtiyoriy toifadagi son matritsalarni, vektorlarni yoki skalyar miqdorlarni elementlari (qiymatlari) bo‘lishi mumkin. Xotirada barcha sonlar ikki karrali aniqlikdagi son ko‘rinishida saqlanadi. Sonlar aniqlangan oraliqlarning chegaralari hamda mashina aniqligi tizim o‘zgaruvchilari eps, realmax va realmin orqali beriladi.
Matlabda apostroflar ichiga joylashtirilgan simvollar ketma-ketligi qator deb tushiniladi. Qatorlarga misol qilib quyidagilarni keltirish mumkin:
a=’Matlab’
b=’function’
Bir nechta qatorlarni birlashtirish uchun xuddi vektor va matritsalar kabi ([…]) kvadrat qavslar ishlatiladi. Masalan,
str1=[‘This’,’is’,’string’],
str2=[‘Sistema’,’Matlab’]
kabi ifodalar mos ravishda quyidagi simvolli qatorlarni beradi.
str1=‘This is string’
str2=‘Sistema Matlab’
Ob’ekt(matritsa)lar haqida avvalgi darslarimizda etarlicha ma’lumotlar berilgan.
Qatorlarni hosil qiluvchi va ularga ishlov beruvchi Matlabning ba’zi funksiya(komanda)larini keltirib o‘tamiz:

    • blanks(n)- n ta probeldan iborat qatorni bildiradi;

    • num2str(n)-haqiqiy sonni qatorga aylantiradi;

    • deblanks(s)- s qatordan kerak bo‘lmagan probellarni yo‘qotadi;

    • index(s,t)- s qatorda t qator ostining birinchi marta ko‘rinishi holatini chiqaradi. Agar qator osti bo‘lmasa nolni chiqaradi;

    • randex(s,t)- s qatorda t qator ostining oxirgi marta ko‘rinishi holatini chiqaradi. Agar qator osti bo‘lmasa nolni chiqaradi;

    • strcmp(s1,s2)- 1 ni chiqaradi agar s1, s2 qatorlar bir xil bo‘lsa, aks holda 0 ni chiqaradi;

    • strrep(s,x,y)- x qator ostining s qatorga barcha kirishlarini y qatorga kirishga almashtiradi;

    • bin2dec(s)- qator ko‘rinishida tasvirlangan ikkilik sistemasidagi songa mos o‘nlik sistemasidagi sonni chiqaradi;

    • dec2bin(n)- o‘nli sistemasidagi manfiy bo‘lmagan songa mos ikkilik sistemasidagi sonni qator ko‘rinishida chiqaradi;

Funksiya tushunchasini keltiramiz. Funksiya – o‘zining argumentlari ustida ma’lum bir shakl almashtirishlarni bajaruvchi va unda hosil qilingan natijalarni qaytarish xususiyatiga ega bo‘lgan noyob nomli ob’ektdir. Funksiyalar bir nechta argumentlarga ega bo‘lib bir emas, bir nechta natijani qaytaradigan bo‘lsa quyidagicha yoziladi:


[y1,y2, …] = func (x1, x2, …)
x1, x2, …, y1,y2, … - mos ravishda kirish va chiqish parametrlari deyiladi.
Matlabdagi elementar funksiyalar ro‘yxati bilan help elfun komandasi, maxsus funksiyalar ro‘yxati bilan esa help spasefun komandasi orqali tanishish mumkin. Bu funksiyalar matlabdagi sozlangan ichki funksiyalarga kiradi, ya’ni ularga argumentlari bilan murojaat qilib, qiymatlarini olishimiz mumkin.
Masalan:
>> cos (pi/5);
>> sin (0.9);
>> exp (3.3).
Trigonometrik funksiyalarga faqat radian argument qo‘yilishi mumkin.
Matlabda tashqi funksiyalar deb m-fayllar ga aytiladi. Bunday funksiyalarni berish uchun maxsus m-fayllarni taxlil qiluvchi redaktordan foydalaniladi.
Matlab tizimida juda ko‘p sozlangan va kengaytma paketlarda aniqlangan funksiyalar bo‘lsada, foydalanuvchi uchun yana qandaydir funksiyalar kerak bo‘lib qolishi mumkin. Matlabda ana shunday yangi funksiyalarni yaratishning bir nechta imkoniyatlari bor. SHulardan bir inline funksiyasidan foydalanishdir. Bunda foydalanuvchi o‘zi uchun zarur ifodani inline funksiya argumentiga apostrof ichiga yozishi kerak bo‘ladi. Masalan, sin2x+ cos2u ifodani qiymatlarini xisoblash kerak bo‘lsin. Matlabda quyidagicha amalga oshiriladi:
>> sin cos = inline (`sin (x).^2+cos(y).^2`)
sin cos =
inline function:
sin cos (x, u) =sin (x).^2+cos (x).^2.
Bu yozuvlar komandalar oynasida yoziladi va hisoblash ham shu oynada bajariladi:
>> sin cos (5.5)
ans =1.0000
>> sin cos (1.2)
ans =0.8813
>> sin cos (2.1)
ans =1.1187
Ma’lumki, ko‘p xollarda tartiblangan sonlar ketma-ketligini shakllantirish zarurati tug‘iladi. Bunday ketma-ketliklar grafik chizishda, jadval yaratishda kerak bo‘ladi. Ularni xosil qilish uchun matlabda (:) ikki nuqta komandasidan (operatoridan) foydalaniladi. Uning umumiy ko‘rinishi quyidagicha:
xo : h : x1
bu erda xo - boshlang‘ich qiymat, h – qadam, x1 – esa oxirgi qiymatdir. Bunday konstruksiyani tadbiq qilish dasturiyssikllar berishni keskin kamaytiradi. Agar qadam berilmagan bo‘lsa, u xolda uning qiymati avtomatik tarzda 1 deb xisoblanadi. Agar qadam musbat bo‘lib, boshlang‘ich qiymat oxirgi qiymatdan katta bo‘lsa, u xolda dastur xatolik beradi. Misolar ko‘rib chiqaylik:
>> 3 : 8
ans = 3 4 5 6 7 8
>> K = 0 : 3: 15
K= 0 1 3 6 9 12 15
>> m= 10 : -2 . 2
m= 10 8 6 4 2
>> 0 : pi/2 : 2* pi
ans = 0 1.5708 3.1416 4.7124 6.2832 
>> 5 : 2
ans = Empty matrix : 1 by 0
Matlabning imkoniyatlaridan biriga, muxim tushunchalardan biri bo‘lgan “Matnli izoxlar” kiradi. Matnli izoxlar dasturni tushunarli bo‘lishiga va ularni vazifalarini ochib berishga mo‘ljallangan bo‘lib, ularni dasturni ixtiyoriy joyiga qatordagi % belgisidan keyin yozish mumkin bo‘ladi. Masalan:
% Kasr chiziqli funksiyaning grafigi;
% Funksiyaning o‘sish oralig‘i
m – fayl yaxshi yozilgan hisoblanadi, agar uning matnli izoxi to‘la keltirilgan bo‘lsa.
Ma’lumotlarni klaviatura va faylli disklardan kiritish. YUqorida ta’kidlanganidek, matlabda ma’lumotlar faqat matritsa shaklida tashkil qilinadi. Buning esa 3ta usuli bor:

  • ma’lumotlarni klaviaturadan to‘g‘ridan-to‘g‘ri kiritish;

  • ma’lumotlarni faylli disklardan kiritish;

  • ma’lumotlarni matlab komandalari yordamida xosil qilish.

Klaviaturadan to‘g‘ridan-to‘g‘ri kiritishga misollar ko‘raylik:
>> x= [ 5 4 -3] yoki >> x= [ 5, 4, -3]
terilsa, x – vektor-qator deb qabul qilinib x(1) =5, x(2)=4, x(3)= -3 bo‘ladi.
>> u= [ 0 2 2 3
5 -3 6 2 ] yoki u= [ 0 2 2 3; 5 -3 6 2 ] 
u-(2x4) o‘lchovli matritsa bo‘ladi va u(1.1)=0, u(1.2)=2, u(1.3)=2, u(1.4)=3, u(2.1)=5, u(2.2)=3, u(2.3)= 6, u(2.4)=2 bo‘ladi. Matritsada (;) qatorlar orasini ajratish uchun kerak.
Matritsa elementlari ifoda bo‘lishi mumkin:
Z= [sin(0) sqrt(4) 2^3+1 5/2 3^2].
U xolda quyidagi vektor aniqlanadi:
Z= [0 4.000 9.000 2.500 9.000]
Berilgan matritsani kengaytirish orqali ham matritsa xosil qilish mumkin. Masalan, x1= [x 1 2] deb olsak, x1= [5 4 -3 1 2] xosil bo‘ladi.
Agar x(5)= 8 desak, avvalgi x vektor x= [5 4 -3 0 8] kabi kengaytiriladi, bunda ko‘rinib turibdiki, x(4) ga “0” qiymat berildi.
Endi u matritsadan foydalanib,
c= [1 2 3 4]
y1= [y; c] 
belgilash natijasida
y1= [0 2 2 3 
5 -3 6 2 
1 2 3 4] 
matritsani xosil qilamiz.
Matritsalarni faylli disklardan yuklab xam xosil qilsa bo‘ladi. Buning uchun
load
komandasidan foydalaniladi. Agar komanda parametri yozilmasa berilganlar matlab.mat nomli fayldan yuklanadi.
YUklanayotgan berilganlar avvaldan tekstli(ASC11) formatida ham saqlab qo‘yilgan bo‘lishi mumkin. Aniq o‘zgaruvchilarni yuklash uchun
load x y z komandasidan foydalaniladi.
1.Boshqaruv opеratorlari dеyilganda shartsiz va shartli o‘tish opеratorlari va siklik jarayonlarni tashkil etish opеratorlari kiradi. Matlab tizimida mazkur opеratorlardan bеvosita hisoblash muhitida foydalanish mumkin.
2.Boshqaruv opеratorlari if, while, switch va for kabilarning biri bilan boshlanib, end opеratori bilan yakunlanadi. Mazkur so‘zlar orasidagi opеratorlar tizim tomonidan bir murakkab opеratorlarning qismlari sifatida qaraladi.
3.Matlabda shartsiz o‘tish opеratori va mеtka ishlatilmaydi.
4. Shartli o‘tish opеratori
-Mazkur opеratorning strukturasi: if else end Ishlash: Avval tеkshiriladi, agar shart bajarilsa, bajariladi, aks holda bajariladi. Shartli opеratorning qisqartirilgan shakli: if end Bundabajarilmasa, endopеratoridan kеyingi opеratorlar bajariladi. 70 quyidagi ifodalar ko‘riishida bo‘lishi mumkin: : < -kichik; > -katta; <= -kichik yoki tеng; >= -katta yoki tеng; == -tеng; ~= -tеng emas; -oddiy yoki murakkab, yani bir nеchta oddiy shartlarning mantiqiy amallar orqali birlashmasi ko‘rinishida bo‘lishi mumkin.Matlabda mantiqiy amallar quyidagicha ifodalanadi: & - mantiqiy“BA” (“AND”); | - mantiqiy“YoKI” (“OR”); ~ - mantiqiy“INKOR”(“NOT”); Shartli o‘tish opеratoriquyidagi ko‘rinishda ham ishlatiladi: if elseif elseif . . . . . . . . . . . . . . . else end
Bunda elseif opеratori bajarilmaganda bajariladi. Bundatеkshiriladi, agar bajarilsa, bajariladi, aks holda kеyingi elseif bajariladi va h.k. Agarelseifdagi shartlardan birortasi bajarilmasa, u holdaelse opеratoridan kеyingibajariladi. 5.Tarmoqlanish opеratori quyidagicha tashkil topgan: switch case case 71 . . . . . . . . . . . . . . . otherwise end qiymatiga ko‘ra boshqaruv mos ga uzatiladi. Agar ifoda kеltirilgan ... lardan birortasiga tеng bo‘lmasa, u holda bajariladi.
Misol: Bеvosita hisoblashmuhitida opеrator quyidagi formatda yoziladi: switch, case,, ... case,, ... otherwise, , end

Xulosa:
Matlab tizimida juda ko‘p sozlangan va kengaytma paketlarda aniqlangan funksiyalar bo‘lsada, foydalanuvchi uchun yana qandaydir funksiyalar kerak bo‘lib qolishi mumkin. Matlabda ana shunday yangi funksiyalarni yaratishning bir nechta imkoniyatlari bor. SHulardan bir inline funksiyasidan foydalanishdir. Bunda foydalanuvchi o‘zi uchun zarur ifodani inline funksiya argumentiga apostrof ichiga yozishi kerak bo‘ladi.

Download 28.62 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling