УДК 519.7
В.М. ДМИТРИЕВ, Т.В. ГАНДЖА
АЛГОРИТМ ФОРМИРОВАНИЯ И ВЫЧИСЛЕНИЯ МАТЕМАТИЧЕСКИХ ВЫРАЖЕНИЙ МЕТОДОМ КОМПОНЕНТНЫХ ЦЕПЕЙ_______________________________________________________
Abstract. A method of presentation of mathematical expressions in the form of component circuits is considered. it is a basis for engineering of the computer mathematics system "Macrocalculator" and realization of interactive mathematical panels in the environment of modeling of technical devices and MARS-type systems. An algorithmic basis of such software products is a universal computational kernel allowing us to make computer modeling of technical objects and automated calculation of mathematical expressions presented in the form of component circuits.
Key words: computer modeling, system of computer mathematics, mathematical expression, automation of mathematical computations, the component circuit, universal computing kernel, the method of presentation of mathematical expressions.
Анотація. Розглядається методика представлення математичних виразів у форматі компонентних ланцюгів. Вона є основою для розробки системи комп’ютерної математики «Макрокалькулятор» і реалізації інтерактивних математичних панелей у середовищі моделювання технічних пристроїв і систем МАРС. Алгоритмічною основою обох програмних продуктів є універсальне обчислювальне ядро, яке дозволяє проводити комп’ютерне моделювання технічних об’єктів і автоматизоване обрахування математичних виразів, представлених у форматі компонентних ланцюгів.
Ключові слова: комп'ютерне моделювання, система комп'ютерної математики, математичний вираз, автоматизація математичних обчислень, компонентний ланцюг, універсальне обчислювальне ядро, методика представлення математичних виразів.
Аннотация. Рассматривается методика представления математических выражений в формате компонентных цепей, лежащая в основе для разработки системы компьютерной математики «Макрокалькулятор» и реализации интерактивных математических панелей в среде моделирования технических устройств и систем МАРС. Алгоритмической основой обоих программных продуктов является универсальное вычислительное ядро, позволяющее производить компьютерное моделирование технических объектов и автоматизированное вычисление математических выражений, представленных в формате компонентных цепей.
Ключевые слова: компьютерное моделирование, система компьютерной математики, математическое выражение, автоматизация математических вычислений, компонентная цепь, универсальное вычислительное ядро, методика представления математических выражений.
1. Введение
При проектировании, исследовании и разработке сложных технических объектов важной составляющей является вычислительный эксперимент, который проводится с помощью автоматизированных моделирующих систем. Современные требования развития автоматизации экспериментальных исследований в технических областях требуют разработки не просто моделирующих, а расчетно-моделирующих систем, позволяющих более полно автоматизировать необходимые научные и проектные исследования, связанные с автоматизацией моделирования исследуемых объектов и с выполнением автоматизированных расчетов и аналитических преобразований математических выражений.
Для реализации расчетно-моделирующей среды за основу была взята российская программная среда компьютерного моделирования физически неоднородных технических устройств и систем МАРС, позволяющая на методе компонентных цепей [1] анализировать виртуальные аналоги физически неоднородных технических объектов. В данной работе исследуется методика отображения математических выражений в формате компонентных цепей для реализации системы компьютерной математики «Макрокалькулятор» с использованием универсального вычислительного ядра [2] среды моделирования МАРС. Совокупность двух систем позволит реализовать комплекс программ «Расчетно-моделирующая среда», предназначенный для автоматизации ряда этапов
© Дмитриев В.М., Ганджа Т.В., 2010
ISSN 1028-9763. Математичні машини і системи, 2010, № З
научных и проектных исследований, основу которых составляет компьютерное моделирование физически неоднородных технических объектов.
2. Основные положения метода компонентных цепей
Метод компонентных цепей (МКЦ) [1] позволяет представить в виде компонентной цепи физически неоднородный технический объект с целью его моделирования в статическом или динамическом режиме. Основными понятиями МКЦ являются понятия компонента и компонентной цепи. Компонентная цепь (КЦ) представляется совокупностью трех множеств:
С = (к, В, ^, (1)
где К - множество компонентов;
В - множество связей всех компонентов из К;
N - множество узлов.
Множество компонентов К включает в себя в общем случае три подмножества:
Кш - множество компонентов-источников значений переменных;
Кр - множество компонентов-преобразователей значений переменных;
К/ - множество компонентов-измерителей значений переменных.
N
N2 •
К
В Компонент общего вида К с п связями ^1, $2,..., 8п
п'1 *N„.2
п (рис. 1) входит в КЦ, описываемую вектором переменных V, раз-
мерность которого определяется числом ее узлов и ветвей. Каждой
X г п
Рис 1 Формализованное связи £ ставится в соответствие пара топологических координат
представление компонента
\Nj, В) с переменными \VNj ), называемыми далее перемен-
ными связей, где VNj - узловая переменная, VBj - потоковая переменная ветви.
Для переменных выполняется топологический закон равенства узловых переменных связей, ведущих в один и тот же узел, и закон равенства нулю суммы потоковых переменных, сходящихся в одном и том же узле.
Связи £ между компонентами классифицируются по числу передаваемых по связи переменных, а также по физической однородности информации, передаваемой через связь.
В общем случае система уравнений МКЦ состоит из топологических и компонентных уравнений. Топологические уравнения относятся к классу линейных алгебраических уравнений.
Модели компонентов могут быть описаны компонентными уравнениями следующих видов:
1) линейными моделями:
I а,- VI = Ь, (2)
г
где а,,Ь - постоянные коэффициенты;
2) нелинейными моделями:
В
В
1
=} V,),
аі
(4)
где у/{Ук) = І^- 'V - линейная форма с постоянными коэффициентами;
f (V, і) - произвольная функция; 4) моделями источников:
I ч-к=Мі),
(5)
где а, - постоянные коэффициенты;
Ь{1) - произвольная функция.
Математические выражения отображаются в КЦ с информационными связями. Следовательно, система уравнений МКЦ для таких цепей будет содержать только компонентные уравнения.
Основной принцип построения компонентной цепи для математических выражений формулируется в виде теоремы.
3. Теорема представления математических выражений в формате компонентных цепей
Теорема. Для построения компонентной цепи математического выражения или системы математических выражений необходимо, чтобы входящие в него математические операции могли быть описаны в виде моделей (2)-(5).
Доказательство. Математическое выражение, содержащее N математических операций, можно разложить в N математических выражений, каждое из которых содержит только одну операцию. Математическая операция в общем виде содержит несколько операндов (переменных или констант, вступающих в данную операцию) и результат. Следовательно, ее можно представить в виде
Функция Е в выражении (7) может быть представлена таким образом, чтобы результат математической операции являлся ее аргументом:
(6)
где V - вектор операндов, вступающих в математическую операцию; Г - вид математической операции;
Я - результат операции.
Выражение (6) преобразуется к неявному виду
(7)
Ъ V, х) = 0 . (8)
Выражению (8) можно поставить в соответствие компонент в формате компонентных цепей с математической моделью (3), которая является одной из основных форм математических моделей МКЦ и охватывает достаточно широкий набор математических операций вычислительного характера.
Теорема доказана.
-И
Рис. 2. Обобщенный компонент математической операции
Сопоставив каждой математической операции компонент (рис. 2), реализующий ее в формате компонентных цепей, для всего математического выражения можно построить компонентную цепь, используя следующие правила:
- каждой математической операции ставится в соответствие компонент из множества Кр (1) с математической моделью (3), реализующей данную операцию в формате компонентных цепей;
- каждому операнду соответствует источник значения операнда из множества Кш, если этот операнд численно определен, и измеритель значения операнда из множества К7, если он
численно не определен;
- каждой связи в математическом выражении, отражающей результат какой-либо его промежуточной операции, ставится в соответствие информационная связь с переменной , отображающей в компонентной цепи результат данной операции.
Если для всех математических выражений, входящих в систему, можно построить соответствующие компонентные цепи, то из всей системы выражений можно построить единую КЦ.
Таким образом, для математического выражения или системы выражений можно поставить в соответствие компонентную цепь С (1). Для автоматизированного построения КЦ системы математических выражений используется интерпретатор, входным языком которого является язык представления математических выражений в редакторе, а выходным - язык компонентных цепей, позволяющий с помощью универсального вычислителя [2] среды МАРС вычислить значения неизвестных операндов математического выражения. Рассмотрим язык представления математических выражений в редакторе.
4. Язык представления математических выражений в редакторе
Представление математических выражений в редакторе производится в естественноматематическом виде, что улучшает наглядность представления математических выражений и удобство их ввода и редактирования.
В нотациях Бекуса-Наура математическое выражение в редакторе можно представить в виде
Мат _ выражение) ^ (Операнб)(Оператор)(Операнб)|(Операнб). (9)
Множество операторов <Оператор> из (9) включает в себя следующие подмножества:
(Оператор) ^ (Арифм _ оп) (Оп _ сравн)\(Лог. _ о^ |:=|= (10)
где := - оператор присваивания;
= - оператор вычисления.
Множество арифметических операторов <Арифм_оп> из (10) отображается в следующее множество терминальных символов:
(.Арифм _ оп) ^ +
реализующих арифметические операции над операндами.
Множество операторов сравнения <Оп_сравн> из (10) отображается во множество терминальных символов:
(Оп _ сравн)
>
<
> = ^
I 1 , (11)
реализующих множество операторов сравнения.
Множество логических операторов <Лог_оп> в (10) отображается во множество логических (булевых) операторов:
Мат _ выражений ^ (Операнб)(Оператор)(Операнб)|(Операнб). (9)
Множество операторов <Оператор> из (9) включает в себя следующие подмножества:
(Оператор) ^ (Арифм _ оп) (Оп _ сравн)^(Лог _ _ оп) |:=|= (10)
где := - оператор присваивания;
= - оператор вычисления.
Множество арифметических операторов <Арифм_оп> из (10) отображается в следующее множество терминальных символов:
(Арифм _ оп)
реализующих арифметические операции над операндами.
Множество операторов сравнения <Оп_сравн> из (10) отображается во множество терминальных символов:
(Оп _ сравн)
>
<
> = ^
I 1 , (11)
реализующих множество операторов сравнения.
Множество логических операторов <Лог_оп> в (10) отображается во множество логических (булевых) операторов:
(Лог _ оп) (12)
реализующих множество операций над логическими переменными.
Таким образом, операторы (10) - (12) являются специфическими символами, указывающими на выполнение тех или иных операций над данными выраженными операндами.
Каждый операнд, входящий во множество <Операнд> из (9), может быть членом одного из
следующих множеств:
(Операнд} ^ (Константа} (Переменная}\(функция}\(Мат _ выражение}. (13)
Константа - операнд, имеющий графическое представление в виде набора цифр, букв и (или) специальных символов и постоянное численное значение. Константу можно описать следующим образом:
Функция - это отображение множества аргументов А на множество значений функции В . С точки зрения описываемого языка, функции можно классифицировать на:
1. Логарифмоподобные функции, которые можно описать следующим образом:
2. Функции общего вида - функции, имеющие специфический графический вид в редакторе. К ним относятся: возведение в степень, извлечение корня, логарифм по любому основанию, факториал, взятие части выражения в скобки, взятие модуля, деление в виде дроби, матрица, система уравнений. В отдельный ряд следует выделить функции, один или несколько аргументов которых могут быть выражениями, зависящими от некоторого изменяемого параметра. Если вычисление значения функции предусматривает многократное вычисление одного или нескольких аргументов
(14)
где
(Конец _ константі
Переменную можно описать следующим образом:
(пПеременнаЯ ^(ИмЯ/,
(15)
где
где
(16)
при изменении некоторой переменной, то такую функцию будем называть функционалом. К ним будут относиться численное дифференцирование функции, определенный интеграл, суммирование, произведение и т.п.
Таким образом, основными лексемами языка представления математических выражений являются операторы и операнды, выраженные константами, переменными либо функциями.
С помощью введенных лексем можно строить математические выражения, которым ставятся в соответствие компонентные цепи для их решения универсальным вычислителем или их использования при моделировании:
1. Вычисляемое выражение - высказывание на языке представления математических выражений, содержащее оператор вычисления (10), с помощью которого в редактор выводится результат:
(Мат _ выражений = ( Констант^. (17)
2. Уравнение - высказывание, в котором одна из переменных, входящая в выражения по
обе стороны от оператора «равно» (11), требует своего определения:
(Мат _выражение} = Мат _ выражение}. (18)
К данному классу также относятся дифференциальные уравнения, в результате решения которых необходимо найти либо аналитический вид функции, стоящей под знаком дифференциала, либо ее значения при заданных значениях аргумента. Система уравнений представляется совокупностью связанных между собой уравнений.
3. Неравенство - высказывание, в котором его составные части соединены операторами сравнения (11):
(Мат_выражение}(Оп_срав^Мат_выражение}. (19)
Результатом решения неравенства является интервал значения переменной, для которого
оно истинно.
Таким образом, данные выражения являются достаточными для рассмотрения задач вычислительной математики. Рассмотрим подробнее методику отображения математических выражений в язык компонентных цепей.
5. Методика представления математических выражений в формате компонентных цепей
Применяя правила описанной грамматики по алгоритму [2] к математическому выражению, можно построить дерево операций данного математического выражения [3].
В качестве примера рассмотрим математическое выражение
• ( 3 • х^
2 • х = sшl —2— I. (20)
Применив к нему правила описанной грамматики, можно построить дерево вывода математического выражения (рис. 3), в котором с целью его отображения в формат компонентной цепи выделим 3 множества:
1. Множество операндов математического выражения:
Ь \ЪХ,Ь2,Ьъ,Ь4,Ь5},
(21)
где Ь1 = 3; Ь2 = х; Ь3 = 2; Ь4 = 2; Ь5 = х.
2. Множество операций математического выражения, куда входят все операторы и функции данного математического выражения:
А (А1, А2 , А3 , А4 , А5 } ,
(22)
Рис. 3. Дерево операций математического выражения (20)
где А1 ="•", А2 ="/", А3 ="•", А4 =мsinм, А5 =" =".
3. Множество узлов дерева вывода математического выражения:
Нт = Ц, N2, N3, N4, N5, N6, N7, N.. N,},
(23)
содержащее множество результатов промежуточных математических операций (вектор переменных промежуточных операций).
Если все операнды рассматриваемого математического выражения численно определены, то вектор решения промежуточных операций будет содержать численное значение каждой выполненной операции. В этом случае к данному выражению достаточно применить алгоритм обратной польской записи [3] для расчета его значения.
Когда рассматриваемое выражение содержит хотя бы один численно неопределенный операнд, который определяется в результате решения данного выражения, или, являясь аргументом описываемой функции, определяется в нижеследующих выражениях, алгоритм обратной польской записи не приносит желаемого результата.
Для хранения и дальнейшего расчета таких выражений предлагается представить их в виде компонентной цепи. Для этого расширим МКЦ и построим систему отображения математических выражений в формате МКЦ.
На основе теоремы каждое математическое выражение из (17) - (19), для которого может быть построено дерево вывода, можно представить компонентной цепью вида
где К - множество компонентов математических операций, отображающих множество А (22) в МКЦ (рис. 4а);
Ж - множество компонентов-источников операндов (рис. 4б), отображающее в МКЦ численно определенные операнды множества Ь (21);
I - множество компонентов-измерителей значений переменных (рис. 4в), отображающее численно неопределенные операнды множества Ь (21) в МКЦ;
N - множество узлов КЦ (связей между компонентами из К).
Для построения компонентной цепи математического выражения используются следующие правила отображения дерева вывода в формат компонентных цепей:
(24)
- каждой операции из множества А (22) будет найдено отображение в виде компонента из множества К или компонентной подцепи [4], содержащей произвольное множество связанных между собой компонентов из К (24);
- каждому операнду из Ь (21) будет поставлен в соответствие компонент-источник из множества Ж, если этот операнд численно определен, и компонент-измеритель из множества I, если он определяется в отображаемом выражении;
- множеству узлов дерева вывода N (23) будет соответствовать множество узлов N КЦ.
При этом вектором решения цепи будет являться вектор V, в котором в результате ее анализа будут содержаться значения ее переменных.
Рис. 4. Компоненты системы отображения математических выражений в языке компонентных цепей: а) компонент математической операции; б) компонент-источник значения операндов;
в) компонент-измеритель значения переменной
Последовательность отображения операций задается множеством связей между операциями £0, которые, ввиду записи математического выражения в неявном виде (7), не требуют задания направления связи.
Соединение компонентов допустимо между узлами, имеющими один тип примыкающих связей, определяемый операндами, вступающими в ту или иную операцию, и результатом математического выражения.
В зависимости от типа переменной, передаваемой через связь, связь может иметь один из следующих типов:
- целочисленный тип ^, которому соответствует связь с переменной, принимающей только целочисленные значения;
- вещественный тип , переменная связи которого может иметь значение десятичного
числа;
- комплексный тип $с . Его переменная связи может принимать комплексные значения,
представленные совокупностью действительной и мнимой частей, выраженных в виде десятичных чисел;
- логический тип $в, переменная связи которого может иметь булевское значение;
- векторный тип SV. Переменная связи этого типа имеет векторный вид;
- матричный тип 8М . Переменная связи данного типа имеет матричную форму.
В общем случае указанные типы связей являются информационными. Следовательно, им ставится в соответствие потенциальная переменная или набор потенциальных переменных.
N10-
N11°-
а)
б)
в)
При формировании КЦ допускается соединение узлов компонентов, имеющих одинаковый тип примыкающих связей. В качестве основного типа связи используется векторный тип. Остальные типы связей приводятся к нему следующим образом:
- комплексный тип связи - «с - отображается векторным типом связи SV, по которой передается вектор переменных V = [VV"], соответствующий комплексному числу 2 = V'+7 • V'';
- вещественный тип связи - => «с [V ,0];
- целочисленный тип связи - « => [V ] , где V - целое;
- логический тип связи - «в => «1, в которой V может принимать только значения 0 или 1. Для реализации компонентов основных математических операторов и функций типы связей
можно классифицировать на скалярные «« и матричные «М. К скалярным типам связей отнесем
комплексный «с , вещественный и целочисленный ^. В качестве основного типа связи в этой группе выступает комплексный тип, так как Б1 е е «с . Следовательно, компоненты скалярных математических операторов и функций, реализованные для типа связи «с , будут справедливы для типов связей и «/.
Большинство операций, реализованных для переменных матричного типа связи «М, будут справедливы для переменных векторного типа связи SV.
Для скалярных типов данных модели основных математических операций реализованы в неявном виде (5), что с помощью одних и тех же компонентов позволяет вычислять значения математических выражений, находить решения линейных, нелинейных и дифференциальных уравнений и линейных и нелинейных неравенств.
Рассмотрим более подробно принципы представления в формате компонентных цепей различных скалярных математических выражений.
6. Формирование компонентных цепей для основных математических выражений со скалярными операндами
6.1. Расчет значения выражения
Выражение, значение которого требуется найти и вывести в редактор математических выражений, имеет вид (17). Для его подвыражения (Мат_выражений формируется КЦ, в которую к узлу, соответствующему результату данного выражения, подключается компонент-измеритель значения переменной из множества I (24). В результате обработки КЦ универсальным вычислителем [4] подключенный компонент-измеритель будет содержать результат расчета математического выражения.
В качестве примера приведем графический вид КЦ математического выражения:
V = + 2 • С08(^|. (25)
Рис. 5. Компонентная цепь для вычисления математического выражения (25)
В результате применения описанной методики к данному выражению будет построена КЦ следующего вида (рис. 5). Над связями приводятся аналитические результаты математических операций выражения (25).
В результате расчета построенной КЦ универсальным вычислителем измерительный элемент будет содержать результат выражения (25).
6.2. Решение линейных и нелинейных уравнений, неравенств и их систем
В языке представления математических выражений уравнение является высказыванием, в котором одна из переменных, входящая в выражения по обе стороны оператора «равно» (18), должна быть определена в ходе его решения.
Оператору «равно» в формате компонентных цепей соответствует компонент «Равно» с математической моделью
Ут - Уы 2 = 0. (26)
Для решения уравнений общего вида, содержащих одну неизвестную переменную х, применяется схема Горнера [5], согласно которой, найдя один корень Х1, можно найти остальные,
поделив обе части уравнения на выражение (х - Х1).
Данное правило реализуется в системе отображения математических выражений в формат КЦ следующим алгоритмом.
Пусть дано уравнение вида
(х ) = р2(х). (27)
Для построения КЦ преобразуем его к неявному виду
^ (х)- ^2 (х )= 0. (28)
В языке компонентных цепей выражение (28) можно представить КЦ вида (рис. 6).
рцх] При расчете данной КЦ универсальным вычислителем
* і__________— -------------
Р2(х] ,______Iа! |“П [2] будет найден один корень Х1 уравнения (26). Для нахож-
дения следующего корня уравнения (27) поделим выражение (28) на выражение (х - Х1), в результате чего получим урав-
Рис. 6. Общая компонентная цепь нение вида для решения линейных и нелинейных уравнений
Л (х)- ¥2 (х) = 0 (х - X,) .
(29)
Если уравнение (27) имеет еще один корень, то он будет найден решением уравнения (29).
Если уравнение не имеет корней или все его корни уже найдены, то итерационный процесс прекратит работу, выдав результат.
Таким образом, представляя уравнения в формате компонентных цепей, можно найти все корни этого уравнения.
Для решения неравенство (19) приводится к неявному виду. После чего для нахождения промежутков знакопостоянства находятся все корни соответствующего уравнения, на основании которых производится анализ знака найденных промежутков. Результатом решения неравенства будет интервал или совокупность интервалов, на которых неравенство имеет истинное значение.
Система уравнений (неравенств) представляет собой совокупность уравнений (неравенств), для всех выражений которой формируется единая КЦ, рассчитываемая универсальным вычислителем с целью нахождения значений переменных. При решении системы уравнений для получения полного множества ее решений к каждому уравнению одновременно применяется схема Горнера по описанному выше алгоритму.
В качестве примера на рис. 7 приведена КЦ системы уравнений:
Г2 х + 3 у = 19 [ 4 х - 5 у = 5'
В результате обработки полученной КЦ универсальным вычислителем будут найдены результаты решения системы уравнений.
(30)
Рис. 7. Компонентная цепь системы уравнений (30)
6.3. Решение задачи Коши для обыкновенных дифференциальных уравнений
Обыкновенное дифференциальное уравнение в языке представления математических выражений в редакторе имеет вид
^ = / (х, у (х))
ах
(31)
Решение данного уравнения предполагает либо нахождение аналитического вида функции у(х), либо нахождение значения этой функции при заданных значениях аргумента в результате решения задачи Коши, которая требует задания начальных условий.
При формировании цепи дифференциального уравнения функция /(х,у(х)) отображается в компонентную цепь по описанным выше правилам. Каждому оператору дифференцирования ёX) ставится в соответствие компонент, реализующий данный оператор в методе компонентных цепей с моделью
ё (V,,)
а
N 2 ■
Кроме этого, к узлам, соответствующим стоящим под знаком дифференцирования операндам, подключается компонент для установки начальных условий. При соблюдении данных условий
формируется КЦ дифференциального уравнения (31), которая используется для численного его решения с помощью универсального вычислителя.
7. Заключение
Итак, в статье рассмотрен язык представления математических выражений, на основе которого реализован редактор, позволяющий вводить и редактировать математические выражения в естественно-математическом виде. Для создания средств автоматизации вычислений и аналитических преобразований математических выражений найден новый принцип представления математических выражений в формате компонентных цепей, на основе которого разработана методика представления математических выражений в формате компонентных цепей и реализован интерпретатор систем математических выражения в формат компонентных цепей.
На основе интерпретатора математических выражений и универсального вычислительного ядра реализована система компьютерной математики «Макрокалькулятор», образующая со средой моделирования технических устройств и систем МАРС единую расчетно-моделирующую среду для автоматизации этапов проектных и лабораторных исследований учебного и научного характера.
Дальнейшим продолжением работ является разработка компонентного базиса для отображения выражений векторно-матричного характера, а также исследование и разработка системы аналитических преобразований математических выражений в формате компонентных цепей.
СПИСОК ЛИТЕРАТУРЫ
1. Дмитриев В.М. Автоматизация моделирования промышленных роботов / Дмитриев В.М., Арайс Л.А., Шутенков А.В. - М.: Машиностроение, 1995. - 304 с.
2. Дмитриев В. М. Архитектура универсального вычислительного ядра для реализации виртуальных лабораторий / В. М. Дмитриев, А.В. Шутенков, Т. В. Ганджа // Приборы и системы. Управление, контроль, диагностика. -2004. - № 2. - С. 24 - 28.
3. Гордеев А.В. Системное программное обеспечение / А.В. Гордеев, А.Ю. Молчанов. - СПб.: Питер, 2002. -736 с.
4. Арайс Е.А. Моделирование неоднородных цепей и систем на ЭВМ / Е.А. Арайс, В.М. Дмитриев. - М.: Радио и связь, 1982. - 160 с.
5. Калабеков Б. А. Применение ЭВМ в инженерных расчетах в технике связи / Калабеков Б. А. - М.: Радио и связь, 1981. - 224 с.
Стаття надійшла до редакції 15.12.2009