Termez iqtisodiyot va servis universiteti


Download 267.96 Kb.
Sana17.06.2023
Hajmi267.96 Kb.
#1541567
Bog'liq
Mustaqil ishi Tekshirdi 2022-2023 Mavzu MatLab ilovasida dast


TERMEZ IQTISODIYOT VA SERVIS UNIVERSITETI
______________________________________________________________________________________________________ fakulteti
______________________________________________ kafedrasi
______ guruh talabasi
___________________________________________________ ning
________________________________________________ fanidan
Mustaqil ishi

Tekshirdi :________________
2023
Mavzu: MatLab ilovasida dasturlashni qo’llash


Reja:


1. MatLab ilovasining kelib chiqishi
2. MatLab ilovasining C++ bilan hamayonligi
3. MatLab ilovasida 3 o’lchamli garfik dasturlarini tuzish
4. MatLab ilovasida funksiya dasturlari



MATLAB ("matritsali laboratoriya" ning qisqartmasi) a mulkiy ko'p paradigma dasturlash tili va raqamli hisoblash tomonidan ishlab chiqilgan muhit MathWorks. MATLAB ruxsat beradi matritsa manipulyatsiya, fitna funktsiyalari va ma'lumotlar, amalga oshirish algoritmlar, yaratish foydalanuvchi interfeyslari va boshqa tillarda yozilgan dasturlar bilan o'zaro aloqada bo'lish.
MATLAB asosan raqamli hisoblash uchun mo'ljallangan bo'lsa-da, ixtiyoriy asboblar qutisi MuPAD ramziy vosita kirishga ruxsat berish ramziy hisoblash qobiliyatlar. Qo'shimcha to'plam, Simulink, grafik ko'p domenli simulyatsiya qo'shadi va modelga asoslangan dizayn uchun dinamik va o'rnatilgan tizimlar.
2020 yilga kelib MATLAB dunyo bo'ylab 4 milliondan ortiq foydalanuvchiga ega.MATLAB foydalanuvchilari turli xil kelib chiqishi muhandislik, fan va iqtisodiyot.
Kliv Moler, raisi Kompyuter fanlari bo'lim Nyu-Meksiko universiteti, 1970 yillarning oxirida MATLAB-ni ishlab chiqara boshladi.[21] U buni o'quvchilariga kirish imkoniyatini yaratish uchun yaratgan LINPACK va EISPACK ularsiz o'rganish kerak emas Fortran. Tez orada u boshqa universitetlarga tarqaldi va ichida kuchli auditoriyani topdi amaliy matematika jamiyat. Jek Little, muhandis, Molerga qilgan tashrifi paytida unga duch keldi Stenford universiteti 1983 yilda uning tijorat salohiyatini anglagan holda u Moler va Stiv Bangert bilan birlashdi. Ular MATLAB-ni qayta yozdilar C va asos solgan MathWorks o'z rivojlanishini davom ettirish uchun 1984 yilda. Ushbu qayta yozilgan kutubxonalar JACKPAC nomi bilan mashhur edi.[22] 2000 yilda MATLAB matritsa manipulyatsiyasi uchun yangi kutubxonalar to'plamidan foydalanish uchun qayta yozildi, LAPACK.

MATLAB birinchi bo'lib tadqiqotchilar va amaliyotchilar tomonidan qabul qilingan boshqarish muhandisligi, Littlening ixtisosligi, ammo tezda boshqa ko'plab domenlarga tarqaldi. Hozir u ta'limda, xususan o'qitishda ham qo'llaniladi chiziqli algebra va raqamli tahlil va ishtirok etgan olimlar orasida mashhurdir tasvirni qayta ishlash.Sintaksis


MATLAB dasturi MATLAB dasturlash tili atrofida qurilgan. MATLAB dasturining keng tarqalgan ishlatilishi "Buyruqlar oynasi" dan interaktiv matematik sifatida foydalanishni o'z ichiga oladi qobiq yoki MATLAB kodini o'z ichiga olgan matnli fayllarni bajarish.
O'zgaruvchilar
O'zgaruvchilar tayinlash operatori yordamida aniqlanadi, =. MATLAB - bu zaif terilgan dasturlash tili, chunki turlari bilvosita konvertatsiya qilingan.Bu taxmin qilingan yozilgan til, chunki o'zgaruvchilar ularning turlarini e'lon qilmasdan berilishi mumkin, faqat ularni ramziy ob'ektlar deb hisoblash kerak bo'lsa,va ularning turi o'zgarishi mumkin. Qadriyatlar kelib chiqishi mumkin doimiylar, boshqa o'zgaruvchilar qiymatlarini o'z ichiga olgan hisoblashdan yoki funktsiya natijasidan. Masalan:
>> x = 17x = 17>> x = "shapka"x =shapka>> x = [3*4, pi/2]x = 12.0000 1.5708>> y = 3*gunoh(x)y = -1.6097 3.0000
Vektorlar va matritsalar
Ikki nuqta sintaksisidan foydalanib oddiy qator aniqlanadi: boshlang'ich:o'sish:terminator. Masalan; misol uchun:

>> qator = 1:2:9qator = 1 3 5 7 9


nomli o'zgaruvchini belgilaydi qator (yoki nom bilan mavjud o'zgaruvchiga yangi qiymat tayinlaydi qator) bu 1, 3, 5, 7 va 9 qiymatlaridan tashkil topgan massiv, ya'ni massiv 1 dan boshlanadi ( boshlang'ich qiymati), har bir qadam oldingi qiymatdan 2 ga ko'paytiriladi o'sish 9 ga (yoki oshib ketmaslik uchun) yetgandan keyin to'xtaydi terminator qiymati). O'sish sukut bo'yicha qiymatni ishlatish uchun aslida bu sintaksisdan tashqarida qoldirilishi mumkin (ikki nuqta bilan birga)
>> ari = 1:5ari = 1 2 3 4 5
nomlangan o'zgaruvchiga tayinlaydi ari 1, 2, 3, 4 va 5 qiymatlari bo'lgan qator, chunki 1 qiymatining o'sish qiymati qo'shimcha sifatida ishlatiladi. Indekslash bir asosli, bu odatiy anjuman matritsalar matematikada, C, C ++ va Java kabi boshqa dasturlash tillarida keng qo'llaniladigan nolga asoslangan indekslashdan farqli o'laroq. Matritsalarni satr elementlarini bo'sh joy yoki vergul bilan ajratish va har bir qatorni tugatish uchun nuqta-vergul yordamida aniqlash mumkin. Elementlarning ro'yxati to'rtburchak qavs bilan o'ralgan bo'lishi kerak []. Qavslar () elementlarga va subarrarralarga kirish uchun ishlatiladi (ular funktsiya argumentlari ro'yxatini belgilash uchun ham ishlatiladi).

>> A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1>> A(2,3)ans = 11


Indekslar to'plami kabi iboralar bilan belgilanishi mumkin 2:4ga baho beradigan [2, 3, 4]. Masalan, 2 dan 4 gacha qatorlar va 3 dan 4 gacha ustunlardan olingan submatrisani quyidagicha yozish mumkin. >> A(2:4,3:4)ans = 11 8 7 12 14 1
Kvadrat identifikatsiya matritsasi hajmi n funktsiyasi yordamida yaratilishi mumkin ko'z, va nolga teng bo'lgan har qanday o'lchamdagi matritsalarni funktsiyalar bilan yaratish mumkin nollar va bittasinavbati bilan.
>> ko'z(3,3)ans = 1 0 0 0 1 0 0 0 1>> nollar(2,3)ans = 0 0 0 0 0 0>> bittasi(2,3)ans = 1 1 1 1 1 1
Transpozitsiya vektor yoki matritsa yoki funktsiya tomonidan amalga oshiriladi ko'chirish yoki matritsadan keyin nuqta-bosh qo'shib (nuqta holda bosh bajariladi konjugat transpozitsiyasi murakkab massivlar uchun):
>> A = [1 ; 2], B = A.', C = ko'chirish(A)A = 1 2B = 1 2C =1 2>> D. = [0 3 ; 1 5], D.'D. = 0 3 1 5ans = 0 1 3 5
Ko'pgina funktsiyalar massivlarni kirish sifatida qabul qiladi va har bir elementda elementar jihatdan ishlaydi. Masalan, mod (2 * J, n) har bir elementni ko'paytiradi J 2 ga, so'ngra har bir element modulini kamaytiring n. MATLAB standartni o'z ichiga oladi uchun va esa ko'chadan, lekin (kabi boshqa shunga o'xshash dasturlarda bo'lgani kabi R ) yordamida vektorlangan notation rag'batlantiriladi va tez-tez bajarilishi tezroq bo'ladi. Funktsiyadan olingan quyidagi kod sehrli.m, yaratadi sehrli kvadrat M ning toq qiymatlari uchun n (MATLAB funktsiyasi meshgrid kvadrat matritsalarni yaratish uchun bu erda ishlatiladi Men va J o'z ichiga olgan 1: n).

[J,Men] = meshgrid(1:n);A = mod(Men + J - (n + 3) / 2, n);B = mod(Men + 2 * J - 2, n);M = n * A + B + 1;



Tuzilmalar
MATLAB strukturaning ma'lumotlar turlarini qo'llab-quvvatlaydi.MATLAB-dagi barcha o'zgaruvchilar massivlar bo'lganligi sababli, mos keladigan nom "struktura massivi" dir, bu erda massivning har bir elementi bir xil maydon nomlariga ega. Bundan tashqari, MATLAB dinamik maydon nomlarini qo'llab-quvvatlaydi[29] (maydon bo'yicha nomlarni qidirish, maydon manipulyatsiyasi va boshqalar)
Vazifalar
MATLAB funktsiyasini yaratishda fayl nomi fayldagi birinchi funktsiya nomiga mos kelishi kerak. Haqiqiy funktsiya nomlari alifbo belgisi bilan boshlanadi va harflar, raqamlar yoki pastki chiziqlarni o'z ichiga olishi mumkin. O'zgaruvchilar va funktsiyalar katta-kichiklikka sezgir.
Funktsiya tutqichlari
MATLAB elementlarini qo'llab-quvvatlaydi lambda hisobi funktsiya tutqichlarini kiritish orqali,yoki .m fayllarida yoki noma'lum holda amalga oshiriladigan funktsiyalarga mos yozuvlar ichki funktsiyalar.
Sinflar va ob'ektga yo'naltirilgan dasturlash
MATLAB qo'llab-quvvatlaydi ob'ektga yo'naltirilgan dasturlash sinflar, merosxo'rlik, virtual jo'natish, paketlar, pass-by-semantikasi va pass-by-reference semantikasini o'z ichiga oladi.Biroq, sintaksis va chaqiruv konventsiyalari boshqa tillardan sezilarli darajada farq qiladi. MATLAB sinfga ega bo'lishiga qarab qiymat sinflari va mos yozuvlar sinflariga ega tutqich super-sinf sifatida (mos yozuvlar sinflari uchun) yoki yo'q (qiymat sinflari uchun).
Qo'ng'iroq qilish usuli qiymat va mos yozuvlar sinflari o'rtasida farq qiladi. Masalan, usulga qo'ng'iroq
ob'ekt.usul();
ning har qanday a'zosini o'zgartirishi mumkin ob'ekt faqat agar ob'ekt mos yozuvlar sinfining namunasidir, aks holda qiymat sinfining usullari ob'ektni o'zgartirishi kerak bo'lsa, yangi nusxani qaytarishi kerak.
Oddiy sinfga misol quyida keltirilgan. classdef Salom usullari funktsiya salomlashing (obj) disp('Salom!') oxiri oxirioxiri
Nomli faylga qo'yilganda salom.m, buni quyidagi buyruqlar bilan bajarish mumkin:
>> x = Salom();>> x.salom();Salom!
Grafik va foydalanuvchi grafik interfeysini dasturlash
MATLAB grafika chizish xususiyatlarini birlashtirgan. Masalan, funktsiya fitna yordamida ikkita vektordan grafik hosil qilish mumkin x va y. Kod:
x = 0:pi/100:2*pi;y = gunoh(x);fitna(x,y)ning quyidagi rasmini hosil qiladi sinus funktsiyasi:
Matlab fitna sin.svg
MATLAB uch o'lchovli grafikani ham qo'llab-quvvatlaydi:
[X,Y] = meshgrid(-10:0.25:10,-10:0.25:10);f = samimiy(kv((X/pi).^2+(Y/pi).^2));mash(X,Y,f);o'qi([-10 10 -10 10 -0.3 1])xlabel('{ bfx}')yorliq('{ bfy}')zlabel('{ bfsinc} ({ bfR})')yashirin yopiq
[X,Y] = meshgrid(-10:0.25:10,-10:0.25:10);f = samimiy(kv((X/pi).^2+(Y/pi).^2));bemaqsad(X,Y,f);o'qi([-10 10 -10 10 -0.3 1])xlabel('{ bfx}')yorliq('{ bfy}')zlabel('{ bfsinc} ({ bfR})')
Ushbu kod a hosil qiladi simli ramka Ikki o'lchovli normalizatsiya qilinmagan uchastkali uchastka sinc funktsiyasi: Ushbu kod a hosil qiladi sirt Ikki o'lchovli normalizatsiya qilinmagan uchastkali uchastka sinc funktsiyasi:
MATLAB mesh sinc3D.svg MATLAB surf sinc3D.svg
MATLAB rivojlanishni qo'llab-quvvatlaydi grafik foydalanuvchi interfeysi (GUI) dasturlari.UIlar dasturiy yoki vizual dizayn muhiti yordamida yaratilishi mumkin Yo'riqnoma va Ilova dizayneri.
Boshqa tillar bilan aloqa qilish
MATLAB dasturlash tillarida yozilgan funktsiyalar va pastki dasturlarni chaqira oladi C yoki Fortran.MATLAB ma'lumotlar turlarini uzatishga va qaytarishga imkon beradigan o'ram funksiyasi yaratiladi. MEX fayllari (MATLAB bajariladigan fayllari) - bu funktsiyalarni kompilyatsiya qilish natijasida hosil bo'lgan dinamik ravishda yuklanadigan ob'ekt fayllari.2014 yildan boshlab ikki tomonlama interfeyslar ko'paymoqda Python qo'shilayotgan edi.

Yozilgan kutubxonalar Perl, Java, ActiveX yoki .NET to'g'ridan-to'g'ri MATLAB-dan qo'ng'iroq qilish mumkin, va ko'plab MATLAB kutubxonalari (masalan XML yoki SQL qo'llab-quvvatlash) Java yoki ActiveX kutubxonalari atrofida o'ralgan holda amalga oshiriladi. Java-dan MATLAB-ga qo'ng'iroq qilish ancha murakkab, ammo MATLAB asboblar qutisi yordamida amalga oshirilishi mumkin tomonidan alohida sotiladigan MathWorks yoki JMI (Java-to-MATLAB interfeysi) deb nomlangan hujjatsiz mexanizmdan foydalangan holda, (bu bilan bog'liq bo'lmagan narsalar bilan aralashmaslik kerak Java metadata interfeysi bu JMI deb ham ataladi). Java uchun rasmiy MATLAB API 2016 yilda qo'shilgan. Alternativa sifatida MuPAD MathWorks, MATLAB-da mavjud bo'lgan Symbolic Math Toolbox-ga ulanish mumkin Chinor yoki Matematik.


Kutubxonalar import va eksport qilish uchun ham mavjud MathML.
Xitoyda taqiq
2020 yilda Xitoy davlat ommaviy axborot vositalari MATLAB AQSh sanksiyalari natijasida Xitoyning ikkita universitetidan o'z xizmatlarini olib tashlaganligi haqida xabar berishdi va bunga ochiq manbali alternativalardan foydalanishning ko'payishi va ichki alternativalarni ishlab chiqish orqali javob berishini aytdi. Shu bilan bir qatordaShuningdek qarang: raqamli tahlil dasturlari ro'yxati va raqamli tahlil dasturlarini taqqoslash
MATLAB uchun bir qator raqobatchilar mavjud. Ba'zi e'tiborli misollarga quyidagilar kiradi: Chinor
IDL
Wolfram Mathematica
Shuningdek, bor ozod ochiq manba MATLAB-ga alternativalar, xususan:
GNU oktavi
Scilab
FreeMat
Yuliya
SageMath
MATLAB tiliga ma'lum darajada mos keladi. GNU oktavi boshqalardan noyobdir, chunki u MATLAB sintaksisiga mos tushishni maqsad qiladi (qarang) GNU oktavasining MATLAB mosligi )
Massivlarni asosiy shaxs sifatida ko'rib chiqadigan boshqa tillar qatoriga (massivlarni dasturlash tillari) quyidagilar kiradi:
APL
Fortran 90 va undan yuqori
S-Lang, shuningdek, statistik tillar R va S
Mavjud tillarga o'xshash funktsiyalarni qo'shish uchun kutubxonalar mavjud, masalan:
NumPy /SciPy /matplotlib uchun Python
Perl ma'lumotlar tili uchun Perl
SciLua /Mash'al uchun Lua
Uchun SciRuby Yoqut
IT ++ uchun C ++
ILNumerics uchun .NET
Numeric.js for JavaScript Matlabda ma’lumotlar toifalari
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;


Foydalanilagn adabiyotlar va saytlar:

  1. ilat, Amos (2004). MATLAB: Dasturlar bilan tanishish 2-nashr. John Wiley & Sons. ISBN 978-0-471-69420-5.

  2. Quarteroni, Alfio; Saleri, Fausto (2006). MATLAB va Oktav bilan ilmiy hisoblash. Springer. ISBN 978-3-540-32612-0.

  3. Ferreyra, AJM (2009). Sonli elementlarni tahlil qilish uchun MATLAB kodlari. Springer. ISBN 978-1-4020-9199-5.

  4. Lynch, Stiven (2004). MATLAB-dan foydalangan holda dasturli dinamik tizimlar. Birxauzer. ISBN 978-0-8176-4321-8.

Download 267.96 Kb.

Do'stlaringiz bilan baham:




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