Вычислительная система «управление»
Приводится описание вычислительной системы «Управление», разработанной для проведения лабораторных работ по курсу «Теория управления» на персональных компьютерах типа PC IBM. Эта система может также широко использоваться в научных исследованиях в области теории автоматического управления и смежных вопросах.
The computing system «automatic control».pdf Вычислительная система «Управление» (ВСУ) первоначально разрабатывалась для проведения лабораторных, курсовых и дипломных работ по курсу «Теория управления» на персональных компьютерах типа PC IBM и совместимых с ними. Позднее она широко использовалась и в научных исследованиях. Работы по указанному курсу связаны с исследованием динамических систем управления, поведение которых задается в пространстве состояний, т.е. описывается дифференциальными или разностными уравнениями, в правые части которых кроме фазовых координат могут входить управляющие и случайные воздействия. Кроме того, имеется наблюдаемый или измеряемый процесс, который связан с управляемым процессом и несет информацию о его текущем состоянии. Процесс наблюдений или измерений может сопровождаться случайными ошибками или помехами в измерительном канале. Тематика работ связана с решением задач: - моделирование систем (в том числе и стохастических), - исследование систем на устойчивость, - синтез регуляторов и компенсаторов различных типов (ПИД, оптимальных, динамических, модальных и т.п.), - синтез наблюдателей и фильтров (Калмана, Луенбер-гера и т.п.), - частотные методы исследования. В математическом отношении эти задачи связаны с решением дифференциальных или разностных уравнений, решением матричных уравнений Ляпунова, Риккати, Сильвестра, вычислением определителей Гурвица и рядом других вычислительных задач. ВСУ позволяет проводить эти вычисления в диалоговом режиме. Все числовые данные оформляются в виде матриц, которым присваиваются свои имена, причем размерности матриц, в которые заносятся результаты счета, определяются автоматически. Размерности матриц могут быть произвольными. Пользователь работает только с кодами операций и именами матриц и векторов, причем в режиме «подсказки» коды операций вводятся автоматически. Пользователь имеет дело только с формулами уравнений, которые определяют решение той или иной задачи. Поскольку ВСУ содержит большой набор (около 250) операций линейной алгебры и операций, связанных с решением алгебраических, дифференциальных и разностных уравнений, то она может использоваться при изучении других учебных дисциплин и проведении научных исследований, математически связанных с указанными процедурами. ВСУ содержит основные группы операций: - операции управления системой, в том числе установка параметров вычислительных процедур, включая машинный ноль; - операции ввода различных матриц, в том числе случайных; - операции компоновки и формирования матриц: перестановка, удаление, выделение, дублирование блоков столбцов или строк, компоновка матриц из блоков, вписывание одной матрицы в другую, формирование матриц управляемости и наблюдаемости, выделение линейно независимых строк и столбцов и т.д.; - арифметические операции над матрицами: сложение, вычитание, умножение, обращение, вычисление квадратного корня из симметрической матрицы и т.п.; поэлементные арифметические операции; - вычисление характеристик матриц: ранга, определителя, главных миноров, характеристического многочлена, собственных чисел и векторов и т.д.; - приведение матриц к каноническим формам - жорда-новой, естественной, Шура, Хессельберга и др., нахождение инвариантных многочленов матриц; - решение алгебраических уравнений (включая псевдообращение), решение матричных прямых и обратных уравнений Ляпунова и Риккати, уравнения Сильвестра для непрерывных и дискретных систем; - решение дифференциальных и разностных уравнений, в том числе и стохастических при случайных воздействиях гауссовского и пуассоновского типов; - приведение непрерывных систем управления к дискреным; - операции с многочленами: сложение и перемножение многочленов, введение биномиальных многочленов и многочленов Батерворда, вычисление матрицы Рауса и определителей Гурвица для многочлена, вычисление корней многочлена, вычисление матричных многочленов; - вычисление определенных интегралов и табуляция функций (в том числе матричных); - ввод функций, определяемых пользователем; - частотные методы исследования систем управления: вычисление годографа Михайлова, амплитудных и фазовых частотных характеристик, перемножение и сложение передаточных функций, вычисление передаточной функ-ции для замкнутой системы, построение передаточной функции для динамической системы и обратная задача; - представление графического материала, в том числе построение фазовых портретов. В системе предусмотрен программный режим, позволяющий составлять из операций программы, которым могут присваиваться свои имена и которые затем могут выполняться автоматически. Все выполненные в процессе диалога операции запоминаются и, таким образом, автоматически получается готовая программа. Имеется возможность включения в программы команд условного выполнения операций и команд условного и безусловного перехода по меткам, а также организация циклов. Предусмотрено включение одних программ в другие. Всего возможна организация до 20 программных уровней. Программный режим позволяет одновременно просчитывать несколько вариантов задачи с изменением какого-либо параметра. Для набора и отладки программ в системе предусмотрен специальный редактор. Предусмотрена операция автоматического изменения в программах одних имен матриц на другие, что позволяет использовать имеющиеся программы как стандартные, т.е. использовать их при решении разных задач. Числовые результаты и созданные программы можно записывать в файлы и, таким образом, создавать второй уровень системы. Система позволяет обрабатывать любые числовые массивы, записанные в кодах ASCII. По функциональным возможностям и интерфейсу система «Управление» несколько напоминает универсальную интерпретирующую среду матричных вычислений MatLab («Матричная Лаборатория»). Но в отличие от системы MatLab, система «Управление» специально ориентирована на решение задач моделирования, управления и обработки информации в динамических системах, описываемых в пространстве состояний. Поэтому она имеет значительно большее число встроенных специальных операций для данной предметной области. Более того, организация системы позволяет включать в нее новые операции без каких-либо затруднений, поэтому она постоянно совершенствуется. Удачный интерфейс системы «Управление» и простая организация программного режима существенно упрощают работу пользователя. 1. Организация системы 1.1. Запуск 1.1.1. ВСУ работает автономно в среде MS DOS (или WINDOWS). Имеется возможность работы в сети с общим жестким диском. 1.1.2. В файле DIM.BAS содержатся параметры системы: величина числового массива (не может превышать 16380), максимальное число используемых матриц, максимальное число программ, максимальное число программных уровней и т.д. Эти параметры в файле DIM. BAS можно изменять с учетом возможностей компьютера (в частности, с величиной строковой памяти). Текущее количество свободной памяти указывается в конце списка введенных матриц (операция ctm). 1.1.3. Причина сбоев при запуске или работе: - нехватка строковой памяти - внесите изменения в файл DIM.BAS, уменьшив число матриц, максимальное число операций в программах, максимальное число программ, максимально число программных уровней и т.д., и затем снова запустите ВСУ; - нехватка зарезервированных массивов для чи-сла матриц, программ и операций - удалите лишние матрицы; - при работе в сети с общим жестким диском в файле DIM.BAS неправильно задан соответствующий параметр. 1.1.4. При работе может создаваться файл ERR. DAT, в который заносятся случившиеся ошибки (с указанием их кода и соответствующий операции). Его можно удалять в любое время. 1.1.5. После запуска на экране появляется заставка, в которой кратко изложены общие правила работы с системой. Этого достаточно даже для начинающего пользователя. Признаком готовности системы к работе или к выполнению следующей операции является появление на экране надписи «ОПЕРАЦИЯ:». 1.2. Организация данных 1.2.1. Все числовые данные оформляются в виде матриц порядка пхт. Векторам соответствуют матрицы порядка пх1 или 1хп, отдельным числам - матрицы порядка 1 х 1. Размерности исходных матриц определяются при их вводе. Размерности матриц, в которые заносятся результаты счета, определяются автоматически. Размерности матриц могут быть произвольными. Нужно только учитывать, что величина числового массива не должна превышать 16000 чисел. Максимальное количество различных матриц задается в файле DIM.BAS и практически не должно превышать 1000. Матрицам присваиваются имена, которые могут состоять из латинских букв, цифр и символов (не допускаются ЗАПЯТАЯ и символы +, -, /, \, , :, Л, *, (, ), [, ], !, так как они используются в арифметических операциях). Лучше имена матриц начинать с букв. Это же относится и к именам программ. 1.2.2. Многочлен вида У(Х)=ап+! Хп+апХпЧ+... +а2Х+а1, где ап+1^0, задается в виде вектора. В разных операциях используются две формы многочленов и соответствующих векторов. Многочлен называется нормированным (сопровождается отметкой [п]), если ему соответствует п-мерный вектор а, составленный из чисел аь а2,..., ап. При этом предполагается, что ап+1=1. Так, например, представляется характеристический многочлен матрицы. Многочлен называется ненормированным (далее в тексте и в меню подсказки сопровождается отметкой [р]), если ему соответствует п+1-мерный вектор, составленный из чисел аь а2,..., ап, ап+1. Нужно обратить внимание на порядок нумерации коэффициентов многочлена и элементов вектора. Если в какой-то операции возможно использование обеих форм задания многочленов, то ставится отметка [5]. С помощью операции 1пр можно переходить от одной формы представления многочленов к другой. 1.2.3. Передаточная функция W (р )= Ъ +Ъ 2 р+...+Ъпрп- +Ъп+1 рп а 1 +а 2 р+...+апР"-1 +ап+1 р' где в числителе или знаменателе коэффициенты при старших степенях р могут равняться нулю, но не одновременно, задается с помощью матрицы порядка 2х , ,1Ч ш \blb2"-bnbn+l " (п+1) вида W= _а\аг'"а па п+\ Передаточная функция считается физически реализуемой, если степень многочлена в числителе меньше степени многочлена в знаменателе, т.е. по крайней мере, Ъи+1 =0, но аи+1^0. 1.3. Диалоговый режим 1.3.1. Для работы с системой после появление на экране надписи «ОПЕРАЦИЯ:» следует ввести в виде одного слова саму операцию. Общая структура этого слова следующая: КОД операции фрагмент 1 фрагмент2 ... . Если пользователь не знает кода операции и структуру слова, то он может получить подсказку в МЕНЮ ОПЕРАЦИЙ, куда можно войти с помощью ENTER. Вообще, при всех затруднениях нажимайте ENTER! Код операции состоит из трех латинских букв. В меню коды операций разбиты на группы по смысловому признаку. Коды операций из одной группы начинаются с одинаковых букв. Выбрав группу операций и нажав ENTER, попадаем в список операций данной группы. Выбрав нужную операцию и нажав ENTER, получаем окно для набора слова. В этом окне приводится шаблон структуры слова. Если пользователь знает код операции и шаблон структуры слова, то он может вводить это слово сразу после надписи «ОПЕРАЦИЯ:», не входя в МЕНЮ. После введения кода следует ввести необходимые фрагменты слова, между которыми всегда должен стоять ПРОБЕЛ. Внутри фрагмента пробелы не допустимы. Буквы, набранные в верхнем и нижнем регистрах, считаются разными. Исключение относится только к кодам операций и именам стандартных функций. В меню операций указываются необходимые аргументы операции. Эти аргументы обозначаются прописными (большими) или строчными (малыми) буквами. Большими буквами отмечены аргументы, которые должны быть именами матриц или для скалярных задач - числами. При обработке каждого фрагмента сначала проверяется наличие указанной матрицы, а если ее нет, то проверяется - является ли фрагмент числом. Если окажется, что фрагмент не является ни тем, ни другим, то выдается сообщение об ошибке «Матрицы нет». Строчными буквами обозначаются скалярные параметры, которые можно вводить в виде каких-то арифметических выражений. Эти арифметические выражения могут содержать элементы имеющихся матриц, числа и стандартные или вводимые пользователем функции. В арифметических выражениях можно использовать символы +, -, *, /, Л и круглые скобки ( ). Квадратные скобки используются только для обозначения аргументов стандартных и вводимых функций. Элементы матриц указываются в виде A (у), элементы векторов - в виде A(i). Исключением является элементы A(l,l) или A(l), когда достаточно указать только имя матрицы. Для вычисления индексов i и j допустимо также использовать арифметические выражения. При этом при получении дробных значений они округляются до ближайшего целого снизу. При описании операций, а также в подсказках, необязательные имена, выражения или признаки заключены в СКОБКИ. Если при вводе операции такие параметры не указываются, то они принимают значения по умолчанию. При вводе операции СКОБКИ не указываются! Признак / указывает на возможность выполнения другого варианта операции. В МЕНЮ ОПЕРАЦИЙ некоторые операции сопровождаются краткими комментариями, в которых поясняются особенности операции. 1.3.2. Одним словом можно ввести выполнение нескольких одинаковых операций, разделив группы матриц с помощью знака «;» - КОД фрагменты; фрагменты и т.д. (например, при msm X A В; X X С вычисляется сумма X=A+B+C), или разных операций, разделив их знаком «:» -КОД1 фрагменты; фрагменты; ... :КОД2 фрагменты; фрагменты и т.д. (например, при mpr х A В; у С D: msm X х у вычисляется X=AB+CD). Это удобно при составлении программ. 1.3.3. В операциях первой (или первыми) стоит матрица, в которую заносится результат вычислений. Ниже при описании операций в большинстве случаев такие матрицы обозначаются через X, Y, Z. Имя этой матрицы может совпадать с именем какой-либо уже введенной матрицы, в том числе и с используемой в данной операции. В таком случае последняя матрица удаляется. Это удобно для удаления лишних матриц. 1.3.4. В системе имеются следующие стандартные функции: abs[ ] - абсолютное значение , ath[ ] - арктангенс, cos[ ] - косинус, exp[ ] - экспонента, fix[ ] -удаление десятичной части числа, int[ ] - округление до целого, log[ ] - натуральный логарифм, sgn[ ] -знаковая функция, sin[ ] - синус, sqr[ ] - квадратный корень, tan[ ] - тангенс. Можно ввести дополнительные функции с помощью операции ppn. Вводимые функции должны обязательно начинаться с буквы F. Аргументы функций могут быть любыми арифметическими выражениями, включая любые стандартные и введенные функции. Все эти арифметические выражения не должны содержать ПРОБЕЛЫ, иначе они будут восприниматься как разные фрагменты. При обращении к этим функциям допустимо в аргумент вставлять другие функции, а также и саму функцию. Например, допустимо выражение F[F[x+1]]. С помощью операции ppf эти введенные функции можно оформить в программу, чтобы сохранить их для последующей работы. 3.5. В диалоговом режиме активны следующие функциональные клавиши (клавиши, активные в данный момент, высвечиваются в нижней строке экрана). F1 - «Матрицы». При нажатии на F1 появляется окно, где приводится список всех введенных матриц. Выбрать нужную матрицу можно с помощью маркера. При этом становятся активными следующие клавиши: F5 - «Переименование матриц» - изменение имени матрицы; F6 - «Изменение матриц» - можно изменить какой-либо элемент матрицы; F7 - запись выделенных матриц в файл; F8 - удаление выделенных матриц. Выделение нужных матриц, программ или файлов осуществляется с помощью INS. Все матрицы можно выделить с помощью правого + . F2 - «Программы». При нажатии на F2 появляется окно, где приводится список всех введенных программ. При этом становятся активными следующие клавиши: F5 - «Переименование программ» - изменение имени программы; F6 - «Изменение программ» - переход в редактор программ; F7 - запись выделенных программ в файл; F8 - удаление выделенных программ; F9 - запуск программы. Если при работе какие-либо файлы считывались, то после нажатия F7 кроме надписи «Укажите имя файла» внизу экрана высвечиваются имена считанных ранее файлов. При нажатии соответствующей клавиши F происходит запись в указанный файл, т.е. в таком случае не нужно создавать новый файл. F3 - « Числовые файлы». При нажатии на F3 появляется окно, где приводится список всех имеющихся файлов, содержащих числовые массивы (см. ниже). Выбрав нужный файл, можно считать его с помощью ENTER, причем в ДОПОЛНЕНИЕ к имеющемуся массиву. Кроме того, становятся активными следующие клавиши: F5 - «Переименование» - изменение имени файла; F6 - «Считывание файла» вместо имеющегося массива, т.е. имеющиеся до считывания матрицы удаляются; F8 - удаление выделенных файлов; F10 - введение новой директории. F4 - «Программные файлы». При нажатии на F4 появляется окно, где приводится список всех имеющихся файлов, содержащих массивы программ (см. ниже). Выбрав нужный файл, можно считать его с помощью ENTER, причем в дополнение к имеющемуся массиву. Кроме того, становятся активными следующие клавиши: F5 - «Переименование» - изменение имени файла; F6 - «Считывание файла» вместо имеющегося массива, т.е. имеющиеся до считывания программы удаляются; F8 - удаление выделенных файлов; F10 - введение новой директории. После введения кода операции, активными остаются клавиши F1 - «Матрицы» и F2 -«Программы». С помощью этих клавиш можно войти в список матриц или программ. Выбрав с помощью маркера нужное имя, можно нажав ENTER ввести это имя в набираемое слово. 1.4. Графический режим Числовые массивы, задаваемые в виде матриц, можно отразить на экране в виде графиков. Операции построения графиков имеют следующий вид: g** имена матриц (необязательные параметры или признаки). Вторыми буквами кода операции могут быть k, р, 1, которые определяют расположение графика на экране: в центре, в правой или в левой части экрана соответственно. Третьи буквы в коде операции g, f, s определяют тип графика. g - собственно ГРАФИК. Числа откладываются по вертикали, причем элементы каждой строки каждой матрицы располагаются равномерно по горизонтали в интервале [0,1] и соединяются ломанной. Если после набора операции набрать /, то кривая аппроксимируется горизонтальными отрезками. Каждой строке матрицы соответствует своя кривая. Возможно наряду с именами матриц указывать конкретные числа. Например, gig А В 5,55. Для изменения интервала [0,1] на интервал [0,/] нужно это сделать либо при вводе операции, набрав в конце слова через пробел =t, либо после построения графика нажать F6 и затем ввести t. При этом t может быть либо нужным числом, либо каким-то выражением. f - ФАЗОВЫЙ ПОРТРЕТ. Первый элемент каждого столбца каждой матрицы откладывается по горизонтали, а остальные по вертикали. Элементы каждой строки (начиная со второй) соединяются ломанной. Если после набора операции набрать /, то кривая аппроксимируется горизонтальными отрезками. Каждой строке матрицы (кроме первой) соответствует своя кривая. Выводимые матрицы должны содержать не менее двух строк. s - СПЕКТР матрицы. Выводимые матрицы должны состоять только из двух столбцов. Элементы первого столбца каждой матрицы откладывается по горизонтали, а соответствующие элементы второго столбца - по вертикали. Максимальное число выводимых кривых равно 8. Поэтому для вывода на экран массива, содержащего большее число строк, его нужно разбить на блоки. Можно менять порядок вывода строк. Для этого в режиме ГРАФИК после имен матриц нужно набрать \ и номера строк (все без пробелов) от 1 до 9. Например, при А\934 на экран выводятся 9, 3 и 4-я строки матрицы А. В режиме ФАЗОВЫЙ ПОРТРЕТ после имен матриц можно набрать (без пробелов) \ и далее номер строки, элементы которой откладываются по горизонтали, а затем номера остальных строк (все от 1 до 9). Если после \ указать только один номер, то остальные строки выводятся в порядке возрастания номеров. Например, при А\934 по горизонтали откладываются элементы 9-й строки, а на экран выводятся строки 3 и 4; при А\3 по горизонтали откладываются элементы 3-й строки, а на экран выводятся строки 1,2,4 и т.д. Неправильно заданные строки игнорируются. Для операций ГРАФИК и ФАЗОВЫЙ ПОРТРЕТ предусмотрено введение меток для разных кривых. Для введения меток нужно нажать F5 и набрать номер кривой и ENTER. Перемещение меток осуществляется клавишами ^ и фиксация меток - клавишей ENTER. Одновременно внизу экрана указываются значения координат точки. Выход из режима меток осуществляется с помощью ENTER. В операции ФАЗОВЫЙ ПОРТРЕТ нужно помнить, что первой кривой соответствует вторая строка матрицы и т.д. Клавиши F1, F2, F3, F10 включают и выключают цвет, сетку, рамку и подписи на рисунке соответственно. Под графиками после нажатия F9 можно набрать текст (не более 2-х строк). Переход к выполнению следующей операции осуществляется клавишей ENTER. Если далее вводится графическая операция (начинающаяся с буквы g) без обращения к подсказке, то система остается в графическом режиме. Это позволяет строить графики в правой и левой частях экрана. Изображение, полученное на экране, может быть отпечатано на принтере или записано в буфер с помощью PrintScreen. 1.5. Программный режим В системе предусмотрена возможность из выполненных операций составлять программы и работать с этими программами. Каждой программе присваивается свое имя. Операция pio позволяет оформить уже выполненные операции в новую программу. Для набора и отладки программ в системе предусмотрен специальный редактор (см. ниже), хотя это можно делать и с помощью обычных редакторов (NORTON и т.п.). Переход в режим набора и отладки программ осуществляется с помощью операций pip, pio, pvp или клавиш F2 и F6. В одну программу можно вставлять другие программы (кроме ее самой). В результате возможна организация нескольких программных уровней (число таких уровней устанавливается в файле DIM. BAS). С помощью операции prn можно выполнять программу несколько раз. Таким образом можно организовывать циклические вычисления. С помощью операции ppp можно просчитывать несколько вариантов одной задачи при варьировании какого-либо параметра. Имеется возможность автоматического переименования имен матриц в программе, что позволяет создавать библиотеку стандартных программ. 1.6. Редактор для отладки программ Вход в редактор осуществляется с помощью операций pip, pio, pvp или клавиш F2 и F6. Выход из редактора с помощью Esc или Ctrl+Q. Клавиши ENTER, Backpace, Home, End, DEL, INS, PageUp, PageDown, Ctrl+PageUp, Ctrl+PageDown имеют обычные функции. F3 - переход в МЕНЮ ОПЕРАЦИЙ, где можно выбрать и набрать нужную операцию, которая затем поместится на место, указанное маркером. F8 - включение и выключение INS. F4, F5 - выделение блока строк (F4 - начало, F5 -конец). Enter или Ctrl+M - разделение строки (в режиме вставки). Ctrl+Y - удаление строки. Ctrl+F - запись программы в файл, Ctrl+N - изменение имен матриц - можно автоматически изменить имена имеющихся в программе матриц или программ на новые. Ctrl+G - изменение имени редактируемой программы. Ctrl+K - ввод или изменение комментария к программе. Ctrl+P - считывание другой программы на место, указываемое маркером. Ctrl+X - копирование выделенного блока на место, указываемое маркером. Ctrl+V - перестановка выделенного блока на место, указываемое маркером. Ctrl+W - удаление выделенного блока. При выходе из редактора проводится проверка правильности набранных операций: проверяется правильность кода и числа обязательных аргументов. Из редактора можно выйти лишь тогда, когда в программе нет ошибок. Без исправления ошибок можно выйти из редактора, если в начале каждой строки с ошибками поставить знак ', т.е. превратив строку в комментарий. 1.7. Работа с файлами 1.7.1. Система работает с файлами двух типов: файлами, содержащими числовые массивы (им по умолчанию присваивается расширение ), и с файлами, содержащим массивы программ (им по умолчанию присваивается расширение ). При записи и считывании таких файлов расширение указывать не следует. Имена файлов не должны содержать знак + (это стандартное ограничение в MS DOS). 1.7.2. Организация файлов. В числовых файлах для каждой матрицы порядка п хт отводится строка, имеющая вид: + имя матрицы п т ' комментарий, после которой следуют числа. Если комментарий отсутствует, то ' можно не указывать. В самой системе в качестве комментария записывается операция, с помощью которой получена данная матрица, однако в редакторе этот комментарий можно изменять. В программных файлах для каждой программы, состоящей из п операций, отводится п+1 строка. Первая из этих строк имеет вид: + имя программы ' комментарий. В остальные п строк заносятся операции в виде операция ' комментарий. Если комментарии отсутствуют, то ' можно не указывать. Допустимы строки с одним комментарием (знак ' обязателен). В самой системе комментарий для программы вводится пользователем, а в качестве комментариев для операций записываются их расшифровки. Метки отмечаются с помощью * и устанавливаются перед соответствующей операцией. Например, *аа ima A п т. Можно проводить изменения в файлах с помощью обычных редакторов (NORTON и т.п.) и вводить и обрабатывать любые числовые массивы, записанные в кодах ASCII. Для этого нужно организовать числовой файл с расширением по приведенной выше схеме. При считывании файлов нужно учитывать, что массивы могут считываться в ДОПОЛНЕНИЕ к имеющимся или НА МЕСТО имеющихся. В первом случае возможно появление матриц или программ с одинаковыми именами, что может вызвать ошибки при работе. При записи файлов (расширение не указывается) с помощью операций rpc, rpp записывается весь имеющийся массив. При записи файлов с помощью F1 (или F2), INS и F7 записывается выделенная часть массива. В последнем случае после нажатия F7 кроме надписи «Укажите имя файла» внизу экрана высвечиваются имена считанных ранее файлов. При нажатии соответствующей клавиши F происходит запись в указанный файл, т. е. не нужно создавать новый файл. 2. Список операций 2.1. Операции управления системой сsm - вывод списка всех имеющихся матриц с указанием их имен, числа строк и столбцов, а также операции, с помощью которой введена эта матрица. Если матрица введена в результате прогонки какой-то программы, то указывается и имя этой программы. В конце списка указывается текущее количество свободной памяти. cum Ai A2 ... - удаление матриц A1, A2, ... . Если указать п1-п2, то удаляются все матрицы с номерами от п1 до п2 в списке матриц включительно. Если указать XX*, то удаляются все матрицы, имена которых начинаются с XX. При cum* удаляется весь массив. ctm A1 A2 ... - вывод матриц A1, A2, ... на экран. Можно указывать и их номера в списке. clmA1A2 ... - печать матриц A1, A2, ... на принтере. Можно указывать и их номера в списке. csp - вывод на экран списка программ с указанием имен, числа операций и комментария. cupA1 A2 ... - удаление программ с именами A1, A2, ... . ctpA1A2 ... - вывод на экран текста программA1sA2,.... clp A1 A2 ... - печать текста программ A1, A2, ... на принтере. Часть из этих операций можно выполнить с помощью функциональных клавиш (см. выше). cnn N A - определение размерности квадратной матрицы A . cnm N М A - определение размерности прямоугольной матрицы A . Операции cnn и cnm могут быть полезными при составлении стандартных программ, предназначенных для решения задач разной размерности. cte A ij - вывод элемента A(ij) на экран в виде числа с плавающей запятой. Если A - скаляр, то индексы ука-зытать не нужно. Если A - вектор, то можно указать один индекс. Эта операция удобна для просмотра «малых» элементов матрицы, так как при вытоде матрицы все ее элементы печатаются в одном формате. cve (i s) - изменение параметров счета: е(1) - машинного ноля, е(2) - точности выгчислений, е(6) -фиксированного числа итераций и т.д. В данной операции i - номер параметра, s - новое значение. Если эти значения не указывать, то выводится список всех параметров. cuo - удаление выполненных операций. Все выполненные операции запоминаются и из них можно оформить новую программу. Данная операция удаляет выполненные операции, если они не нужны. cnp - выщается информация о системе: величине числового массива, допустимого числа матриц, вводимых операций и встроенных программ. Эти характеристики задаются в файле DIM.BAS. cps - пауза. Может использоваться в программном режиме для контроля за выполнением программ. cst - конец работы (можно с помощью ESC). 2.2. Операции ввода матриц imaA п т - ввод произвольной матрицы порядка пхт. ipr A s - ввод параметра s, т.е. формируется матрица A порядка 1x1 с элементом, равным s. Значение s может быть каким-то выражением. im0 A п т - ввод нулевой матрицы порядка пхт. ime A п т (а) - ввод единичной матрицы порядка пхт. imn A п т (а) - ввод наддиагональной матрицы порядка пхт. imp A п т (а) - ввод поддиагональной матрицы порядка пх т. imk A п т (а) - ввод косодиагональной матрицы порядка пх т. ied A п т (а) - ввод матрицы, состоящей из 1. inr A п т (а/) - ввод матрицы, состоящей из чисел 1,2,3,... Если справа указывается /, то числа заносятся в обратном порядке. igs A п т (а) - формирование случайной матрицы, элементы которой являются гауссовскими случайными величинами с нулевыми средними и единичными дисперсиями. irs A п т (а) - формирование случайной матрицы, элементы которой являются равномерно распределенными в интервале [0,1] случайными величинами. ips A п т р - формирование случайной матрицы, элементы которой являются случайными величинами, распределенными по закону Пуассона с параметром р. ior A п i (а/) - ввод i-го орта порядка п, т.е. вектора порядка п, у которого все элементы равны нулю, кроме i-го, равного 1. Если справа указывается /, то образуется вектор-cтрока, иначе вектор-столбец. ist A п w (а/) - ввод столбца, состоящего из степеней числа w, начиная с нулевой. Если справа указывается /, то образуется вектор-cтрока. В этих операциях числа п и т могут быть произвольными. Например, при вводе единичной матрицы при п=1 и т=4 создается матрица A=[1 0 0 0]. Резуль-106 тат умножается на число а. Если это число не указывается, то а=1. Число а можно задавать в виде какого-либо выражения. При вводе слова скобки не указываются. Знак / указывается в конце слова. iem A i j s - присвоение элементу A(ij) матрицы A значения s. Если матрицы А нет, то она вводится, причем ее размерность определяется числами i и у. Если эти числа превышают размерность существующей матрицы А, то ее размерность увеличивается, причем промежуточные элементы приравниваются нулю. iev A i s (/)- присвоение элементу i вектора A значения s. Если вектора А нет, то он вводится, причем его размерность равна i. При добавлении признака / образуется вектор-строка, иначе - вектор-столбец. Если число i превышают размерность существующего вектора А, то его размерность увеличивается, причем промежуточные элементы приравниваются нулю. ism A п к - ввод спектральной матрицы A порядка пх2, к - число вещественных собственных чисел. В первый столбец включаются вещественные части собственных чисел, во второй - мнимые. 2.3. Операцуия изменения матриц kpc X A i j - матрица X получается из матрицы A путем перестановки i-го и j-го столбцов. kps X A i j - матрица X получается из матрицы A путем перестановки i-ой и j-ой строки. kuc X A i j - матрица X получается из матрицы A путем удаления столбцов с i-го по j-й включительно. kus X A i j - матрица X получается из матрицы A путем удаления строк с i-ой по j-ую включительно. kic X A i j - матрица X получается путем выщеления из матрицы A столбцов с i-го по у-ый включительно. kis X A i j - матрица X получается путем выделения из матрицы A строк с i-ой по j-ю включительно. Если в этих операциях указывается только i, то по умолчанию j=i и в операциях участвует только одна i-я строка (или столбец). kbc XA i j к - перестановка блока столбцов: столбцы с i-го по у-ый переставляются на место, начиная с к-го. Промежуточные столбцы передвигаются. kbs X A i j к - перестановка блока строк: строки с i-ой по у-ую переставляются на место, начиная с к-ой. Промежуточные строки передвигаются. kdc X A i j к - дублирование блока столбцов: столбцы1 с i-го по у-ый дублируются на место, начиная с к-го. Если к>т, то промежуточные столбцы заполняются нулями. kds X A i j к - дублирование блока строк: строки с i-ой по y-ую дублируются на место, начиная с к-ой. Если к>п, то промежуточные строки заполняются нулями. kie X A i j - вывделение i j-го элемента матрицы A. Если А - вектор, то указытаюгся только один индекс. kim X A i j к I - матрица X получается путем выщеления из матрицы А минора с угловыши элементами (/'У)-(к,/). Если А - вектор, то указываются только два индекса. kpb A i j - разделение матрицы A на 4 блока, т.е. образуются матрицы с именами А1Ь А12, А2ь А 22 такие, А11 А12 что X= причем ixj - размер блока Ап. Ес АА 21 22 ли указывается только i, то по умолчанию j=i. kkv X А В ij - в матрицу А вписывается матрица В так, что на место элемента (ij) матрицы А ставится элемент (1,1) матрицы В. Числа i и j могут быть любыми и превышать размеры матрицы А. В последнем случае матрица X дополняется нулями. Если указывается только i, то по умолчанию j=i. 2.4. Операция формирования матриц fmd X А (Г) - формирование квадратной диагональной матрицы X с диагональными элементами, равными элементам матрицы (или вектора) А . Если добавить Г, то X - вектор, составленный из элементов главной диагонали матрицы А. fmf X А - формирование сопровождающей матрицы (Фробениуса), последняя строка, которой состоит из элементов вектора А со знаком минус, т. е. О 1 0 ••• О О 0 1 ••• О X= (4.1) сх j сх 2 ^ ^ * *1 а ^ fmo X А i - формирование матрицы отражения для столбца А, т.е. X=/-awT , где а=2ГуТу, вектор -v строится следующим образом: 0 при к < i, v( к) - < s при к - i, А( к) при к > i, где s=А(i)±[А2(i)+...+А2(n)]1Г2, причем + или - выбираются так, чтобы число s было максимальным по модулю. fmuX А В (Г)-X - матрица управляемости, т.е. X^b.Ab^.A-'b, ,..фтАЪт..А-1Ът ], где Ь1,..., Ьт - столбцы матрицы В. Если справа добавляется Г, то в X заносятся только линейно независимые столбцы матрицы управляемости. Одновременно формируется матрица X_#, в которой указываются номера этих столбцов. fmn YА С (Г) - Y- матрица наблюдаемости, т.е. Т Y -I с i А. с i... А. с п-1 С1 '..., С тА Т Ст ... А 1 т X- АА L^121 22 J Если размерности блоков не совпадают, то недостающие в X столбцы (справа) или строки (снизу) заполняются нулями. Например, при операции fkb X А11 ' А О О А 21 А22 образуется матрица X- 11 АА 21 22 foe X А - формирование столбца из столбцов матрицы А . fos X А - формирование строки из строк матрицы А. fkd X А1, А2 ... А - компоновка блочно-диаго- А1 О •••О О А, •••О нальной матрицы, т.е. X- О 0-Апл fip X А п т - матрица А переписывается построчно в матрицу X размерности пхт. Если размерность X оказывается больше размерности матрицы А, то недостающие элементы заполняются нулями. С помощью этой операции можно изменять размерность числовых массивов. 2.5. Арифметические операции mam XА (а) - умножение матрицы на число - X=a А. По умолчанию а=1. mtr X А - транспонирование матрицы -X=АT. mem X А -симметризация - X=(А+АT)Г2. mob X А - обращение матрицы - X=АЧ. mexX А t - матричная экспонента -X=exp(А/). msv X А В (а Ь) - сумма матриц - X=aА+ЬВ. По умолчанию а=Ь=1. msb X А В - разность матриц - X=А-В. mpr X А В (а) - произведение матриц А и В -X=аАВ. По умолчанию а=1. fkb X А11 А12 А21 А22 - компоновка из блоков, т.е. А11 А12 mkr X А В - кронекерово произведение матриц, ЪпА-.ЬХтА где cT1, ...,стт - строки матрицы С. Если справа добавляется Г, то в Y заносятся только линейно независимые строки матрицы наблюдаемости. Одновременно формируется матрица Y_#, в которой указываются номера этих строк. fle X А - матрица X состоит из линейно независимых столбцов матрицы А. fls X А - матрица X состоит из линейно независимых строк матрицы А . fke X А В - компоновка по столбцам: X=[4 В] - к матрице А справа приписывается матрица В. Если число строк в этих матрицах разное, то недостающие снизу строки в X заполняются нулями. Если матрицы А нет, то X=B. " А' В fks X А В - компоновка по строкам: X- матрице А снизу приписывается матрица В. Если число столбцов в этих матрицах разное, то недостающие справа столбцы в X заполняются нулями. Если матрицы А нет, то X=B. т.е. X- Ьп1А-Ъп mks X А - квадратный корень из симметрической матрицы, т.е. А=XXT. mkf X А (В) - квадратическая форма - X=АTВА. Если матрица В не указывается, то она полагается единичной. mvp X А (В) - квадратическая форма - X=АВАT. Если матрица В не указывается, то она полагается единичной. moh X А т - X=А11-А12(А22)-1А21. Матрица А разби- А11 А12 вается на блоки: причем блок А11 имеет АА 21 22 J размерность тхт. mod X А1 А2 ...(Г) - в X заносится значение максимального по модулю элемента матриц А1, А2,... . min X А1 А2 ...(Г) - в X заносится значение минимального элемента матриц А1, А2,... . max X А1 А2 ...(Г) - в X заносится значение максимального элемента матриц А1, А2,... . А Если в последних операциях указать /, то дополнительно образуется матрица с именем A*_mod (или A*_min, A*_max), в которую заносятся индексы этого элемента. mpsХА В .../А,В,...) - поэлементные вычисления, т.е. Х(/'/)=/(А(/Д B(ij), ....) , где /А,В,...) -некоторое выражение, куда входят имена матриц А, В,..... Эти матрицы должны иметь одинаковые размерности и разные имена. Их число не должно превышать 16. Например, при вводе операции mps ХА В А* В образуется матрица X, составленная из поэлементных произведений элементов матриц А и В. Эта операция удобна для табуляции функций. Для этого в качестве А нуж
Скачать электронную версию публикации
Загружен, раз: 188
Ключевые слова
Авторы
ФИО | Организация | Дополнительно | |
Параев Юрий Иванович | Томский государственный университет | профессор, доктор технических наук, заведующий кафедрой прикладной математики факультета прикладной математики и кибернетики | paraev@fpmk.tsu.ru |
Ссылки
