Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MatLAB.docx
Скачиваний:
58
Добавлен:
01.05.2015
Размер:
334.38 Кб
Скачать

1.9 Мысалы:

>> A = [1,2,3,4,5; -2,3,1,4,8]

>> B = [1,3,5,-2,1;1,8,-3,-1,2]

>> sin(A)

>> A .*B

>> A./B

>> A.\B

>> A.^B

>> A +2

>> 2 + A

 

         Матрицаларға қолданатын матрицалық әрекеттері

         Бұлар әдетте математикада қолданатын операциялар: қосу, алу, транспонирлеу, матрицаны санға көбейту, матрицаны матрицаға көбейту, матрицаның бүтін дәрежесін табу. Бұл әрекеттер талап ететін шарттар орындалса қолданылады: екі матрицаны қосқанда (алғанда) олардың өлшемдері бірдей, ал, көбейткенде – бірінші матрицаның тік жол сандары екінші матрицаның жатық жол сандарына тең болуы керек.

Берілген А матрицаның кері матрицасын inv(A) бұйрығымен табамыз (А матрицасы квадратты болуы керек, ал оның детерминанты нольге тең болмауы керек). Детерминант det(A) бұйрығымен табылады.

 

1.10 Мысалы:

>> A = [1 2 3 4 5; 6 7 8 9 10]

>>A’

>> B = [ 0 -1 -2 – 3 -4; 5 6 7 8 9]

>> A’*B

>> C = A*B’

>> inv(C)

>> inv(ans)             % тексеру үшін жауаптың кері матрицасын табамыз

>> A=[1 2;3 4]

>>A^2                    % матрицаны өзі-өзіне көбейту сияқты

>>A^(-2)                % дәреже теріс болса, кері матрица өзі-өзіне көбейтіледі

(Бұл мысалда % белгісінен кейін орнатылған мәтін – комментарий).

 

MatLab тілінде математикада жоқ  матрицаларды бөлу  әрекеті бар. / - солдан оңға қарай бөлу, \ - оңнан солға қарай бөлу.

В/А әрекеті B*inv(A) әрекетіне сәйкес, оны X*A=B матрицалық теңдеуді шешуге қолдану ыңғайлы, ал A\B әрекеті  inv(A)*B әрекетіне сәйкес, оны A*X=B матрицалық теңдеуді шешуге қолдану ыңғайлы,

 

1.11 мысалы:

Келесі теңдеулер жүйесін шешу қажет болсын:

         X1 + 2X2 + 3X3 = 14

        2X1 +   X - 5X3 =  -15

         X1 -    X    X3 =  -4

Шешімі (нәтижелерін экранда көру үшін, өрнектердең кейін үтірлі нүктелер қойылмаған):

>> A = [1 2 3;2  1 -5;1 -1 -1]

>> B = [14; -15; -4]

>> x = A \ B

 

MatLab-та арнайы түрдегі векторлармен матрицаларды құрастыратын функциялар бар. Олардың кейбіреуі:

zeros(m,n) –m*n өлшемді нөлдерден тұратын  матрицаны құрастырады;

ones(m,n)- m*n өлшемді бірліктерден тұратын  матрицаны құрастырады;

eye(m,n)- m*n өлшемді бас диагонал бойынша бірліктер, ал басқа элементтері нөлге тең матрицаны құрастырады;

rand(m,n)- m*n өлшемді элементтері (0,1) аралығында біртекті тараған кездейсоқ шамалардан тұратын матрицаны құрастырады;

randn(m,n)- m*n өлшемді элементтері нормалы заң бойынша тараған кездейсоқ шамалардан тұратын матрицаны құрастырады, нормалы заңның математикалық күтімі нөлге, дисперсиясы 1 тең.

 

1.4  Қолданбалы сандық математика функциялары

1.4.1    Полиномдармен жұмыс жасау

Полином вектор түрінде енгізіледі, вектор элементтері полином коэффициенттері болады:

         P = [an … a2  a1  a0]

         Кейбір функциялар:

conv(P1,P2) – екі полиномды көбейту;

deconv(P1,P2) –P1  полиномды P2 полиномға бөлу;

roots(P) –  берілген полиномның түбірлерін табу:

poly(r) – полиномның түбірлері берілсе, полиномды құрастырады;

polyval(p,x) – х аргументі берілсе, полином мәнін есептейді;

polyder(p) –полиномның туындысын табу.

 

1.12 мысалы:

P(x) = x5 + 8x4 + 31x3 + 80x2 + 94x + 20 полиномның түбірін табайық:

 

>> p= [1,8,31,80,94,20];

>> r =  roots (p)

 

         Кері операциясы – р полиномының коэффициенттерін оның туындыларын белгілейтін r вектор арқылы табу:

 

>> p1 = poly (r)

Алынған вектор жоғарғы коэффициентті көрсетпейді, себебі ол бірге тең деп алынады.

 

х = 2 тең болғанда полином мәнін есептейік:

 

>> y = polyval (p,2)

 

1.4.2    Өлшеулер мәліметтерін өңдеу

MatLab жүйесі векторлық немесе матрицалық түрінде берілген мәліметтерді өңдеуге мүмкіншілік береді:

max(V) – V вектордың максималды элементінің мәнін береді;

min(V) – V вектордың минималды элементінің мәнін береді;

sort(V) – V вектор элементтерін мәндерінің өсуі бойынша реттейді;

sum(V) – V вектордың элементтерінің қосындысын есептейді;

prod(V) – V вектордың элементтерінің көбейтіндісін есептейді;

mean(V) - V вектордың элементтерінің орта мәнін есептейді;

std(V) - V вектордың элементтерінің орта квадрат ауытқуын есептейді;

trapz(x,y) – трапециялар әдісі бойынша интегралдауды орындайды (нүктелер x, y векторларымен беріледі).

 

1.13 мысалы:

>> v = [1, 0.1, 0.5, 0.1, 0.1, 0.4]

>> disp (min(v))

>> disp (mean(v))

>> disp (std(v))

>> disp(sort(v))

>> disp(prod(v))

 

[0, π] интервалында y = sin(x) функцияның интегралын есептейік:

>> x=0: pi/100:pi;

>> y= sin(x);

>> disp (trapz(x,y))

 

Аталған функцияларды матрицаларға қолданғанда әрекеттер матрицаның тік жолдарына өткізіледі.

1.14 мысалы:

Функцияның мәндерінен құрастырылған 3 вектор бар болсын. Қарастырып отырған фунцияларды қолданайық:

 

>> y1 = [5.5 6.3 6.8 8.8 6];

>> y2 = [-1.2  0.5  -0.6  1  0.1];

>> y3 = [3.4  5.6  0  8.4  10.3];

>> A = [y1’,  y2’,  y3’]

>> max (A)

>> mean(А)

>> std (A)

>> [M, n] = max (A)        % M – максималды элемент, n – сәйкес тік жолдағы

                                              жатық жолдың номері

>> А = [1  2  3; 5  6  0;  -1  2  3]

>> sort(A)

>> det(A)       % матрица детерминантын есептейді

 

         1.4.3 Мәліметтерді аппроксимациялау

Өлшеулер мәліметтерін полиноммен аппроксимациялау үшін polyfit(X,Y,n) функциясы қолданылады; мұнда n – аппроксимациялау полиномның дәрежесі; X,Y – функцияның аргументтерімен мәндерін анықтайтын векторлар; нәтижесінде (n + 1) өлшемі бар полином коэффициентерін анықтайтын вектор алынады.

 

1.15 мысалы:

>> x = [1 2 3 4 5 6 7 8];

>> y = [-1.1  0.2  0.5  0.8  0.7  0.6  0.4  0.1];

>> polyfit(x,y,1)

ans = 0.1143  -0.2393

         Бұл жауап берілген тәуелділікті келесі y(x) = 0.1143x – 0.2393 түзумен жуықтауға болатынын анықтайды. Екінші, үшінші, төртінші дәрежесі бар қисықтармен аппроксимациялау үшін келесіні теріңіз:

>> polyfit(x,y,2)

>> polyfit(x,y,3)

>> polyfit(x,y,4)

 

1.4.4 Графиктерді салу

Графиктерді салуға қолданылатын негізгі функциясы - plot. Бұл функцияны келесі түрде қолданады:

plot(x1,y1,s1,x2,y2,s2.,…)

Мұнда x1,y1 – берілген векторлар, олардың элементтері графиктің бірінші қисықтың аргумент мәндерінің (x1) және функция мәндерінің (y1)массивтері болады;  x2,y2 – графиктің екінші қисығының аргумент және функция мәндерінің массивтері, т.с.; s1,s2 - символдық айнымалылар, оларды көрсетпесе де болады (сызудың типін, түрін анықтайды).

Графиктер бөлек фигура деп аталатын терезеде орнатылады; координаттар сызуларын көрсету үшін plot функциясынан кейін grid функциясын теру қажет.

 

1.16      мысалы: -3π –ден  +3π –ге дейін интервалында π/100 қадамымен

y = 3sin(x+π/3) функцияның графигін салу керек болсын:

 

>> x=-3*pi:pi/100:3*pi;

>> y = 3*sin(x+pi/3);

>> plot(x,y), grid

 

График аты title (‘мәтін’) процедурасы, ал координаттар осьтерінің аттары xlabel (‘мәтін’), ylabel (‘мәтін’) процедуралар көмегімен көрсетіледі.

 

>> x=-3*pi:pi/100:3*pi;

>> y =-3*sin(x+pi/3);

>> plot (x,y), grid

>> title (‘Функция y=3sin(x+π/3)’);

>> xlabel (‘Аргумент x’); ylabel (‘Функция y’)

 

1.15 мысалын толықтырайық: бір графикалық терезеде берілген дискретті функцияның және оның аппроксимациялау полиномдарының графиктерін шығарайық.

 

1.17 мысалы:

>> x = [1 2 3 4 5 6 7 8];

>> y = [-1.1  0.2  0.5  0.8  0.7  0.6  0.4  0.1];

>> P1=polyfit(x,y,1);

>> P2=polyfit(x,y,2);

>> P3=polyfit(x,y,3);

>> P4=polyfit(x,y,4);

>>stem(x,y);

>>hold

>>x=0.5:0.05:8.5;

>>y1=polyval (P1,x);

>>y2=polyval (P2,x);

>>y3=polyval (P3,x);

>>y4=polyval (P4,x);

>>plot(x,y1,x,y2,x,y3,x,y4);

>>grid:

>>title (‘Полиномиальная аппроксимация’);

>>xlabel (‘argument’);

>>ylabe l(‘function’)

Мұнда stem(x,y) процедурасы дискретті функция мәндерін вертикалды сызықтар ретінде көрсетуге қолданылады; x,y – функцияның аргументтері мен мәндерінің векторлары; дискретті функцияның графигін полиномдар графиктерімен бір фигурада көрсету үшін stem процедурасынан кейін holdпроцедурасы жазылады.

         Функция параметрлік түрде берілген болсада оның графигін салуға болады.

 

1.18      мысалы: y(x) функциясы параметрлік x = 4 e-0.05 t sin (t), y = 0.2 e-0.1 t sin (2t)

формулалармен берілген болсын. t параметрі 0-ден  50-ге дейін  0.1 қадамымен өзгереді деп алайық. Келесі операторларды терейік:

 

>> t = 0 : 0.1 : 50;

>> x = 4*exp(-0.05*t).*sin(t);

>> y = 0.2*exp(-0.1*t).*sin(2*t);

>> plot(x,y)

>> title (‘function x = 4*exp(-0.05*t).*sin(t); y = 0.2*exp(-0.1*t).*sin(2*t)’)

>> grid

 

         Функция графигін салғанда оның аргументтерін көрсетпеуге болады. Бұл кезде аргумент ретінде графигі салынатын вектордың элементінің номері алынады.

        

1.19 мысалы:

>> x= [1 3 2 9 6 8 4 9-6];

>> plot(x)

>> grid

>> title (‘График вектора x')

>> ylabel (‘значения элементов’)

>> xlabel (‘номер элемента’)

 

Векторды тік жолды диаграмма ретінде көрсеткен ыңғайлы (bar функциясы):

 

1.20 мысалы:

>> bar (x)

>> title (‘График вектора x')

>> ylabel (‘значения элементов’)

>> xlabel (‘номер элемента’)

 

2 MatLab ортасында бағдарламалау

MatLab-та калькулятор режимінің көп мүмкіншіліктері болғанымен, көп кемшіліктері де бар. Алдынғы есептеулерді қайталау үшін барлық операторларды қайтадан теру қажет, бір шарт бойынша басқа операторға көшу болмайды.

Сондықтан күрделі есептеулерді бағдарламалау қажет болады. Бағдарлама арнайы редактор тересінде енгізіледі. Ол терезені ашу үшін Файл-Создать-M-файл бұйрығы таңдалынады.

Бағдарламалардың екі түрі бар: басқару бағдарламалар (Script-файлдар) және процедуралар (файл-функциялар). Барлық бағдарламалардың файл аттарының кеңейтілуі .m болады.

Біздер файл-функцияларды қарастырып кетеміз. Олардың бірінші жолы келесі түрде болады:

Function <соңғы шамалардың тізімі> =

                                    <процедура аты> (<кірудегі шамалардың тізімі >)

Script-файлдардың осындай жолы жоқ.

         Файл-функцияларда барлық айнымалылар локалды болып есептеледі, ал Script-файлдарда олар жұмыс ортасын құрастырады (work space), бұл орта жүйемен ағынды жұмыс сеансында қолданатын барлық Script-файлдар үшін ортақ болады.

 

М-файлдарды суреттеу:

- әр оператор бөлек жолда жазылады; оператор соңында үтірлі нүкте (;) символын орнатқан дұрыс (сонда оператор әрекеті бұйрық терезеге шығарылмайды);

- бірнеше операторды үтір немесе үтірлі нүктемен бөліп бір жолда орнатуға

болады;

- ұзын операторды бірнеше жолға енгізу болады, онда алдынғы жол үш нүктемен (...) аяқталуы қажет;

- комментарий жолы % символынан басталады;

- бірінші орындалатын оператордың алдында комментарий жолдары орнатылады, олардан кейін бос жол қалдырып кеткен жөн, комментарий жолдары жүйемен бағдарлама бейнелеуі ретінде қабылданады және бұйрық терезеге help <файл аты> мәтінін еңгізсе комментарий бұйрық терезеге шығарылады;

- бағдарлама мәтінінің аяқталу операторы жоқ;

- айнымалылар бейнеленбейді, олардың өлшемдері қолданған кезде орнатылады;

- айнымалылар аттары тек қана латын әріптерінен және цифрлерден тұрады, әріптен басталады, символдар саны 19-дан кем, үлкен және кіші әріптер айырылады.

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]