- •2.2 Дәрістік сабақтардың конспектісі
- •1 Дәріс. Кіріспе. MatLab ортасы туралы жалпы мәліметтер
- •1.2 Сурет. Командалар терезесі Жұмыс ортасы келесі негізгі элементтерден тұрады:
- •1.3 Сурет. Екі санның қосындысы
- •1.6 Жұмыс ортасын сақтау
- •2 Дәріс. MatLab тілінде элементарлық функцияларды қолдану
- •2.1 Сурет. Функцияның мәнін командалар терезесінде енгізу және нәтижесін көрсету
- •3 Дәріс. Векторлармен жұмыс, оларға қолданылатын функциялар
- •3.1 Сурет. Векторды енгізу
- •4 Дәріс. Матрицалармен жұмыс, оларға қолданылатын функциялар
- •4.1 Сурет.
- •4.2 Сурет. М матрицасын интерпретациялау
- •5 Дәріс. Екі және үш өлшемді графиктерді құру
- •5.2 Сурет
- •5.3 Сурет.
- •5.4 Сурет. Үш өлшемді график
- •5.6 Сурет. Каркасты 3d_графикты құру мысалы
- •5.7 Сурет. Үшөлшемді графикті форматтау мысалы
- •5.8 Сурет. Графиктің бағытын өзгерту
- •6 Дәріс. Таңдау, шарттық және циклдық операторлар
- •7 Дәріс. Сценарийлері мен функциялары бар м-файлдар
- •7.1 Сурет. Pcr файлымен жұмыстың мысалы
- •8 Дәріс. M-файлды орындауды басқару
- •9 Дәріс. Функцияның минимумын табу
- •10 Дәріс. Gui арқылы қосымша құру принциптері
- •11 Дәріс. Guide ортасында оқиғаларды бағдарламалау
- •12 Дәріс. Simulink пакетімен жұмыс істеуді үйрену
- •12.3 Сурет. Sinks блогының терезесі
- •12.4 Сурет. Scope блогы
- •12.5 Сурет. Sources блогының терезесі
- •13 Дәріс. Бейсызықты жүйелерді моделдеу
- •14 Дәріс. Simulink пакетін қолданып дифференциалды теңдеулерді және динамикалық процестерді моделдеу
- •15 Дәріс. Басқару жүйесінің математикалық моделдерінің әртүрлі формаларымен жұмыс істеу
- •2.3 Зертханалық жұмыстардың жоспары
- •Зертрханалық жұмыс «MatLab бағдарламасымен танысу»
- •– Зертханалық жұмыс «Сызықты алгебраның есептері»
- •«Векторлармен және матрицалармен жұмыс істеу»
- •«Полиномдар және олармен жұмыс істеу операциялар»
- •«Дифференциалдық теңдеулерді сандық шешімдерді табу»
- •«Анықталған интегралдарды есептеу»
- •«Matlab ортасында бейсызықты теңдеулердің түбірін табу»
- •«Тиімділеу әдістердің сандық шешімін м-файлда бағдарламалау»
- •«Matlab ортасында бағдарламалау if, else тармақталу операторлары»
- •«2 Және 3 өлшемді графиктерді құрып үйрену»
- •«Matlab ортасындағы gui құру»
- •«Simulink ортасында модельдерді құру»
- •«Simulink ортасында дифференциалдық теңдеулерді модельдеу»
- •«Simulink ортасында Stateflow жүйесін қолдану»
- •2.4 Студенттің оқытушының жетекшілігімен жасайтын өзіндік жұмыстарының жоспары (соөж)
- •Студеттің өзіндік жұмыстарының жоспарлары (сөж)
- •2.6 Бақылау үшін тест сұрақтары
- •Дұрыс жауаптардың кодтары
- •2.7 Өтіліп кеткен курс бойынша емтихандық сұрақтар
- •2.2 Дәрістік сабақтардың конспектісі ......…………….…………….. 8
7 Дәріс. Сценарийлері мен функциялары бар м-файлдар
7.1 Сценарий файлдарының құрылымы мен қасиеті
Сонымен, біз пәрменді тәртіптегі (сессия) жұмыс бағдарламалау болып табылмайтынын орнаттық. MATLAB-та соңғының сыртқы атрибуты болып m-файл түрінде жазылған бағдарлама бойынша әрекеттер тізбегінің тапсырмасы қызмет атқарады. 5-сабақта m-файлдарды құру үшін ASCII форматын ұстап тұратын тұрғызылған редактор секілді кез келген мәтіндік редактор қолданылуы мүмкін екендігі көрсетілген. Дайындалған және дискке жазылған m-файл жүйенің бөлігі болады, және оны пәрменді жолдан шақырғандай басқа m-файлдан шақыруға болады. m-файлдардың екі түрі бар: файл-сценарийлер және файл-функциялар. Маңыздысы, өзінің құрылу үрдісінде MATLAB жүйесіне түрғызылған редакторы/ m-файлдар дурыстаушысы көмегімен синтаксистік бақылаудан өтеді.
Файл-сценарий, және де Script-файл деп аталады, кіріс және шығыс параметрлерісіз пәрмендер сериясының жай жазбасы болып табылады. Ол келесі құрылымда болады:
оларда кіріс және шығыс аргументтері болмайды;
жұмыс аймағындағы деректермен жұмыс жасады;
орындау үрдісінде құрастырылмайды;
өз алдына фиксерленген файл түріндегі сессияда қолданылатынға толықтай ұқсас операциялар тізбегін ұсынады.
Негізгі түсіндірме болып мәтіндік түсіндірмелердің бірінші жолы, ал қосымша түсіндірме кейінгі жолдар болып табылады. Негізгі түсіндірмелер каталог атының lookfor және help пәрмендерін орындау кезінде шығарылады. Толық түсіндірмелер файл атының help пәрменін орындау кезінде шығарылады. Келесі файл-сценарийді қарастырайық:
%Plot with color red
%Қызыл түсті жолақтың синусоида графигін құру
%с масштабты тормен [xmin.xmax] интервалда шығарылған
x=xmin:0.1:xmax;
plot(x.sin(x).'r')
grid on
Алғашқы үш жол мұнда – бұл түсіндірмелер, қалғандары – файл денесі. Орыс тіліндегі түсіндірме тапсырмасының мүмкіндіктеріне назар аударыңыз. % белгісі түсіндірмелерде жолдың алғашқы позициясынан басталу керек. Кері жағдайда help name пәрмені түсіндірмелерді қабылдамайды (кейде бұл қажет болады) және No help comments found in-name.m түріндегі хабарламаға қайтарады.
xmin және xmax айнымалылары бар мәндер файл денесінде қолданылған тапсырмаға алып баратын алдын ала дайындықсыз осындай файлды жіберуге болмайтынына назар аударыңыз. Бұл файл-сценарийлердің бірінші қасиетінің салдары – олар жұмыс аймағындағы мәліметтермен жұмыс жасайды. Файл-сценарийлерде қолданылатын айнымалылар глобалды болып табылады, яғни олар сессия пәрмендерінде бірдей және файл-сценарий болып табылатын бағдарламалы блоктың ішінде әрекет жасайды. Сондықтан сессияда берілген айнымалылар мәндері файл денесінде де қолданылады. Файл-сценарийлер атауларын функция параметрлері ретінде қолдануға болмайды, себебі файл-сценарийлер мәндерді қайтармайды. Файл-сценарий – бұл MATLAB бағдарламалау тіліндегі қарапайым бағдарлама (файл-сценарийлерді құрастыруға болмайды. Оларды құрастыру алдында файл-функцияға түрлендіруге болады.)
7.1 Сурет. Pcr файлымен жұмыстың мысалы
7.2 М-файл-функция құрылымы
М-файл-функция MATLAB жүйесі бағдарламалау тілінің әдеттегі объектісі болып табылады. құрылымдық бағдарламалау көзкарасымен біруақытта толыққанды модуль болып табылады, өйткені, кіріс пен параметрлерден тұрады және жергілікті айнымалылар аппаратын қолданады. Бір шығыс параметрі бар осындай модульдің құрылымы келесі түрде көрінеді:
function var=f_name(параметрлер_тізімі)
%Негізгі түсіндірме
%Қосымша түсіндірме
Кез келген көрінісі бар файл денесі
vаr=көрініс
М-файл-функция келесі қасиеттерге ие:
ол function басталады, одан кейін van айнымалысы – шығыс параметрінің аты, функцияның өз аты және оның шығыс параметрлерінің тізімі көрсетіледі;
функция өз мәнін қайтарады және математикалық өрнектерде деname(параметрлер_тізімі) түрінде қолданылуы мүмкін;
файл-функция денесінде бар болатын барлық айнымалылар жергілікті болып табылады, яғни тек функция денесінің шегінде әрекет етеді;
файл-функция өз бетімен бағдарламалық модуль болып табылады, басқа модульдермен өзінің кіріс және шығыс параметрлері арқылы байланысады;
түсіндірмені шығару ережесі файл-сценарийлердегідей;
файл-функция MATLAB жүйесін кеңейту құралы қызметін атқарады;
файл-функцияны тапқан кезде ол құрастырылады және содан кейін орындалады, ал құрылған машиналы кодтар MATLAB жүйесінің жұмыс аймағында сақталады.
Соңғы құрылма var=көрініс кірістіріледі, егер функция есептеу нәтижесін қайтаруы талап етілсе.
Файл-функцияның келтірілген формасы бір шығыс параметрі бар функция үшін тән. Егер шығыс параметрлері көп болса, олар function сөзінен кейін төртбұрыш жақшада көрсетіледі. Осыдан модуль құрылымы келесі түргеде болады:
function [varl,var2....]=f_name(Параметрлер_тізімі)
%Негізгі түсіндірме
%Қосымша түсіндірме
Кез келген көрінісі бар файл денесі
vаг1=көрініс
vаг2=көрініс
Осындай функция көбінесе рәсімді (процедура) еске түсіреді. Оны көз жұма отырып математикалық өрнектерде өз бетімен қолдануға болмайды, себебі ол жалғыз нәтижені қайтармайды, ол нәтижелер көптігін шығыс параметрлерінің саны бойынша қайтарада. Егер функция жалғыз шығыс параметрі бар болып қолданылса, бірақ шығыс параметрлері қатарына ие болса, онда мәнді қайтару үшін олардан біріншісі қолданылады. Бұл математикалық есептеулерде қателіктерге жиі алып келеді. Сондықтан, белгіленгендей, берілген функция мына түрдегі бағдарламаның жеке элементі ретінде қолданылады:
[var1,va2,... ]=f_nаmе(Параметрлер_тізімі)
Оны қолданғаннан кейін шығыс айнымалылар var1, var2, … анықталған болады және оларды кейінгі математикалық өрнектер мен бағдарламаның басқа сигменттерінде қолдануға болады. Егер функция name(Параметрлер_тізімі) түрінде қолданылса, онда тек қана бірінші шығыс мәні – var1 айнымалысы қайтарылады.
7.3 Функцияның m-файлдарын орындау ерекшеліктері
М-файл-функциялар пәрменді тәртіпте қалай қолданылсы, солай басқа М-файлдардан шықырылуы мүмкін. Бұл кезде барлық шығыс және кіріс параметрлерін көрсету қажет. Шығыс параметр жалғыз болғанда осы нұсқада функция жалғыз нәтижені қайтарса және математикалық өрнектерде қолданыла алса, бұл жағдай ерекше болып табылады. глобальды айнымалыларды қолдану кезінде олар берілген есептердің шешімінде қолданылатын барлық m-файлдарда және оларға кіретін барлық кірістірілген ішкіфункцияларда жарнамалану керек.
Функция атаулары қайталанбайтын болу керек. Бұл мынаған байланысты, әр жаңа атауды тапқан кезде бұл атау айнымалыға, берілген m-файлдағы ішкі функцияға, PRIVATE каталогындағы жеке функцияға немесе кіру жолындағы каталогтардың біріндегі функцияға тиісті екендігін MATLAB тексереді. Егер соңғысы кездессе, онда тек дәл осы функция орындалады. MATLAB-тың жаңа нұсқасында функцияны артық анықтау болуы мүмкін, бірақ бұны жүйені пайдаланушылардың басым көпшілігіне қолдануға кеңес берілмейді.
Егер функция аргументі тек есептеулер үшін қолданылса және оның мәндері өзгермесе, онда аргумент сілтемемен жіберіледі, ол жады шығынын азайтады. Басқа жағдайларда аргумент мәндермен жібеіледі. Әр функция үшін MATLAB жүйесіне бөлінген аймаққа кірмейтін өз (жұмыс) жады аймағы бөлінеді. Глобалды айнымалылар жады аймағына жатады. Олардың өзгерісі кезінде барлық осы аймақ ішіндегілер өзгереді.
Мәліметтердің үлкен көлемді есептерін шешу кезінде оперативті жадының жетіспеушілігі білінуі мүмкін. Қателік туралы «Out of memory» хабарламасының пайда болуы бұның нышаны болады.
Осы кезде келесі шараларды қолдану пайдалы болуы мүмкін:
қажетсіз болып қалған мәліметтерді өшіру, бәрінен бұрын үлкен массивтерді;
Windows ішкіжүктеме файлдарының өлшемдерін арттыру;
қолданылған мәліметтердің өлшемдерін кішірейту;
қолданылатын жады өлшемдеріне шектеулерді алып тастау;
компьютердің физикалық жады көлемін арттыру;
MATLAB жүйесі қолданылатын компьютердің ОЕҚ сыйымдылығы қанша үлкен болса, көрсетілген қателіктің пайда болу ықтималдығы соншалықты аз болады. Тіпті біркелкі күрделі есептерді шешу кезінде ОЕҚ сыйымдылығы 16-31 Мбайттан кем болмау керектігін тәжірибе көрсетеді.
7.4 Нөмірленген жолдары бар m-файл листингін шығару
m-файлдарды дұрыстаудың бір тәсілі – оларға тоқтату нүктесін орналастыру. Дегенмен пәрменді тәртіпте осындай нүктелерді орнатуды тышқан курсоры көмегімен (Windows дұрыстаушысындағыдай) орнатуды тапсыруға болмайды. Сондықтан нөмірленген жолдары бар бағдарлама листингі болу керек. Ол dbtype пәрменә көмегімен құрылады.
Мысал:
» keyboard
К» dbtype sw1
1 switch var
2 case {1.2.3}
3 disp(' Бірінші квартал')
4 case {4.5,6}
5 disp(Екінші квартал')
6 case {7,8.9}
7 disp('Үшінші квартал')
8 case {10.11,12}
9 disp('төртінші квартал')
10 otherwise
11 disp('Есептегі қате)
12 end
K»
Әдебиет: 1 нег.[205-220 ], 2 нег.[83-100], интернет.
Бақылау сұрақтары:
1. Сценарий файлдарының құрылымы мен қасиеті
2. М-файл-функция құрылымы
3. Функцияның m-файлдарын орындау ерекшеліктері
4. Нөмірленген жолдары бар m-файл листингін шығару
