Анализ возможностей использования матричных макроопераций системы MatLab при решении прикладных задач
На примерах решения практических задач программирования проанализированы возможности использования векторных и матричных макроопераций для реализации классических и оригинальных алгоритмов. Для объяснения основных особенностей этих операций введены новые понятия арифметико-логического выражения, рек...
Збережено в:
| Опубліковано в: : | Электронное моделирование |
|---|---|
| Дата: | 2009 |
| Автор: | |
| Формат: | Стаття |
| Мова: | Російська |
| Опубліковано: |
Інститут проблем моделювання в енергетиці ім. Г.Є. Пухова НАН України
2009
|
| Теми: | |
| Онлайн доступ: | https://nasplib.isofts.kiev.ua/handle/123456789/101492 |
| Теги: |
Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
|
| Назва журналу: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| Цитувати: | Анализ возможностей использования матричных макроопераций системы MatLab при решении прикладных задач / И.В. Мельник // Электронное моделирование. — 2009. — Т. 31, № 3. — С. 37-51. — Бібліогр.: 10 назв. — рос. |
Репозитарії
Digital Library of Periodicals of National Academy of Sciences of Ukraine| _version_ | 1859705246655184896 |
|---|---|
| author | Мельник, И.В. |
| author_facet | Мельник, И.В. |
| citation_txt | Анализ возможностей использования матричных макроопераций системы MatLab при решении прикладных задач / И.В. Мельник // Электронное моделирование. — 2009. — Т. 31, № 3. — С. 37-51. — Бібліогр.: 10 назв. — рос. |
| collection | DSpace DC |
| container_title | Электронное моделирование |
| description | На примерах решения практических задач программирования проанализированы возможности использования векторных и матричных макроопераций для реализации классических и оригинальных алгоритмов. Для объяснения основных особенностей этих операций введены новые понятия арифметико-логического выражения, рекуррентного арифметико-логического выражения и вектора-функции. Показано, что при решении задач среднего уровня сложности предложенный подход может стать альтернативой современным методам и средствам структурного программирования.
На прикладах розв’язку практичних задач програмування проаналізовано можливості використання векторних та матричних макрооперацій для реалізації класичних та оригінальних алгоритмів. Для пояснення головних особливостей цих операцій введено нові поняття арифметико-логічного виразу, рекурентного арифметико-логічного виразу та вектора-функції. Показано, що при розв’язуванні задач середнього рівня складності запропонований підхід може стати альтернативою сучасним методам та засобам структурного програмування.
The possibilities of using the vector and matrix macrooperations to realize classical and original algorithms have been analyzed in the paper on the examples of solving the pragmatic programming tasks. Some new definitions of the arithmetic-logical expression, recurrent arithmetic-logical expression and vector-function were introduced to explained the basic singularities of the analyzed macrooperations. It is demonstrated on a lot of different examples, that the proposed method can be really considered as an alternative to currently used structured coding for the tasks of middle-level complicity.
|
| first_indexed | 2025-12-01T02:07:21Z |
| format | Article |
| fulltext |
ÓÄÊ 519.6
È. Â. Ìåëüíèê, ä-ð òåõí.íàóê
Íàöèîíàëüíûé òåõíè÷åñêèé óíèâåðñèòåò Óêðàèíû
«Êèåâñêèé ïîëèòåõíè÷åñêèé èíñòèòóò»
(Óêðàèíà, 03056, Êèåâ, ïð. Ïîáåäû, 37, êîðï. 12, 2203
òåë. (044) 2419672, (044) 4549505, E-mail: imelnik@edd.ntu-kpi.kiev.ua)
Àíàëèç âîçìîæíîñòåé èñïîëüçîâàíèÿ
ìàòðè÷íûõ ìàêðîîïåðàöèé ñèñòåìû MatLab
ïðè ðåøåíèè ïðèêëàäíûõ çàäà÷
(Ñòàòüþ ïðåäñòàâèë ÷ë.-êîð. ÍÀÍ Óêðàèíû Â. Â. Âàñèëüåâ)
Íà ïðèìåðàõ ðåøåíèÿ ïðàêòè÷åñêèõ çàäà÷ ïðîãðàììèðîâàíèÿ ïðîàíàëèçèðîâàíû âîçìîæ-
íîñòè èñïîëüçîâàíèÿ âåêòîðíûõ è ìàòðè÷íûõ ìàêðîîïåðàöèé äëÿ ðåàëèçàöèè êëàññè÷åñ-
êèõ è îðèãèíàëüíûõ àëãîðèòìîâ. Äëÿ îáúÿñíåíèÿ îñíîâíûõ îñîáåííîñòåé ýòèõ îïåðàöèé
ââåäåíû íîâûå ïîíÿòèÿ àðèôìåòèêî-ëîãè÷åñêîãî âûðàæåíèÿ, ðåêóððåíòíîãî àðèôìå-
òèêî-ëîãè÷åñêîãî âûðàæåíèÿ è âåêòîðà-ôóíêöèè. Ïîêàçàíî, ÷òî ïðè ðåøåíèè çàäà÷ ñðåä-
íåãî óðîâíÿ ñëîæíîñòè ïðåäëîæåííûé ïîäõîä ìîæåò ñòàòü àëüòåðíàòèâîé ñîâðåìåííûì
ìåòîäàì è ñðåäñòâàì ñòðóêòóðíîãî ïðîãðàììèðîâàíèÿ.
Íà ïðèêëàäàõ ðîçâ’ÿçêó ïðàêòè÷íèõ çàäà÷ ïðîãðàìóâàííÿ ïðîàíàë³çîâàíî ìîæëèâîñò³
âèêîðèñòàííÿ âåêòîðíèõ òà ìàòðè÷íèõ ìàêðîîïåðàö³é äëÿ ðåàë³çàö³¿ êëàñè÷íèõ òà îðè-
ã³íàëüíèõ àëãîðèòì³â. Äëÿ ïîÿñíåííÿ ãîëîâíèõ îñîáëèâîñòåé öèõ îïåðàö³é ââåäåíî íîâ³
ïîíÿòòÿ àðèôìåòèêî-ëîã³÷íîãî âèðàçó, ðåêóðåíòíîãî àðèôìåòèêî-ëîã³÷íîãî âèðàçó òà
âåêòîðà-ôóíêö³¿. Ïîêàçàíî, ùî ïðè ðîçâ’ÿçóâàíí³ çàäà÷ ñåðåäíüîãî ð³âíÿ ñêëàäíîñò³ çà-
ïðîïîíîâàíèé ï³äõ³ä ìîæå ñòàòè àëüòåðíàòèâîþ ñó÷àñíèì ìåòîäàì òà çàñîáàì ñòðóêòóð-
íîãî ïðîãðàìóâàííÿ.
Ê ë þ ÷ å â û å ñ ë î â à: ìàòðè÷íûå ìàêðîîïåðàöèè, àðèôìåòèêî-ëîãè÷åñêîå âûðàæåíèå,
ðåêóððåíòíûå âû÷èñëåíèÿ, ðåêóððåíòíîå àðèôìåòèêî-ëîãè÷åñêîå âûðàæåíèå, âåêòîð-
ôóíêöèÿ.
Ìàòåìàòè÷åñêèå ÑÀÏÐ íàõîäÿò âñå áîëåå øèðîêîå ïðèìåíåíèå ïðè ðåàëè-
çàöèè èíæåíåðíûõ è íàó÷íî-òåõíè÷åñêèõ ðàñ÷åòîâ, è ÷èñëî ñòîðîííèêîâ
èõ èñïîëüçîâàíèÿ óâåëè÷èâàåòñÿ ñ êàæäûì ãîäîì.  ïîñëåäíåå âðåìÿ
ñðåäè ñóùåñòâóþùèõ ìàòåìàòè÷åñêèõ ÑÀÏÐ îñîáîå ìåñòî çàíèìàåò ñèñ-
òåìà MatLab, îðèåíòèðîâàííàÿ íà èñïîëüçîâàíèå ìàòðè÷íûõ è âåêòîðíûõ
ìàêðîîïåðàöèé ïðè îáðàáîòêå ÷èñëîâûõ ñòðóêòóð äàííûõ [1,2]. Îñíîâ-
íûìè ïðåèìóùåñòâàìè ýòîé ÑÀÏÐ ÿâëÿåòñÿ îòêðûòûé ïðîãðàììíûé êîä
äëÿ áîëüøèíñòâà ôóíêöèé è ïðèíöèï ìîäóëüíîé àðõèòåêòóðû. Â ÿçûêå
ISSN 0204–3572. Ýëåêòðîí. ìîäåëèðîâàíèå. 2009. Ò. 31. ¹ 3 37
ïðîãðàììèðîâàíèÿ ñèñòåìû MatLab ðåàëèçîâàíû ðàçëè÷íûå ñîâðåìåííûå
ïîäõîäû è ïàðàäèãìû ïðîãðàììèðîâàíèÿ, âêëþ÷àÿ ñòðóêòóðíîå, îáúåêò-
íî-îðèåíòèðîâàííîå, ëîãè÷åñêîå, ôóíêöèîíàëüíîå è ìîäóëüíîå ïðîãðàì-
ìèðîâàíèå [1,2].
Îäíàêî ñòîðîííèêè èñïîëüçîâàíèÿ ñèñòåìû MatLab â èíæåíåðíîé è
íàó÷íîé äåÿòåëüíîñòè ñ÷èòàþò, ÷òî â ñèñòåìàõ ñ ðàçâèòûì íàáîðîì ìàò-
ðè÷íûõ ìàêðîîïåðàöèé ìîæíî âîîáùå îòêàçàòüñÿ îò èñïîëüçîâàíèÿ òðà-
äèöèîííûõ ìåòîäîâ è ñðåäñòâ ñòðóêòóðíîãî ïðîãðàììèðîâàíèÿ. Ïðè ýòîì
ðå÷ü èäåò â îñíîâíîì îá îïåðàòîðàõ öèêëà è íå óïîìèíàþòñÿ âåòâÿùèåñÿ
âû÷èñëèòåëüíûå ïðîöåññû è óñëîâíûé îïåðàòîð [2].
 ðåçóëüòàòå àíàëèçà ëèòåðàòóðíûõ èñòî÷íèêîâ ìîæíî ñäåëàòü âûâîä
î òîì, ÷òî äëÿ îïðåäåëåíèÿ ïîòåíöèàëüíûõ âîçìîæíîñòåé èñïîëüçîâàíèÿ
ìàòðè÷íûõ è âåêòîðíûõ ìàêðîîïåðàöèé ïðè ðåàëèçàöèè êëàññè÷åñêèõ è
îðèãèíàëüíûõ àëãîðèòìîâ íåîáõîäèìî ïðîâåäåíèå äîïîëíèòåëüíûõ ñèñ-
òåìíûõ èññëåäîâàíèé ïî èçó÷åíèþ îáîáùåííûõ ñâîéñòâ ýòèõ îïåðàöèé è
âîçìîæíîñòåé èõ ïðàêòè÷åñêîãî ïðèìåíåíèÿ, âêëþ÷àÿ ïðèíöèïèàëüíûå
îãðàíè÷åíèÿ.
Ðàññìîòðèì âîçìîæíîñòü ðåàëèçàöèè ñòàíäàðòíûõ âû÷èñëèòåëüíûõ
àëãîðèòìîâ ÷åðåç ìàòðè÷íûå ìàêðîîïåðàöèè.  êà÷åñòâå òåñòîâûõ êëàññè-
÷åñêèõ çàäà÷ áóäåì îñóùåñòâëÿòü ïîèñê ìèíèìàëüíûõ è ìàêñèìàëüíûõ çíà-
÷åíèé è ñîðòèðîâêó ýëåìåíòîâ âåêòîðà. Äëÿ ïðîñòîòû îïèñàíèÿ îñîáåííîñòåé
ðåàëèçàöèè âû÷èñëèòåëüíûõ àëãîðèòìîâ ÷åðåç ìàòðè÷íûå ìàêðîîïåðàöèè
ââåäåì òàêèå áàçîâûå ïîíÿòèÿ, êàê àðèôìåòèêî-ëîãè÷åñêîå âûðàæåíèå, ðå-
êóððåíòíîå àðèôìåòèêî-ëîãè÷åñêîå âûðàæåíèå è âåêòîð-ôóíêöèÿ.
Ñóùåñòâóþùèå âåêòîðíûå è ìàòðè÷íûå ìàêðîîïåðàöè. Íàèáîëåå
èíòåðåñíûì äîñòèæåíèåì ðàçðàáîò÷èêîâ ñèñòåìû MatLab â îáëàñòè èñïîëü-
çîâàíèÿ ìàòðè÷íûõ ìàêðîîïåðàöèé ÿâëÿåòñÿ ïîýëåìåíòíàÿ îáðàáîòêà óïîðÿ-
äî÷åííûõ ÷èñëîâûõ ñòðóêòóð, âêëþ÷àÿ ñîîòâåòñòâóþùèå îïåðàöèè íàä ìàò-
ðèöàìè è âåêòîðàìè [1,2].  êà÷åñòâå ïðèìåðà ðàññìîòðèì äâå ïðîãðàììû
äëÿ âû÷èñëåíèÿ ñóììû êâàäðàòîâ ýëåìåíòîâ äâóõ âåêòîðîâ, íàïèñàííûå ñ
èñïîëüçîâàíèåì ïîýëåìåíòíûõ îïåðàöèé è ñðåäñòâàìè ñòðóêòóðíîãî ïðî-
ãðàììèðîâàíèÿ.
Ïðèìåð 1. Ïîýëåìåíòíûå îïåðàöèè
»V1=[1,2,7,3,4];
»V2=[4,2,7,3,9];
»R= V1.^2+V2.^2
»R =
17 8 98 18 97
»
È. Â. Ìåëüíèê
38 ISSN 0204–3572. Electronic Modeling. 2009. V. 31. ¹ 3
Ñòðóêòóðíîå ïðîãðàììèðîâàíèå
V1=[1,2,7,3,4];
V2=[4,2,7,3,9];
for ii=1:length(V1)
R(ii)=V1(ii)^2+V2(ii)^2;
end;
Áîëåå ñëîæíûì ïðèìåðîì ýôôåêòèâíîãî èñïîëüçîâàíèÿ ìàòðè÷íûõ
ìàêðîîïåðàöèé â MatLab ÿâëÿåòñÿ ìíîæåñòâåííàÿ èíäåêñàöèÿ [2]. Ðàñ-
ñìîòðèì âîçìîæíîñòü åå ïðèìåíåíèÿ íà ïðèìåðå îáðàùåíèÿ ê ñîâîêóï-
íîñòè ýëåìåíòîâ âåêòîðà. Äîïóñòèì, íåîáõîäèìî âûäåëèòü ýëåìåíòû âåê-
òîðà ñ ïÿòîãî ïî âîñüìîé.
Ïðèìåð 2.
»V1=[9,8,7,6,5,4,3,2,1];
»ii=[5:8];
»V2=V1(ii)
»V2 =
5 4 3 2
»
Òàêèì îáðàçîì, ïîýëåìåíòíûå îïåðàöèè è ìíîæåñòâåííàÿ èíäåêñàöèÿ
ìîãóò èñïîëüçîâàòüñÿ êàê äåêëàðàòèâíûå îïåðàòîðû ÿçûêà âûñîêîãî óðîâ-
íÿ âìåñòî îïåðàòîðîâ öèêëà. Ïðîàíàëèçèðóåì âîçìîæíîñòè èñïîëüçî-
âàíèÿ ýòèõ ñðåäñòâ ïðîãðàììèðîâàíèÿ ïðè ðåàëèçàöèè áîëåå ñëîæíûõ âû-
÷èñëåíèé.
Àðèôìåòèêî-ëîãè÷åñêîå âûðàæåíèå. Ðàññìîòðèì âåòâÿùèéñÿ ïðî-
öåññ íà ïðîñòîì ïðèìåðå âû÷èñëåíèÿ êóñî÷íî-çàäàííûõ ôóíêöèé. Ïðè
èñïîëüçîâàíèè ñðåäñòâ ñòðóêòóðíîãî ïðîãðàììèðîâàíèÿ âû÷èñëÿòü çíà-
÷åíèÿ òàêèõ ôóíêöèé äëÿ ðàçëè÷íûõ çíà÷åíèé àðãóìåíòà ìîæíî òîëüêî â
ñëó÷àå èñïîëüçîâàíèÿ óñëîâíîãî îïåðàòîðà âíóòðè îïåðàòîðà öèêëà. Íà-
ïðèìåð, äëÿ âû÷èñëåíèÿ çíà÷åíèé ôóíêöèé
f x
f x x
f x x
( )
( ), ,
( ), ,
�
�
�
�
�
�
1
2
0
0
f x
e
x
x
1 2 1
( ) �
�
, f x
e x
x
x
2
2
2 1
( ) �
�
(1)
íà îòðåçêå [– 5; 5] ñ øàãîì 0,01 íåîáõîäèìî íàïèñàòü òàêîé ôðàãìåíò
ïðîãðàììû.
Ïðèìåð 3.
x=-5:0.01:5;
for ii=1:length(x)
if (x(ii)<=0) z(ii)=(exp(x(ii))-x(ii)^2)/(1+x(ii)^2); …
else z(i)=(exp(x(i)))/(1+x(i)^2); end;
Àíàëèç âîçìîæíîñòåé èñïîëüçîâàíèÿ ìàòðè÷íûõ ìàêðîîïåðàöèé ñèñòåìû MatLab
ISSN 0204–3572. Ýëåêòðîí. ìîäåëèðîâàíèå. 2009. Ò. 31. ¹ 3 39
Ïîñêîëüêó â ÿçûêå ïðîãðàììèðîâàíèÿ ñèñòåìû MatLab ïðè èñïîëü-
çîâàíèè óñëîâíîãî îïåðàòîðà íå ïðåäïîëàãàåòñÿ ïîýëåìåíòíàÿ îáðàáîòêà
óïîðÿäî÷åííûõ ñòðóêòóð ÷èñëîâûõ äàííûõ, âñå âåòâÿùèåñÿ ïðîöåññû ðåà-
ëèçóþòñÿ ñðåäñòâàìè ñòðóêòóðíîãî ïðîãðàììèðîâàíèÿ.
Âîçìîæíîé àëüòåðíàòèâîé èñïîëüçîâàíèþ óñëîâíîãî îïåðàòîðà ÿâëÿþò-
ñÿ àðèôìåòèêî-ëîãè÷åñêèå âûðàæåíèÿ, ïðåäñòàâëÿþùèå ñîáîé êîìáèíàöèþ
àðèôìåòè÷åñêèõ è ëîãè÷åñêèõ ôóíêöèé âèäà [3]
F x F x L x F x L x F x L x F x Ln n( ) ( ) ( ) ( ) ( ) ( ) ( ) ... ( ) (� � � � �1 1 2 2 3 3 x), (2)
ãäå F x F x F x F xn1 2 3( ), ( ), ( ),..., ( ) — àðèôìåòè÷åñêèå ôóíêöèè; L x L x1 2( ), ( ),...
..., ( )L xn — ëîãè÷åñêèå ôóíêöèè. Åñëè äëÿ âû÷èñëåíèÿ (1) èñïîëüçîâàòü
âûðàæåíèå (2), ïåðåïèñàâ êóñî÷íî-çàäàííóþ ôóíêöèþ â âèäå
F x x
e
x
x
e x
x
x x
( ) ( ) ( )� �
�
� �
�
0
1
0
12
2
2
,
òî êîä ïðîãðàììû, ïî ñðàâíåíèþ ñ ïðèìåðîì 3, ñóùåñòâåííî óïðîùàåòñÿ.
Ïðèìåð 4.
x=-5:0.01:5;
f=(x>0).*(exp(x)./(x.^2+1))+(x<=0).*((exp(x)-x.^2)./(x.^2+1));
Åñëè ôóíêöèÿ çàäàíà íå íà äâóõ, à íà áîëüøåì ÷èñëå îòðåçêîâ, òî ñîîò-
âåòñòâóþùèå ëîãè÷åñêèå âûðàæåíèÿ L xn ( ) çàïèñûâàþòñÿ ÷åðåç îïåðàöèþ
«and» (&).
Ðåçóëüòàòû ïðîâåðêè ýôôåêòèâíîñòè ïðîãðàììíîãî êîäà äëÿ ïðèìå-
ðîâ 3 è 4 ñâèäåòåëüñòâóþò î òîì, ÷òî âàðèàíò ñ îïåðàòîðîì öèêëà áîëåå
ýôôåêòèâåí òîëüêî ïðè ìàëîì ÷èñëå ýëåìåíòîâ âåêòîðà õ, â îñíîâíîì ïðè
length (x) < 104, â òî âðåìÿ êàê äëÿ áîëüøèõ ÷èñëîâûõ ñòðóêòóð áîëåå ýô-
ôåêòèâíûì ÿâëÿåòñÿ âòîðîé âàðèàíò ðåàëèçàöèè.
Íà îñíîâå ïðîâåäåííîãî àíàëèçà ìîæíî ñäåëàòü ñëåäóþùèé âûâîä.
Âåòâÿùèåñÿ âû÷èñëèòåëüíûå ïðîöåññû â ðàìêàõ ìàòðè÷íîãî ïðîãðàì-
ìèðîâàíèÿ ðåàëèçóþòñÿ ñ ïîìîùüþ àðèôìåòèêî-ëîãè÷åñêèõ âûðàæåíèé
âèäà (2).
Ðåêóððåíòíûå âû÷èñëåíèÿ.  ïðèêëàäíûõ çàäà÷àõ âû÷èñëèòåëüíîé
ìàòåìàòèêè ÷àñòî èñïîëüçóþòñÿ âû÷èñëèòåëüíûå ïðîöåäóðû, îñíîâàííûå
íà èçìåíÿåìûõ ïåðåìåííûõ öèêëà. Èç íèõ íàèáîëåå ïðîñòûìè ÿâëÿþòñÿ
ðåêóððåíòíûå àëãîðèòìû, îïèñûâàåìûå ñîîòíîøåíèÿìè âèäà [4]
x c1 1� ; x c2 2� ; x c3 3� ; ... x cn n� ; x f i x x xi i i i n� ( , , ,..., )1 2 , (3)
ãäå x1, x2, …, xn … xi — çíà÷åíèÿ ýëåìåíòîâ âåêòîðà x; c1, c2, …, cn — êîíñ-
òàíòû. Âû÷èñëåíèå ðåêóððåíòíûõ ïîñëåäîâàòåëüíîñòåé ñ èñïîëüçîâàíèåì
È. Â. Ìåëüíèê
40 ISSN 0204–3572. Electronic Modeling. 2009. V. 31. ¹ 3
ñòàíäàðòíûõ âåêòîðíûõ ìàêðîîïåðàöèé ñèñòåìû MatLab íåâîçìîæíî. Ýòî
âèäíî èç ñëåäóþùåãî ïðèìåðà, â êîòîðîì ñäåëàíà ïîïûòêà âû÷èñëèòü
ýëåìåíòû ïîñëåäîâàòåëüíîñòè Ôèáîíà÷÷è [4].
Ïðèìåð 5.
» i=1:10; j=3:10;
» x=i; x(2)=1;
» x(j)=x(j-1)+x(j-2);
» x
x =
1 1 2 4 7 9 11 13 15 17
»
Ïðè÷èíîé îøèáêè ÿâëÿåòñÿ òî, ÷òî âìåñòî óæå âû÷èñëåííûõ çíà÷åíèé
íà êàæäîì øàãå âû÷èñëåíèé èñïîëüçóþòñÿ ïðåäûäóùèå, ïåðâîíà÷àëüíî
çàäàííûå çíà÷åíèÿ ýëåìåíòîâ âåêòîðà õ.
Íà îñíîâå ïðîâåäåííîãî àíàëèçà ìîæíî ñäåëàòü ñëåäóþùèé âûâîä.
Ñðåäñòâà ìíîæåñòâåííîé èíäåêñàöèè ñèñòåìû MatLab íå ïîçâîëÿþò
ðåàëèçîâàòü ðåêóððåíòíûå âû÷èñëèòåëüíûå àëãîðèòìû, à ñëåäîâàòåëüíî,
íàáîð ìàòðè÷íûõ è âåêòîðíûõ ìàêðîîïåðàöèé ÿçûêà ïðîãðàììèðîâàíèÿ
ñèñòåìû ÿâëÿåòñÿ íåïîëíûì.
 ñâÿçè ñ ýòèì â áèáëèîòåêó ñòàíäàðòíûõ ôóíêöèé ñèñòåìû áûëà
äîáàâëåíà ôóíêöèÿ recvect, ïîçâîëÿþùàÿ ðåàëèçîâûâàòü ðåêóððåíòíûå
âû÷èñëåíèÿ ÷åðåç ïåðåäà÷ó ôóíêöèè f i x x xi i i n( , , ,..., ) 1 2 êàê ïàðàìåòðà â
âèäå ñòðîêè ñèìâîëîâ. Ýòà ïðîöåäóðà íàïèñàíà ñ èñïîëüçîâàíèåì îïåðà-
òîðîâ öèêëà, îäíàêî ïðè åå ïðèìåíåíèè ðåêóððåíòíûå âû÷èñëåíèÿ ðåàëè-
çóþòñÿ áåç èñïîëüçîâàíèÿ öèêëîâ.
Ïðèâåäåííàÿ â ñëåäóþùåì ïðèìåðå ïðîöåäóðà ïîçâîëÿåò äîñòè÷ü äî-
ñòàòî÷íî âûñîêîé ýôôåêòèâíîñòè è ïðîñòîòû ïðîãðàììíîãî êîäà.
Ïðèìåð 6.
for ii=1:n if (ii<=nr) w(ii)=v(ii);
else
if (ch==0) w(ii)=eval(ff); end;
if ((ch==1)&(nr==1)) res=eval(ff); w(ii)=res(2);
w(ii-1)=res(1); end;
if ((ch==1)&(nr==2)) res=eval(ff); w(ii)=res(3);
w(ii-1)=res(2); w(ii-2)=res(1); end;
if ((ch==1)&(nr==3)) res=eval(ff); w(ii)=res(4);
w(ii-1)=res(3); w(ii-2)=res(2); w(ii-3)=res(1); end;
if ((ch==1)&(nr==4)) res=eval(ff); w(ii)=res(5);
w(ii-1)=res(4); w(ii-2)=res(3); w(ii-3)=res(2);
Àíàëèç âîçìîæíîñòåé èñïîëüçîâàíèÿ ìàòðè÷íûõ ìàêðîîïåðàöèé ñèñòåìû MatLab
ISSN 0204–3572. Ýëåêòðîí. ìîäåëèðîâàíèå. 2009. Ò. 31. ¹ 3 41
w(ii-4)=res(1); end;
if ((ch==1)&(nr==5)) res=eval(ff); w(ii)=res(6);
w(ii-1)=res(5); w(ii-2)=res(4); w(ii-3)=res(3);
w(ii-4)=res(2); w(ii-5)=res(1); end;
if (abs(w(ii)-w(ii-1))<el)return; end;
if (abs(w(ii)-w(ii-1))>eh)return; end;
end; end;
Ïðèâåäåì ïðèìåð âû÷èñëåíèÿ ýëåìåíòîâ ïîñëåäîâàòåëüíîñòè Ôèáî-
íà÷÷è ñ èñïîëüçîâàíèåì ïðîöåäóðû recvect.
Ïðèìåð 7.
» ffh=’w(ii-1)+w(ii-2)’;
» c=recvect(2,10,[1,1],ffh,1e-10,1e10)
c =
1 1 2 3 5 8 13 21 34 55
»
Îñíîâíûå âõîäíûå ïàðàìåòðû, ïåðåäàâàåìûå ïðîöåäóðå recvect ïðè
åå âûçîâå, ñëåäóþùèå:
n — ñòåïåíü çàâèñèìîñòè ýëåìåíòîâ â ðåêóððåíòíîé ôîðìóëå, ò. å.
ïîëîæåíèå íàèáîëåå îòäàëåííîãî ýëåìåíòà, èñïîëüçóåìîãî ïðè âû÷èñëå-
íèè òåêóùåãî; ññûëêà íà ýòîò ýëåìåíò îñóùåñòâëÿåòñÿ ÷åðåç ïàðàìåòð (i –
� n), íàïðèìåð äëÿ ðÿäà Ôèáîíà÷÷è n = 2.
N — ìàêñèìàëüíîå ÷èñëî âû÷èñëÿåìûõ ÷ëåíîâ ðÿäà, N > n, ïî óìîë-
÷àíèþ N = 100;
V — âõîäíîé âåêòîð íà÷àëüíûõ çíà÷åíèé, ÷èñëî ýëåìåíòîâ êîòîðîãî
äîëæíî ñîîòâåòñòâîâàòü ñòåïåíè çàâèñèìîñòè n, ò. å. length (V) = n, íàïðè-
ìåð äëÿ ðÿäà Ôèáîíà÷÷è ýòî âåêòîð [1,1];
ffh — ðåêóððåíòíàÿ ôóíêöèÿ, çàäàâàåìàÿ â âèäå ñòðîêè ñèìâîëîâ;
l — ìèíèìàëüíàÿ ðàçíîñòü ìåæäó ñîñåäíèìè ÷ëåíàìè ðÿäà ïðè åãî
ñõîäèìîñòè;
h — ìàêñèìàëüíàÿ ðàçíîñòü ìåæäó ñîñåäíèìè ÷ëåíàìè ðÿäà ïðè åãî
ðàñõîäèìîñòè; ïî óìîë÷àíèþ ïðåäïîëàãàåòñÿ
l = 10–10,
h = 1010.
Äàëåå ðàññìîòðèì ïðèìåðû ðåàëèçàöèè ñòàíäàðòíûõ è îðèãèíàëüíûõ
àëãîðèòìîâ ñ èñïîëüçîâàíèåì âåêòîðíûõ è ìàòðè÷íûõ ìàêðîîïåðàöèé.
Àëãîðèòìû ïîèñêà è ñîðòèðîâêè. Ñíà÷àëà ðàññìîòðèì îñîáåííîñòè
èñïîëüçîâàíèÿ âåêòîðíûõ è ìàòðè÷íûõ ìàêðîîïåðàöèé ïðè ðåøåíèè ñòàí-
äàðòíûõ çàäà÷ îáðàáîòêè äàííûõ. Îäíîé èç òàêèõ çàäà÷ ÿâëÿåòñÿ ïîèñê
ìàêñèìàëüíîãî èëè ìèíèìàëüíîãî ýëåìåíòîâ âåêòîðà [4].  îáùåì ñëó÷àå
çàäà÷ó ïîèñêà ìàêñèìàëüíîãî ýëåìåíòà ìîæíî çàïèñàòü â âèäå ñëåäóþùåãî
È. Â. Ìåëüíèê
42 ISSN 0204–3572. Electronic Modeling. 2009. V. 31. ¹ 3
ðåêóððåíòíîãî ñîîòíîøåíèÿ:
x xmax ( ) ( )1 1� ; x
x x x
x x
max
max
max
( )
( ), ( ) ( ),
( ), (
i
i i i
i
�
�
åñëè
åñëè
1
1 i i) ( ),max�
�
�
� x 1
(4)
ãäå x — èñõîäíûé âåêòîð, à x xmax
...
( ) max ( ))i k
k i
�
�1
( — âåêòîð ðåçóëüòàòà. Ðå-
êóððåíòíóþ ôîðìóëó (4) ïåðåïèøåì â âèäå àðèôìåòèêî-ëîãè÷åñêîãî âû-
ðàæåíèÿ (2):
x xmax ( ) ( )1 1� ;
x x x x x x xmax max max ma( ) ( ( ) ( )) ( ) ( ( ) ( ))i i i i i i� �
� �
1 1 x ( )i 1 . (5)
Ñîîòíîøåíèÿ (5), êîòîðûå ôàêòè÷åñêè ÿâëÿþòñÿ ðåêóððåíòíûìè, íî â
òî æå âðåìÿ ñîîòâåòñòâóþò îïðåäåëåíèþ àðèôìåòèêî-ëîãè÷åñêîãî âûðà-
æåíèÿ (2), áóäåì íàçûâàòü ðåêóððåíòíûìè àðèôìåòèêî-ëîãè÷åñêèìè âû-
ðàæåíèÿìè. Ïðèâåäåì ïðèìåð, â êîòîðîì ïîèñê ìàêñèìàëüíîãî ýëåìåíòà
âåêòîðà âûïîëíåí ñ èñïîëüçîâàíèåì ñîîòíîøåíèÿ (5) è ðåàëèçîâàí ÷åðåç
ïðîöåäóðó recvect.
Ïðèìåð 8.
» x=[1,100,-25,20,150,40,-50];
» ffh=’v(ii)*(v(ii)>=w(ii-1))+(v(ii)<w(ii-1))*w(ii-1)’;
» c=recvect(1,length(x),x,ffh,1e-10,1e10)
c =
1 100 100 100 150 150 150
»
Çäåñü v — èñõîäíûé âåêòîð, w — âåêòîð ðåçóëüòàòà, à ôóíêöèÿ, îïèñûâàåìàÿ
ñîîòíîøåíèåì (5), çàïèñàíà â âèäå ñòðîêîâîé ïåðåìåííîé ffh, êîòîðàÿ ÿâëÿåò-
ñÿ âõîäíûì ïàðàìåòðîì äëÿ ïðîöåäóðû recvect.
Èç ïðèìåðà 8 âèäíî, ÷òî âåêòîðíûå è ìàòðè÷íûå ìàêðîîïåðàöèè ÿâëÿ-
þòñÿ èçáûòî÷íûìè ïî ñðàâíåíèþ ñî ñðåäñòâàìè ñòðóêòóðíîãî ïðîãðàììè-
ðîâàíèÿ ñ òî÷êè çðåíèÿ ýêîíîìèè âû÷èñëèòåëüíûõ ðåñóðñîâ, ïîñêîëüêó
äëÿ èõ ðåàëèçàöèè òðåáóåòñÿ ñîõðàíåíèå âñåõ ðåçóëüòàòîâ ïðåäûäóùèõ
âû÷èñëåíèé. Îäíàêî òàêèå ðåçóëüòàòû ëåãêî àíàëèçèðîâàòü ïðè îòëàäêå
ïðîãðàìì, öåëåñîîáðàçíà òàêàÿ ôîðìà ïðåäñòàâëåíèÿ è ïðè èçó÷åíèè òåî-
ðèè àëãîðèòìîâ.
Áîëåå ñëîæíûì ñïîñîáîì ðåàëèçàöèè ðåêóððåíòíûõ âû÷èñëåíèé ÷åðåç
ìàòðè÷íûå ìàêðîîïåðàöèè ÿâëÿåòñÿ âû÷èñëåíèå êàæäîé ñëåäóþùåé ñòðîêè
ìàòðèöû ÷åðåç ýëåìåíòû åå ïðåäûäóùèõ ñòðîê.  îáùåì ñëó÷àå ñîîò-
âåòñòâóþùèé ðåêóððåíòíûé àëãîðèòì ìîæíî çàïèñàòü â âèäå
M v� � �1 1, M v� � �2 2, ..., M v� � �n n ,
M F M M M� � � � � � � ��i i i i ni( , , , ..., )1 2 ,
(6)
Àíàëèç âîçìîæíîñòåé èñïîëüçîâàíèÿ ìàòðè÷íûõ ìàêðîîïåðàöèé ñèñòåìû MatLab
ISSN 0204–3572. Ýëåêòðîí. ìîäåëèðîâàíèå. 2009. Ò. 31. ¹ 3 43
ãäå v — âåêòîð; M� �i — ñòðîêà ìàòðèöû ñ íîìåðîì i; F — âåêòîð-ôóíêöèÿ,
îïðåäåëÿþùàÿ ôóíêöèè äëÿ âû÷èñëåíèÿ êàæäîãî ýëåìåíòà ñòðîêè ðåçóëü-
òèðóþùåé ìàòðèöû. Òàêèå ðåêóððåíòíûå àëãîðèòìû òàêæå ñîñòàâëÿþò îñíî-
âó âû÷èñëèòåëüíîé ìàòåìàòèêè è èñïîëüçóþòñÿ íå ðåæå, ÷åì ñòàíäàðòíûå,
îïðåäåëÿåìûå ñîîòíîøåíèåì (3). Äëÿ ðåàëèçàöèè ðåêóððåíòíûõ àëãîðèòìîâ,
îïèñûâàåìûõ ñîîòíîøåíèåì (6), ïîëó÷åíà ôóíêöèÿ recmat, ïðîãðàììíûé êîä
êîòîðîé çäåñü íå ïðèâåäåí èç-çà îãðàíè÷åííîãî îáúåìà ñòàòüè.
Ðàññìîòðèì áîëåå ñëîæíûé ïðèìåð, â êîòîðîì ÷åðåç ðåêóððåíòíîå
àðèôìåòèêî-ëîãè÷åñêîå âûðàæåíèå ðåàëèçîâàí êëàññè÷åñêèé àëãîðèòì
ïóçûðüêîâîé ñîðòèðîâêè ýëåìåíòîâ âåêòîðà ïî âîçðàñòàíèþ è óáûâà-
íèþ [4, 5]. Àðèôìåòèêî-ëîãè÷åñêîå âûðàæåíèå äëÿ àëãîðèòìà ñîðòèðîâêè
ïî âîçðàñòàíèþ èìååò âèä
xs
xs
x xs
xs
x
x
i
i i n
i i
i
i
i
�
�
�
�
�
�
� � � �
�
�
�
�
� � �1
2
1
1
...
( ) ( xs
x
xs
i
i
i
�
�
�
�
�
�1
1
) , (7)
ãäå x — èñõîäíûé âåêòîð; xs — âåêòîð ðåçóëüòàòà; n — ÷èñëî ñîðòèðóåìûõ
ýëåìåíòîâ.
Äëÿ ñîðòèðîâêè ïî óáûâàíèþ âûðàæåíèå (7) çàïèøåì â âèäå
xs
xs
x xs
x
xs
x
i
i i n
i i
i
i
i
�
�
�
�
�
�
� � � �
�
�
�
�
� � �1
2
1
1...
( ) ( xs
xs
x
i
i
i
�
�
�
�
�
�1
1
) . (8)
Íåîáõîäèìî çàìåòèòü, ÷òî ñ ïîìîùüþ ñîîòíîøåíèé (7), (8), â ñîîòâåòñò-
âèè ñ àëãîðèòìîì ïóçûðüêîâîé ñîðòèðîâêè, ìîæíî ïðîàíàëèçèðîâàòü òîëüêî
äâà ñîñåäíèõ ýëåìåíòà, ïîýòîìó ñëåäóåò èñïîëüçîâàòü èòåðàöèîííóþ ïðî-
öåäóðó. Âû÷èñëåíèÿ ïðåêðàùàþòñÿ, êîãäà ïîëó÷åíû äâå îäèíàêîâûå ñòðîêè
ðåçóëüòèðóþùåé ìàòðèöû.
Ïðèâåäåì ïðèìåð ïðîãðàììû sortbuble, ñîðòèðóþùåé ýëåìåíòû âåêòî-
ðà ïî âîçðàñòàíèþ ïðè m=1 èëè ïî óáûâàíèþ ïðè m=-1. Äëÿ ðàñ÷åòîâ ïî
ôîðìóëàì (7), (8) èñïîëüçîâàíà ïðîöåäóðà recmat. Ìàòðèöà ðåçóëüòàòà
îáîçíà÷åíà ÷åðåç Ì.
Ïðèìåð 9.
function ws=sortbuble (vv,m)
fh1=’recvect(1,length(M(ii-1,:)),M(ii-1,:),’’’;
fh2=’([v(ii)>w(ii-1),v(ii)>w(ii-1)].*[w(ii-1),v(ii)])+...
([w(ii-1)>=v(ii),w(ii-1)>=v(ii)].*[v(ii),w(ii-1)])’;
fh3=’’’,1e-10,1e10)’;
fh4=’([v(ii)<w(ii-1),v(ii)<w(ii-1)].*[w(ii-1),v(ii)])+...
([w(ii-1)<=v(ii),w(ii-1)<=v(ii)].*[v(ii),w(ii-1)])’;
if (m==1) fh=strcat(fh1,fh2,fh3); end;
È. Â. Ìåëüíèê
44 ISSN 0204–3572. Electronic Modeling. 2009. V. 31. ¹ 3
if (m==-1) fh=strcat(fh1,fh4,fh3);end;
ws=recmat(1,length(vv),vv,fh,1e-10,1e10);
 ñëåäóþùåì ïðèìåðå ïðèâåäåí ðåçóëüòàò ðàáîòû ýòîé ïðîãðàììû.
Ïðèìåð 10.
» x=[1,-3,10,-5,50,5,15,10,20];
» sortbuble(x,1)
ans =
1 -3 10 -5 50 5 15 10 20
-3 1 -5 10 5 15 10 20 50
-3 -5 1 5 10 10 15 20 50
-5 -3 1 5 10 10 15 20 50
-5 -3 1 5 10 10 15 20 50
»
Êàê ïîêàçàëè ðåçóëüòàòû âû÷èñëèòåëüíûõ ýêñïåðèìåíòîâ, ýôôåêòèâ-
íîñòü ôóíêöèè sortbuble íèæå, ÷åì âñòðîåííîé ôóíêöèè MatLab sort. Òåì
íå ìåíåå, âîçìîæíîñòü ðåàëèçàöèè àëãîðèòìîâ âëîæåííûõ öèêëîâ ïîçâî-
ëÿåò ðàñöåíèâàòü ïðîöåäóðû recvect è recmat êàê ýôôåêòèâíûå ñðåäñòâà
ìàòðè÷íîãî ïðîãðàììèðîâàíèÿ.
Äàëåå ðàññìîòðèì îñîáåííîñòè ðåàëèçàöèè ñðåäñòâàìè ìàòðè÷íîãî
ïðîãðàììèðîâàíèÿ èòåðàöèîííûõ âû÷èñëèòåëüíûõ àëãîðèòìîâ, êîòîðûå
ñîñòàâëÿþò îñíîâó ÷èñëåííûõ ìåòîäîâ.
Èòåðàöèîííûå âû÷èñëèòåëüíûå àëãîðèòìû. Ðåêóððåíòíûå âû÷èñ-
ëåíèÿ ïî ôîðìóëàì (3), (6) ìîãóò íàéòè øèðîêîå ïðèìåíåíèå â âû÷èñ-
ëèòåëüíîé ìàòåìàòèêå. Íàïðèìåð âû÷èñëåíèå ñòåïåííûõ ðÿäîâ äëÿ çàäàí-
íîãî âåêòîðà àðãóìåíòîâ Õ ìîæíî ðåàëèçîâàòü, èñïîëüçóÿ ðåêóððåíòíóþ
ôîðìóëó (6):
A X� � �1 , A F X A� � � ��n n n( , , )1 ; R X A n
i
n
( ) � � �
�
�
1
. (9)
 ñëåäóþùåì ïðèìåðå ïðèâåäåíà ïðîãðàììà, â êîòîðîé ðåàëèçîâàíû
ðåêóððåíòíûå âû÷èñëåíèÿ ïî ôîðìóëå (9).
Ïðèìåð 11.
function R=powseries(x,n,ff,el)
c1=0; c2=0;d=size(x);
if (d(1)==1) nr=1; fs=strcat(‘[M(ii-1,:);’,ff,’]’); end;
if (d(1)==2) nr=2; fs=strcat(‘[M(ii-2,:);M(ii-1,:);’,ff,’]’);end;
Rm=recmat(nr,n,x,fs,el,1e10);R=sum(Rm);
return;
Àíàëèç âîçìîæíîñòåé èñïîëüçîâàíèÿ ìàòðè÷íûõ ìàêðîîïåðàöèé ñèñòåìû MatLab
ISSN 0204–3572. Ýëåêòðîí. ìîäåëèðîâàíèå. 2009. Ò. 31. ¹ 3 45
Íàïðèìåð äëÿ ôóíêöèè
sin ( )x
x
ñòåïåííîé ðÿä èìååò âèä [6]
sin ( )
! !
... ( ) ( )
( )!
x
x
x x
O x
x
n
n n
n
n
� � � � �
��
�
�1
3 5
1
2 1
2 4 2
0
,
èëè â ðåêóððåíòíîé ôîðìå —
R x1 1( ) � , R x
x
2
2
6
( ) � , ..., R x R x
x
n n
n n( ) ( )
( )( )
�
1
2
2 1 2 1
;
S x R xn
n
( ) ( )�
�
�
�
1
.
(10)
 ñëåäóþùåì ïðèìåðå ïðèâåäåíà ïîñëåäîâàòåëüíîñòü êîìàíäíûõ
ñòðîê äëÿ âû÷èñëåíèÿ ðÿäà (10).
Ïðèìåð 12.
>> x=-10:0.001:10;
>> xx=ones(1,length(x));
>> xr=[xx;-x.^2/6];
>> S=powseries(xr,1000,’6*M(ii-1,:).*M(2,:)./(2*ii-2)./(2*ii-1)’,1e-30);
Ìåíÿÿ ôóíêöèþ F X A( , , )� �n n1 , ìîæíî ôîðìèðîâàòü ðàçëè÷íûå ñòå-
ïåííûå è ôóíêöèîíàëüíûå ðÿäû, ÷òî äàåò øèðîêèå âîçìîæíîñòè äëÿ
ñîçäàíèÿ ìàòåìàòè÷åñêèõ áèáëèîòåê.
Ñ èñïîëüçîâàíèåì ïðîöåäóð recvect è recmat ëåãêî ðåàëèçîâàòü è èòå-
ðàöèîííûå àëãîðèòìû ÷èñëåííûõ ìåòîäîâ. Íàïðèìåð ÷èñëåííîå èíòå-
ãðèðîâàíèå ôóíêöèé ìåòîäîì òðàïåöèé ðåàëèçóåòñÿ ñ ïîìîùüþ ñëåäóþ-
ùåãî ïðîñòîãî ðåêóððåíòíîãî ñîîòíîøåíèÿ [6, 7]:
S( )0 0� ; S S
x x x x
( ) ( )
( ( ) ( )) ( )
i i
f fi i i i� �
� 1
2
1 1 ,
ãäå õ — ïåðåìåííàÿ èíòåãðèðîâàíèÿ; f i( )x — çíà÷åíèÿ èíòåãðèðóåìîé
ôóíêöèè â òî÷êàõ îòñ÷åòà; S — âû÷èñëÿåìîå çíà÷åíèå èíòåãðàëà.
 ñëåäóþùåì ïðèìåðå âû÷èñëèì çíà÷åíèå èíòåãðàëà f x e dxx
x
( ) �
�
2
0
íà èíòåðâàëå 0 � x � 3 ñ øàãîì 10–4.
Ïðèìåð 13.
>> x=0:0.0001:3;
>> f=[0,exp(-x.^2)];
>>S=recvect(1, length(f), f,’(w(ii-1)+((v(ii-1)+v(ii))*0.0001/2)).*(ii~=2)+0.*(ii==2)’, 0,1e50);
È. Â. Ìåëüíèê
46 ISSN 0204–3572. Electronic Modeling. 2009. V. 31. ¹ 3
Àíàëîãè÷íî, ñ èñïîëüçîâàíèåì ôóíêöèè recvect, ìîæíî ÷èñëåííî ðå-
øàòü íåëèíåéíûå è äèôôåðåíöèàëüíûå óðàâíåíèÿ [3].
Òåñòèðîâàíèå ôóíêöèé recvect è recmat ïðîâîäèëîñü è äëÿ áîëåå ñëîæ-
íûõ âû÷èñëèòåëüíûõ àëãîðèòìîâ, îäèí èç êîòîðûõ ðàññìîòðèì äàëåå.
Èñïîëüçîâàíèå ìåòîäîâ ìàòðè÷íîãî ïðîãðàììèðîâàíèÿ äëÿ ðåøå-
íèÿ ôèçè÷åñêèõ çàäà÷. Ðàññìîòðèì âîçìîæíîñòè èñïîëüçîâàíèÿ ìàòðè÷íûõ
ìàêðîîïåðàöèé äëÿ ðåøåíèÿ ïðàêòè÷åñêèõ èíæåíåðíûõ çàäà÷ íà ïðèìåðå
ðàñ÷åòà òðàåêòîðèé çàðÿæåííûõ ÷àñòèö â ïîëå ñèììåòðè÷íîé êîðîòêîé ìàã-
íèòíîé ëèíçû. Ìàòåìàòè÷åñêàÿ ïîñòàíîâêà äàííîé çàäà÷è, â îáùåì ñëó÷àå,
ñâîäèòñÿ ê ñèñòåìå àëãåáðî-äèôôåðåíöèàëüíûõ óðàâíåíèé [8, 9]
v U� 2 0�, v vr � sin ( )� , v v2 � cos ( ),�
dr
dz
v
v
r
z
� , ��
e
m
,
d r
dz
erB
mU
z
2
2
0
2
08
� , B z
INR
z R
z0
0
2
2 2 32
( )
( )
�
�
�
,
d
dt
B z� �
� 0
2
, (11)
dr
dz
dr
dz
d r
dz
dz�
2
2
, � �
�
�
B dz
v
z
z
0
2
, r r
dr
dz
dz
d r dz
dz
� �
2 2
22
( )
,
ãäå z è r — ïðîäîëüíàÿ è ïîïåðå÷íàÿ êîîðäèíàòû; Bz0 — ôóíêöèÿ ðàñ-
ïðåäåëåíèÿ ìàãíèòíîãî ïîëÿ âäîëü îñè z; U0 — óñêîðÿþùåå íàïðÿæåíèå;
I — òîê ëèíçû; N — ÷èñëî âèòêîâ; R — ðàäèóñ ëèíçû; �0 — ìàãíèòíàÿ
ïîñòîÿííàÿ; v — ñêîðîñòü äâèæåíèÿ ÷àñòèöû; � — óãîë âëåòà ÷àñòèöû; e —
çàðÿä ýëåêòðîíà; m — åãî ìàññà.
Çàïèñü àëãîðèòìà â âèäå ñèñòåìû óðàâíåíèé (11) íåóäîáíà, òàê êàê íå
óêàçàí ïîðÿäîê èñïîëüçîâàíèÿ óðàâíåíèé, êîòîðûé ïðè ðåøåíèè
ðåàëüíûõ ôèçè÷åñêèõ çàäà÷ ìîæåò îêàçûâàòü ñóùåñòâåííîå âëèÿíèå íà
ñõîäèìîñòü èòåðàöèîííûõ ïðîöåäóð [10]. Ïîýòîìó ïåðåïèøåì ñèñòåìó
(11) â èòåðàöèîííîé ôîðìå:
z0, B z0,
dr
dz
�
�
�
�
�
�
0
, � 0, r0 — íà÷àëüíûå çíà÷åíèÿ; z z dzn n� � 1 , B zn �
� B zz n( )1 ;
dr
dz
dr
dz
d r
dzn n n
�
�
�
�
�
� ��
�
�
�
�
�
�
�
��
�
�
��
1
2
2
; � �
�
n n
z n
n
U
B z dz
dr
dz
�
�
�
�
�
�
�
1
0
0 1
1
2
( )
cos
;
r r
dr
dz
dz
d r
dz
dzn n� � � 1
2
2
2
2
( ) ,
(12)
Àíàëèç âîçìîæíîñòåé èñïîëüçîâàíèÿ ìàòðè÷íûõ ìàêðîîïåðàöèé ñèñòåìû MatLab
ISSN 0204–3572. Ýëåêòðîí. ìîäåëèðîâàíèå. 2009. Ò. 31. ¹ 3 47
ãäå n — íîìåð òåêóùåé èòåðàöèè; n 1 — íîìåð ïðåäûäóùåé èòåðàöèè.
Òîãäà ñîâîêóïíîñòü ïåðåìåííûõ, âû÷èñëÿåìûõ ñ ïîìîùüþ èòåðàöèîííûõ
ñîîòíîøåíèé (12), ëåãêî óïîðÿäî÷èòü â âèäå ñòðîê ìàòðèöû. Ïðè ýòîì
èòåðàöèîííàÿ ïðîöåäóðà âû÷èñëåíèé ñâîäèòñÿ ê ñîîòíîøåíèþ (6), à ðå-
çóëüòèðóþùàÿ ìàòðèöà áóäåò èìåòü âèä
z B z
dr
dz
r
z B z
dr
dz
r
z
z
0 0 0
0
0 0
1 0 1
1
1 1
( )
( )
�
�
�
�
�
�
�
�
�
�
�
�
�
�
� � � � �
z B z
dr
dz
rn z n
n
n n0( ) �
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
. (13)
Ïðåäñòàâèì ðåêóððåíòíûå ñîîòíîøåíèÿ (12) â âèäå âåêòîðà-ôóíêöèè,
ïîñëåäîâàòåëüíî ôîðìèðóþùåãî ñòðîêè ìàòðèöû (13):
z B
dr
dz
r z dz
INR
n z n
n
n n n! �
�
( ) , , , ,
(
0 1
0
2
2
�
�
�
�
�
�
�
��
�
�
� �
z R
dr
dz
n
n
�
�
�
�
�
�
�
�
�
�
� 1
2 2 3 1)
,
�
�
�
erB z dz
mU U
B z dz
dr
dz
z n
n
z n0
2
1
0
1
0
0 1
8 2
( ) ( )
cos
! �
�
�
�
�
�
n
nr
1
1,
È. Â. Ìåëüíèê
48 ISSN 0204–3572. Electronic Modeling. 2009. V. 31. ¹ 3
2
2
4
1
0
0 0
1
2
2
"!2
"!2
# � $%
# � &%
"!'
(
r )10 ì
3
,
z, ì
y, ì
Ìîäåëèðîâàíèå òðàåêòîðèé ýëåêòðîíîâ â êîðîòêîé ìàãíèòíîé ëèíçå ñ èñïîëüçîâàíèåì
ïðîãðàììû, ïðèâåäåííîé â ïðèìåðå 14
� �
�
�
�
�
� �
�
�
dz
dr
dz
erB z dz
mUn
z n
1
0
2
1
2
016
( )( )
. (14)
Òàêèì îáðàçîì, ðåøåíèå ñèñòåìû óðàâíåíèé (12) ñâîäèòñÿ ê âû÷èñëå-
íèþ ñòðîê ðåêóððåíòíîé ìàòðèöû (13) ñ ïîìîùüþ ñîîòíîøåíèé (14).
Ïðåäëîæåííàÿ ìåòîäèêà ðàñ÷åòà ðåàëèçîâàíà â ñëåäóþùåì ïðèìåðå, à
ðåçóëüòàòû â ãðàôè÷åñêîì âèäå ïðåäñòàâëåíû íà ðèñóíêå.
Ïðèìåð 14.
I=1; N=1000; mu0=1.26e-6;R=0.05; teta=1.6e-19/9.1e-31;U0=1000;
IS=num2str(I); mu0S=num2str(mu0); NS=num2str(N);RS=num2str(R);
TetaS=num2str(teta);U0S=num2str(U0);r0=0.001; v=sqrt(2*U0*teta);
dzS=’1e-4’;a=0.01; vr=v*sin(a); vz=v*cos(a);
vzS=num2str(vz); zS=strcat(‘M(ii-1,1)+’,dzS);
BZS=strcat(‘((0.5*’,RS,’^2*’,IS,’*’,NS,’*’,mu0S,’)./’,...
‘(sqrt((M(ii-1,1))^2+’,RS,’^2))^3)’);
d2rdzS=strcat(‘0.125*’,TetaS,’*M(ii-1,5)*(M(ii-1,2))^2/’,U0S);
drdzS=strcat(‘M(ii-1,3)-(‘,d2rdzS,’)*’,dzS);
thetaS=strcat(‘M(ii-1,4)-(0.5*’,dzS,’*’,TetaS,’*M(ii-1,2))/’,vzS);
drS=strcat(‘M(ii-1,5)+M(ii-1,3)*’,dzS,’-’,d2rdzS,’)*0.5*’,dzS,’^2’);
Vin=[-0.2,0.5*R^2*I*N*mu0*((-0.2)^2+R^2)^(-1.5),vr/vz,0,r0];
funstr=strcat(‘[‘,zS,’,’,BZS,’,’,drdzS,’,’,thetaS,’,’,drS,’]’);
Mout=recmat(1,4002,Vin,funstr,1e-10,1e10);
Ïî ðåçóëüòàòàì òåñòîâûõ ýêñïåðèìåíòîâ âðåìÿ ðàáîòû ïðîãðàììû,
ïðèâåäåííîé â ïðèìåðå 14, ïðèáëèçèòåëüíî â òðè ðàçà ïðåâûøàåò âðåìÿ
ðàáîòû àíàëîãè÷íîé ïðîãðàììû, íàïèñàííîé ñ èñïîëüçîâàíèåì îïåðàòîðà
öèêëà. Îäíàêî ïðîñòîòà èñõîäíîãî êîäà è âîçìîæíîñòü ýôôåêòèâíîé îò-
ëàäêè òàêîé ïðîãðàììû ÿâëÿþòñÿ åå íåîñïîðèìûìè ïðåèìóùåñòâàìè, à
âðåìÿ ñ÷åòà íà êîìïüþòåðå êëàññà AMD Duron 800 ÌÃö 256 Ìá ÎÇÓ íå
ïðåâûøàåò îäíîé ñåêóíäû.
Àíàëèç ðåçóëüòàòîâ èññëåäîâàíèé è ðåêîìåíäàöèè. Ñðåäñòâà ìàò-
ðè÷íîãî ïðîãðàììèðîâàíèÿ ïðè ðåøåíèè ðåàëüíûõ çàäà÷ ñðåäíåãî óðîâíÿ
ñëîæíîñòè ÿâëÿþòñÿ âïîëíå ïðèåìëåìûìè. Äàæå ñ ó÷åòîì ñëîæíûõ îïå-
ðàöèé ñî ñòðîêàìè îòñóòñòâèå ñòðóêòóð äåëàåò ïðîãðàììó ïðîñòîé è ïî-
íÿòíîé, à èñïîëüçîâàíèå àðèôìåòèêî-ëîãè÷åñêèõ âûðàæåíèé âèäà (2) ïîç-
âîëÿåò ëåãêî ðåàëèçîâûâàòü è âåòâÿùèåñÿ âû÷èñëèòåëüíûå ïðîöåññû. Ðà-
çóìååòñÿ, ðåàëèçàöèÿ ðàçðàáîò÷èêîì ðåêóððåíòíûõ âû÷èñëåíèé â öèêëàõ
íà óðîâíå ÿäðà ñèñòåìû MatLab çíà÷èòåëüíî ïîâûñèëà áû èõ ýôôåêòèâ-
íîñòü, à ïðè ïðîñòîòå ñîîòâåòñòâóþùèõ ëèíãâèñòè÷åñêèõ ñðåäñòâ óïðîñ-
òèëñÿ áû è ïðîãðàììíûé êîä. Îäíàêî èñïîëüçîâàíèå ôóíêöèé recvect è
Àíàëèç âîçìîæíîñòåé èñïîëüçîâàíèÿ ìàòðè÷íûõ ìàêðîîïåðàöèé ñèñòåìû MatLab
ISSN 0204–3572. Ýëåêòðîí. ìîäåëèðîâàíèå. 2009. Ò. 31. ¹ 3 49
recmat ïîçâîëÿåò ââîäèòü íåîáõîäèìîå ÷èñëî ïàðàìåòðîâ äëÿ îãðàíè÷åíèÿ
ïðîâîäèìûõ âû÷èñëåíèé íå òîëüêî ïî ÷èñëó èòåðàöèé, íî è ïî ðåçóëü-
òàòàì ñõîäèìîñòè èëè ðàñõîäèìîñòè èòåðàöèîííîãî ïðîöåññà.
Áûëî ïðîâåäåíî òåñòèðîâàíèå ìàòðè÷íûõ ìåòîäîâ âû÷èñëåíèé íà áîëåå
ñëîæíûõ ðåàëüíûõ çàäà÷àõ, â ÷àñòíîñòè íà çàäà÷å òðàíñïîðòèðîâêè ýëåêò-
ðîííîãî ïó÷êà èç íèçêîãî â âûñîêèé âàêóóì [8].  ýòîì ñëó÷àå ðåàëèçîâàòü
ìàòðè÷íûé ïîäõîä äëÿ âñåé çàäà÷è áûëî ñëîæíî âñëåäñòâèå áîëüøîãî ÷èñëà
âõîäíûõ ïàðàìåòðîâ è ñîîòâåòñòâóþùåé ðàçìåðíîñòè ðåçóëüòèðóþùåé ìàò-
ðèöû. Îäíàêî ñîâìåùåíèå ìåòîäîâ ìàòðè÷íîãî è ñòðóêòóðíîãî ïðîãðàììè-
ðîâàíèÿ ïîçâîëèëî ñîçäàòü äîñòàòî÷íî ïðîñòîé è ýôôåêòèâíûé ïðîãðàì-
ìíûé êîä.
Ìåòîäèêà íàïèñàíèÿ ïðîãðàìì ñðåäñòâàìè ìàòðè÷íîãî ïðîãðàììèðî-
âàíèÿ ìîæåò áûòü ôîðìàëèçîâàíà ñëåäóþùèì îáðàçîì:
1. Ôîðìèðóåòñÿ ñèñòåìà àëãåáðî-äèôôåðåíöèàëüíûõ óðàâíåíèé, àíà-
ëîãè÷íàÿ (11).
2. Íà åå îñíîâå ôîðìèðóåòñÿ ñèñòåìà èòåðàöèîííûõ óðàâíåíèé, àíàëî-
ãè÷íàÿ (12).
3. Íà îñíîâå ñèñòåìû èòåðàöèîííûõ óðàâíåíèé ôîðìèðóåòñÿ ðåêóð-
ðåíòíàÿ ìàòðèöà, àíàëîãè÷íàÿ (13).
4. Äëÿ ïîëó÷åííîé ñèñòåìû èòåðàöèîííûõ óðàâíåíèé è ðåêóððåíòíîé
ìàòðèöû ôîðìèðóåòñÿ âåêòîð-ôóíêöèÿ, àíàëîãè÷íàÿ (14).
5. Ïîëó÷åííîå ðåêóððåíòíîå ìàòðè÷íîå óðàâíåíèå, àíàëîãè÷íîå (6),
ðåøàåòñÿ ñ èñïîëüçîâàíèåì ïðîöåäóðû recmat.
Âîïðîñ, ñâÿçàííûé ñ èçáûòî÷íîñòüþ èñïîëüçóåìîé îïåðàòèâíîé ïà-
ìÿòè ïðè ïîñòðîåíèè ìàòðèöû ðåçóëüòàòîâ, ìîæåò áûòü ðåøåí ïóòåì
îïòèìèçàöèè àëãîðèòìà è óäàëåíèÿ ñòðîê, íåíóæíûõ äëÿ ïîñëåäóþùèõ
âû÷èñëåíèé.
Âûâîäû. Ìàòðè÷íûå ìåòîäû ïðîãðàììèðîâàíèÿ óñïåøíî ïðîòåñòèðî-
âàíû íà ðÿäå ñòàíäàðòíûõ è îðèãèíàëüíûõ çàäà÷, ÷òî ïîçâîëÿåò ñ áîëüøîé
äîñòîâåðíîñòüþ ïðåäïîëàãàòü âîçìîæíîñòü èõ ýôôåêòèâíîãî èñïîëüçîâàíèÿ
â êà÷åñòâå ðåàëüíîé àëüòåðíàòèâû ñòðóêòóðíîìó ïðîãðàììèðîâàíèþ. Òåì íå
ìåíåå, âîïðîñ îá ýêâèâàëåíòíîñòè ýòèõ äâóõ ïîäõîäîâ ïðè ðåàëèçàöèè ðàç-
ëè÷íûõ âû÷èñëèòåëüíûõ àëãîðèòìîâ ïîêà îñòàåòñÿ îòêðûòûì. Îí ìîæåò
ñòàòü ïðåäìåòîì îòäåëüíûõ èññëåäîâàíèé â îáëàñòè òåîðèè àëãîðèòìîâ è
ïðèêëàäíûõ âîïðîñîâ ïðîãðàììèðîâàíèÿ.
Ïðè ââåäåíèè ñ ïîìîùüþ ñîîòâåòñòâóþùèõ ëèíãâèñòè÷åñêèõ ñðåäñòâ
ìåõàíèçìîâ íàñëåäîâàíèÿ è ïîëèìîðôèçìà ìåòîäû ìàòðè÷íîãî ïðîãðàì-
ìèðîâàíèÿ ìîãóò áûòü ñîâìåùåíû ñ ñîâðåìåííûìè ìåòîäàìè îáúåêòíî-
îðèåíòèðîâàííîãî ïðîãðàììèðîâàíèÿ, à èñïîëüçîâàíèå àðèôìåòèêî-ëîãè-
÷åñêèõ âûðàæåíèé ìîæåò ñîñòàâèòü ñåðüåçíóþ àëüòåðíàòèâó ñîâðåìåí-
íûì ìåòîäàì è ñðåäñòâàì ëîãè÷åñêîãî ïðîãðàììèðîâàíèÿ. Ïðåäëîæåííàÿ
È. Â. Ìåëüíèê
50 ISSN 0204–3572. Electronic Modeling. 2009. V. 31. ¹ 3
ìåòîäèêà ïðîãðàììèðîâàíèÿ îòëè÷àåòñÿ îòíîñèòåëüíîé ïðîñòîòîé è ìî-
æåò íàéòè ïðèìåíåíèå ïðè èçó÷åíèè òåîðèè àëãîðèòìîâ, à òàêæå ïðè
ðàçðàáîòêå íîâûõ ýôôåêòèâíûõ âû÷èñëèòåëüíûõ ìåòîäîâ.
The possibilities of using the vector and matrix macrooperations to realize classical and original
algorithms have been analyzed in the paper on the examples of solving the pragmatic program-
ming tasks. Some new definitions of the arithmetic-logical expression, recurrent arithmetic-logi-
cal expression and vector-function were introduced to explained the basic singularities of the ana-
lyzed macrooperations. It is demonstrated on a lot of different examples, that the proposed
method can be really considered as an alternative to currently used structured coding for the tasks
of middle-level complicity.
1. Äüÿêîíîâ Â. Ï. Matlab 6/6.1/6.5+Simulink 4/5. Ïîëíîå ðóêîâîäñòâî ïîëüçîâàòåëÿ. — Ì. :
Ñîëîí-Ïðåññ, 2002. — 768 ñ.
2. Ìàðòûíîâ Í. Í. Ââåäåíèå â Matlab 6. — Ì. : Êóäèö-Îáðàç, 2002. — 352 c.
3. Ìåëüíèê È. Â. Èñïîëüçîâàíèå ìàòðè÷íûõ ìàêðîîïåðàöèé ïðè ðàáîòå â ìàòåìàòè÷åñ-
êèõ ÑÀÏÐ íà ïðèìåðå ñèñòåìû MATLAB//Âåñò. Õåðñîíñêîãî ãîñóäàðñòâåííîãî òåõ-
íè÷åñêîãî óíèâåðñèòåòà. Âûï. 2 (28). — Õåðñîí, 2007. — Ñ. 199—205.
4. Êíóäò Ä. Èñêóññòâî ïðîãðàììèðîâàíèÿ/Ïåð. ñ àíãë. ïîä îáù. ðåä. Þ.Â. Êîçà÷åíêî. —
Ì. : Âèëüÿìñ, 2003. — 560 ñ.
5. Ñýäæâèê Ð. Ôóíäàìåíòàëüíûå àëãîðèòìû íà Ñ++. Àíàëèç. Ñòðóêòóðû äàííûõ. Ñîð-
òèðîâêà. Ïîèñê/ Ïåð ñ àíãë. — Ñ-Ïá. : ÎÎÎ «ÄèàÑîôò ÞÏ», 2002. — 688 ñ.
6. Ìýòüþç Ä., Êóðòèñ Ä. ×èñëåííûå ìåòîäû. Èñïîëüçîâàíèå Matlab. — Ì. : Èçä. äîì
«Âèëüÿìñ», 2001. — 720 ñ.
7. Ñàìàðñêèé À. À., Ãóëèí À. Â. ×èñëåííûå ìåòîäû. — Ì. : Íàóêà, 1989. — 432 ñ.
8. Ìåëüíèê È. Â. Ìîäåëèðîâàíèå òðàíñïîðòèðîâêè ýëåêòðîííûõ ïó÷êîâ èç îáëàñòè íèç-
êîãî â îáëàñòü âûñîêîãî âàêóóìà â ýêâèïîòåíöèàëüíîì êàíàëå// Ýëåêòðîí. ìîäåëèðî-
âàíèå. — 2001. — 23, ¹ 4. — Ñ. 82—92.
9. Ìîëîêîâñêèé Ñ. È., Ñóøêîâ À. Ä. Èíòåíñèâíûå ýëåêòðîííûå è èîííûå ïó÷êè. — Ì. :
Ýíåðãîàòîìèçäàò, 1991. — 304 ñ.
10. Èëüèíà Â. À., Ñèëàåâ Ï. Ê. ×èñëåííûå ìåòîäû äëÿ ôèçèêîâ-òåîðåòèêîâ. — Ìîñêâà-
Èæåâñê : Èíñòèòóò êîìïüþòåðíûõ èññëåäîâàíèé, 2003. — 132 ñ.
Ïîñòóïèëà 18.11.08;
ïîñëå äîðàáîòêè 25.02.09
ÌÅËÜÍÈÊ Èãîðü Âèòàëüåâè÷, ä-ð òåõí. íàóê, äîöåíò êàôåäðû ýëåêòðîííûõ ïðèáîðîâ è
óñòðîéñòâ Íàöèîíàëüíîãî òåõíè÷åñêîãî óíèâåðñèòåòà Óêðàèíû «Êèåâñêèé ïîëèòåõíè÷åñêèé
èí-ò», êîòîðûé îêîí÷èë â 1989 ã. Îáëàñòü íàó÷íûõ èññëåäîâàíèé — èçó÷åíèå ñàìîñîãëà-
ñîâàííîé ýëåêòðîííî-èîííîé îïòèêè â âûñîêîâîëüòíîì òëåþùåì ðàçðÿäå, ýíåðãåòèêà ãàçî-
âîãî ðàçðÿäà è ðàçðÿäíîé ïëàçìû, âçàèìîäåéñòâèÿ ýëåêòðîííûõ è èîííûõ ïó÷êîâ ñ âåùåñòâîì.
Àíàëèç âîçìîæíîñòåé èñïîëüçîâàíèÿ ìàòðè÷íûõ ìàêðîîïåðàöèé ñèñòåìû MatLab
ISSN 0204–3572. Ýëåêòðîí. ìîäåëèðîâàíèå. 2009. Ò. 31. ¹ 3 51
|
| id | nasplib_isofts_kiev_ua-123456789-101492 |
| institution | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| issn | 0204-3572 |
| language | Russian |
| last_indexed | 2025-12-01T02:07:21Z |
| publishDate | 2009 |
| publisher | Інститут проблем моделювання в енергетиці ім. Г.Є. Пухова НАН України |
| record_format | dspace |
| spelling | Мельник, И.В. 2016-06-03T19:01:51Z 2016-06-03T19:01:51Z 2009 Анализ возможностей использования матричных макроопераций системы MatLab при решении прикладных задач / И.В. Мельник // Электронное моделирование. — 2009. — Т. 31, № 3. — С. 37-51. — Бібліогр.: 10 назв. — рос. 0204-3572 https://nasplib.isofts.kiev.ua/handle/123456789/101492 519.6 На примерах решения практических задач программирования проанализированы возможности использования векторных и матричных макроопераций для реализации классических и оригинальных алгоритмов. Для объяснения основных особенностей этих операций введены новые понятия арифметико-логического выражения, рекуррентного арифметико-логического выражения и вектора-функции. Показано, что при решении задач среднего уровня сложности предложенный подход может стать альтернативой современным методам и средствам структурного программирования. На прикладах розв’язку практичних задач програмування проаналізовано можливості використання векторних та матричних макрооперацій для реалізації класичних та оригінальних алгоритмів. Для пояснення головних особливостей цих операцій введено нові поняття арифметико-логічного виразу, рекурентного арифметико-логічного виразу та вектора-функції. Показано, що при розв’язуванні задач середнього рівня складності запропонований підхід може стати альтернативою сучасним методам та засобам структурного програмування. The possibilities of using the vector and matrix macrooperations to realize classical and original algorithms have been analyzed in the paper on the examples of solving the pragmatic programming tasks. Some new definitions of the arithmetic-logical expression, recurrent arithmetic-logical expression and vector-function were introduced to explained the basic singularities of the analyzed macrooperations. It is demonstrated on a lot of different examples, that the proposed method can be really considered as an alternative to currently used structured coding for the tasks of middle-level complicity. ru Інститут проблем моделювання в енергетиці ім. Г.Є. Пухова НАН України Электронное моделирование Математические методы и модели Анализ возможностей использования матричных макроопераций системы MatLab при решении прикладных задач Analysis of Possibilities of Using the Matrix Macrooperations of the MatLab System when Solving the Applied Problems Article published earlier |
| spellingShingle | Анализ возможностей использования матричных макроопераций системы MatLab при решении прикладных задач Мельник, И.В. Математические методы и модели |
| title | Анализ возможностей использования матричных макроопераций системы MatLab при решении прикладных задач |
| title_alt | Analysis of Possibilities of Using the Matrix Macrooperations of the MatLab System when Solving the Applied Problems |
| title_full | Анализ возможностей использования матричных макроопераций системы MatLab при решении прикладных задач |
| title_fullStr | Анализ возможностей использования матричных макроопераций системы MatLab при решении прикладных задач |
| title_full_unstemmed | Анализ возможностей использования матричных макроопераций системы MatLab при решении прикладных задач |
| title_short | Анализ возможностей использования матричных макроопераций системы MatLab при решении прикладных задач |
| title_sort | анализ возможностей использования матричных макроопераций системы matlab при решении прикладных задач |
| topic | Математические методы и модели |
| topic_facet | Математические методы и модели |
| url | https://nasplib.isofts.kiev.ua/handle/123456789/101492 |
| work_keys_str_mv | AT melʹnikiv analizvozmožnosteiispolʹzovaniâmatričnyhmakrooperaciisistemymatlabprirešeniiprikladnyhzadač AT melʹnikiv analysisofpossibilitiesofusingthematrixmacrooperationsofthematlabsystemwhensolvingtheappliedproblems |