ОӘК
042-18-12.1.55/3-2013
№1 басылым 18.09.2013ж
50 беттің 37-сі
end
end
end
мұнда disp функциясымен барлық аралық қосынды қатары шешімі Matlab
жүйесінің командалық терезесіне шығарылады. Егер пайдаланушы перне тақтадан
‘y’ латын символын енгізсе, онда есептеу тоқтатылады, яғни return функциясынан
жылдам шығатын оператор орындалады. Перне тақтадан ақпаратты енгізу және ans
айнымалысының мәні input функциясымен жүзеге асады. Екінші аргумент бойынша
input функциясын ‘S’ символ қолданылады, яғни input функциясы символды мән
қабылдау керек.
Енді жаңа sprintf функциясын пайдаланайық, мүнда ӛз аргументінің мәні шығу
жолына ығыстырады.
1-суретте Matlab жүйесінің командалық терезесі кӛрсетілген, мұнда мысалға
ағымдағы қосынды қатарының 10 мәні үшін 12 367 мүшесін осы қатарға
қосындылау керек:
1-сурет
Ескерпелі хабарлама шығару кезінде
disp функциясының орнына
warning
функциясын қолданған тиімді, яғни оның командалық терезеден шығуы ӛте басым
болады, егер келесі команда орындалса:
warning off
warning функциясының қайта жаңарып шығуы келесі команда кӛмегімен жүзеге
асады:
warning on
Егер М-функция денесінде осы немесе басқа қате жағдайда код табылса, онда
М-функцияның шығуын тоқтатып
error функциясын шақырамыз. Мысалы, тӛменде
функция кӛрсетілген, яғни мұнда сандық скалярлы параметрге кері шаманы
ОӘК
042-18-12.1.55/3-2013
№1 басылым 18.09.2013ж
50 беттің 38-сі
есептейді:
function y=Inverse(x)
if x==0
error (‘Division by zero’)
else
y=1./X;
end
Ұсынылатын әдебиет:
1.Статистический анализ данных в пакете Mathcad Радченко Т.А., Дылевский А.В,
Воронеж, 2004
2.Дьяконов В.П. Справочник по MathCAD PLUS 6.0 PRO. - М.: СК-Пресс, 1997.
5-Лабораториялық сабағы.
Тақырыбы: MatLab-та матрицалармен жұмыс, графиктер салу
Matlab жүйесінде функцияны орындау үшін екі арнайы функциялар бар: eval
және feval.
Айталық пайдаланушы перне тақтадан strl жолдық айнымалыға келесі мазмұнды
енгізсін:
‘A=[1 2 3; 4 5 6; 7 8 9];’
мұнда А атымен матрица құрылған және тоғыз сандық элементпен кӛрсетілген.
Осы жұмысты eval функциясы орындайды:
eval(str1);
осыдан А атымен кӛрсетілген сандық айнымалы пайда болады. Егер
пайдаланушы келесі жолды енгізсе:
‘x1=sin(1.25);’
онда eval функциясы осы жолдың синтаксистік талдауын орындап sin(1.25)
функциясының мәнін есептейді.
Егер eval функциясымен жұмыс процессінде қате жағдай туатын болса,
онда Matlab жүйесінің командалық терезесінде қате хабар кӛрсетіледі. Мысалы, егер
біз S жолын келесі бейнеде кӛрсетсек:
S=’sin(1.25’;
және eval(S) функциясын командалық терезеде шақырсақ, онда келесідей
хабарламаны кӛреміз:
Improper function reference. a ‘,’ or ‘)’ is expected.
үтір немесе жақша кем екенін білдіреді.
ОӘК
042-18-12.1.55/3-2013
№1 басылым 18.09.2013ж
50 беттің 39-сі
Егер дәл осындай жағдай М-функция денесінде орындалса, онда Matlab
жүйесінің командалық терезесінде М-функцияның қай жолында қате бар екенін
кӛрсетеді.
М-функцияға сәйкес мысал, мұнда қатені ӛңдеуге арналған MyErrorCatch
арнайы функциясы кӛрсетілген:
function y=ErrorTest
s=input(‘Enter string:’,’S’);
y=eval(S,’MyErrorCatch’);
Eval функциясы күрделі ӛрнектерді шешуге, ал feval функциясы қосымша
параметр беретін дара функцияны есептеуге арналған.
feval(str, x1, x2,…xN)
мұнда x1, x2,…xN аргумент мәнін есептейтін str жолы функция атын береді. Feval
функциясын қолданғандағы жай мысал:
FunName={‘cos’,’sin’,’tan’};
m=input(‘Enter function index:’);
x=feval(FunName{m}, 0.5);
Егер пернетақтадан екі бүтін сан берілсе, онда feval функциясының кӛмегімен
0,4794 тең болатын
sin(0.5) мәні есептеледі.
Рекурсивті функциялар. М-функциялардың шығуы.
Бірдей есептердің шешімінің түрлі алгоритмдерді шығатын функциялар
арасында салыстырмалығын бастамас бұрын, тағы бір бүтін оң санды факториалды
есептеу туралы вариантының есебін шешу керек. Ол вариант рекурсивті
функцияларды қолдануға негізделген.
Функция рекурсивті деп аталады, егер оның денесінде ӛзін шақыратын болса.
Бұл жағдайдың абсолютті ресми мысалы былай:
Function y=SimpleRecursF(x)
…
z=SimpleRecursF(t)+x.*x;
…
SimpleResursF функция денесінде осы функция шақырылатын болса, онда
функцияны анықтау бойынша рекурсивті болады. Циклдық рекурсияның
шақырылуымен байланысты қателер ӛте жиі болады, сондықтан бұл функциядан
шығудың соңы әлі емес және компьютер «тұрып» қалады. Егер жағдай болмаса
Matlab жүйесіндегі ақырлы санды шектеулердің рекурсивті шақырылуы сол жүйенің
ӛзінде барлық М-функциялар толық басқарылады. Бір жағынан дұрыс, ал бір
жағынан олардың рӛлін шектейтін рекурсивті функцияладың орындалу процесінде
кедергіні білдіреді.
Matlab пакеті кӛлеміндегі рекурсивті функциялар мүмкін болады және оны біз