Выпуск #8/2019
Т.Семенова, В.Шакин
ИСПОЛЬЗОВАНИЕ МАТРИЧНЫХ ОПЕРАЦИЙ ПАКЕТА Scilab ПРИ РЕШЕНИИ ЗАДАЧ БАЗОВЫХ ДИСЦИПЛИН
ИСПОЛЬЗОВАНИЕ МАТРИЧНЫХ ОПЕРАЦИЙ ПАКЕТА Scilab ПРИ РЕШЕНИИ ЗАДАЧ БАЗОВЫХ ДИСЦИПЛИН
Просмотры: 1378
В статье рассматривается использование матричных операций средствами математического пакета Scilab для решения задач базовых дисциплин при подготовке бакалавров, в частности, способы создания матриц, основные действия с матрицами и их элементами, динамическое изменение размера матриц, а также доступ к элементам матриц при стандартном и векторном индексировании.
DOI: 10.22184/2070-8963.2019.85.8.68.70
DOI: 10.22184/2070-8963.2019.85.8.68.70
Т.Семенова, к.т.н., доцент МТУСИ / sematata@yandex.ru,
В.Шакин, к.т.н., доцент МТУСИ
УДК 378.14:004.9, DOI: 10.22184/2070-8963.2019.85.8.68.70
Рассматривается использование матричных операций средствами математического пакета Scilab для решения задач базовых дисциплин при подготовке бакалавров – в частности, способы создания матриц, основные действия с матрицами и их элементами, динамическое изменение размера матриц, а также доступ к элементам матриц при стандартном и векторном индексировании.
Среди множества современных математических пакетов все большую популярность завоевывает пакет Scilab [1], широко используемый в учебном процессе при изучении базовых дисциплин для бакалавров ([2–7]). Scilab отличает универсальность, которая заключается в сочетании возможности проведения математических расчетов любой сложности с использованием множества встроенных библиотечных функций, реализующих как элементарные функции, так и функции, реализующие численные методы; наличие мощной системы программирования; графические средства; возможность конвертирования в него программ и файлов данных, созданных в других математических пакетах (в частности из Matlab [8], наиболее полным аналогом которого он практически и является) и системах программирования; наличие средств для проведения моделирования и многое другое. Немаловажно для использования Scilab в учебном процессе и то, что он является свободно распространяемым пакетом, имеет русифицированную документацию и постоянно развивается, предлагая пользователям всё новые версии и новые возможности.
Математический пакет Scilab создан как программная система, ориентированная и оптимизированная на работу с матрицами. Именно поэтому без понимания принципов создания, хранения и обработки матриц, а также изучения и использования всевозможных встроенных матричных функций и операций [1] использование базовых средств Scilab неполноценно и неэффективно.
Все типы данных, применяемые в пакете Scilab, являются матрицами. Матрицы могут быть пустыми, скалярными, векторными, состоящими из одной строки или одного столбца и называемыми соответственно вектором-строкой или вектором-столбцом; квадратными и прямоугольными. Даже каждая числовая константа и значение переменной хранятся в матрицах размером 1 × 1. В то же время элементы матриц могут быть объектами практически любых типов данных, допустимых в системе Scilab: числами, символами, логическими значениями, полиномами, рациональными дробями и др. Для создания новых векторов и матриц в Scilab реализовано несколько способов [1]:
Созданные матрицы любого допустимого типа размещаются в Рабочей области Scilab по столбцам, а информация об активных объектах текущей сессии отображается в окне Обозревателя переменных (рис.1).
Для изменения значений элементов созданных матриц можно использовать "Обозреватель переменных": установив курсор на имя матрицы в этом окне (рис.2), выполнить команду контекстного меню "Изменить" и в появившемся окне "Редактора переменных", где отображаются значения элементов матрицы, произвести необходимые изменения.
В процессе выполнения программного кода можно с помощью специальной функции динамически изменить размер и конфигурацию матриц, например, путем добавления элемента увеличить столбец, а с использованием функции resize_matrix(А,2,2) изменить размерность матрицы А(3 × 3) на А(2 × 2).
В Scilab алгебраические операции над векторами и матрицами выполняются по алгебраическим правилам, а поэлементные операции – для каждого соответствующего элемента вектора или матрицы. При поэлементных операциях точка ставится перед всеми арифметическими операциями (рис.3).
Известно, что для того, чтобы осуществить доступ к отдельному элементу матрицы, необходимо указать его индексы. Рассмотрим в качестве примера два способа индексирования матриц, реализованных в Scilab: стандартное матричное и векторное (линейное).
Стандартное матричное индексирование предполагает использование двух индексов, разделенных запятой, где первый индекс определяет номер строки, а второй – номер столбца. Заметим, что в Scilab обращение возможно как к одному элементу, так и подмножеству элементов матрицы. На рис.4 приведены примеры стандартной индексации матриц, а в двух последних примерах индексы выбираемых элементов являются вектором.
Векторное (линейное) индексирование матриц – это такое индексирование, которое осуществляется одним индексом, а матрица при этом рассматривается как суммарный вектор, в котором все ее элементы вытянуты в один длинный вектор-столбец, где каждый следующий столбец индексируемой матрицы следует за предыдущим столбцом (рис.5).
Индексирование матриц, являясь средством доступа к элементам матриц, позволяет извлекать из матриц подмножества их элементов, присваивать извлеченное из матриц подмножество новым матрицам или модифицировать подмножество элементов существующих матриц. В Scilab существует еще один способ индексирования матриц – логическое индексирование, основанное на операциях сравнения, поиска, принятия решений и логических операциях [1]. Выбор индексации при проведении расчетов следует производить исходя из особенностей решения конкретной задачи.
Матричные операции активно используются при решении алгебраических задач, задач вычислительной математики [7], задач теории электрических цепей [9], задач общей теории связи матрицы для описания объектов, над которыми необходимо производить различные операции. Представление однородных данных в виде матриц в сочетании с использованием матричных операций позволяет сделать программный код более эффективным и кратким и легко читаемым без использования циклов и операций сравнения.
ЛИТЕРАТУРА
Документация Scilab. Режим доступа: https://help.scilab.org/docs/6.0.1/ru_RU/index.html
Семенова Т.И., Шакин В.Н. Математический пакет Scilab: учебное пособие для бакалавров. – М.: ЭБС МТУСИ, 2017. 127 c. Режим доступа http://www.mtuci.ru/structure/library/catalogue/download.php?book_id=1834
Семенова Т.И., Юскова И.Б., Юсков И.О. Проведение расчетов в среде пакета Scilab: Практикум. – М.: ЭБС МТУСИ, 2018. 35 c. Режим доступа: http://www.mtuci.ru/structure/library/catalogue/download.php?book_id=1963
Алексеев Е.Р., Чеснокова О.В., Рудченко Е.А. Scilab: Решение инженерных и математических задач. – М.: ALT Linux; БИНОМ. Лаборатория знаний, 2008. 269 c.
Ерин С.В. Scilab – примеры и задачи: Практическое пособие. – M.: Лаборатория "Знания будущего", 2017. 154 c.
Семенова Т.И., Загвоздкина А.В., Загвоздкин В.А. Графическое представление результатов расчетов в Scilab // Материалы II Международной научно-практической конференции. Донецк, Донецкая народная республика, 2018. С. 4–10.
Семенова Т.И., Загвоздкина А.В., Загвоздкин В.А. Изучение численных методов с использованием средств пакета Scilab // Экономика и качество систем связи. 2017. № 4 (6). С. 60–69.
Шакин В.Н., Семенова Т.И. Основы работы с математическим пакетом Matlab: Учебное пособие. – МТУСИ, 2016. 133 c.
Смирнов Н.И., Фриск В.В. Теория электрических цепей: Учебник для вузов. – М.: Горячая линия – Телеком, 2019. 286 c.
В.Шакин, к.т.н., доцент МТУСИ
УДК 378.14:004.9, DOI: 10.22184/2070-8963.2019.85.8.68.70
Рассматривается использование матричных операций средствами математического пакета Scilab для решения задач базовых дисциплин при подготовке бакалавров – в частности, способы создания матриц, основные действия с матрицами и их элементами, динамическое изменение размера матриц, а также доступ к элементам матриц при стандартном и векторном индексировании.
Среди множества современных математических пакетов все большую популярность завоевывает пакет Scilab [1], широко используемый в учебном процессе при изучении базовых дисциплин для бакалавров ([2–7]). Scilab отличает универсальность, которая заключается в сочетании возможности проведения математических расчетов любой сложности с использованием множества встроенных библиотечных функций, реализующих как элементарные функции, так и функции, реализующие численные методы; наличие мощной системы программирования; графические средства; возможность конвертирования в него программ и файлов данных, созданных в других математических пакетах (в частности из Matlab [8], наиболее полным аналогом которого он практически и является) и системах программирования; наличие средств для проведения моделирования и многое другое. Немаловажно для использования Scilab в учебном процессе и то, что он является свободно распространяемым пакетом, имеет русифицированную документацию и постоянно развивается, предлагая пользователям всё новые версии и новые возможности.
Математический пакет Scilab создан как программная система, ориентированная и оптимизированная на работу с матрицами. Именно поэтому без понимания принципов создания, хранения и обработки матриц, а также изучения и использования всевозможных встроенных матричных функций и операций [1] использование базовых средств Scilab неполноценно и неэффективно.
Все типы данных, применяемые в пакете Scilab, являются матрицами. Матрицы могут быть пустыми, скалярными, векторными, состоящими из одной строки или одного столбца и называемыми соответственно вектором-строкой или вектором-столбцом; квадратными и прямоугольными. Даже каждая числовая константа и значение переменной хранятся в матрицах размером 1 × 1. В то же время элементы матриц могут быть объектами практически любых типов данных, допустимых в системе Scilab: числами, символами, логическими значениями, полиномами, рациональными дробями и др. Для создания новых векторов и матриц в Scilab реализовано несколько способов [1]:
- с помощью операции "квадратные скобки" (операция конструирования – []);
- с помощью соответствующих встроенных функций;
- путем объединения уже существующих матриц;
- с помощью операции "двоеточие" (:).
Созданные матрицы любого допустимого типа размещаются в Рабочей области Scilab по столбцам, а информация об активных объектах текущей сессии отображается в окне Обозревателя переменных (рис.1).
Для изменения значений элементов созданных матриц можно использовать "Обозреватель переменных": установив курсор на имя матрицы в этом окне (рис.2), выполнить команду контекстного меню "Изменить" и в появившемся окне "Редактора переменных", где отображаются значения элементов матрицы, произвести необходимые изменения.
В процессе выполнения программного кода можно с помощью специальной функции динамически изменить размер и конфигурацию матриц, например, путем добавления элемента увеличить столбец, а с использованием функции resize_matrix(А,2,2) изменить размерность матрицы А(3 × 3) на А(2 × 2).
В Scilab алгебраические операции над векторами и матрицами выполняются по алгебраическим правилам, а поэлементные операции – для каждого соответствующего элемента вектора или матрицы. При поэлементных операциях точка ставится перед всеми арифметическими операциями (рис.3).
Известно, что для того, чтобы осуществить доступ к отдельному элементу матрицы, необходимо указать его индексы. Рассмотрим в качестве примера два способа индексирования матриц, реализованных в Scilab: стандартное матричное и векторное (линейное).
Стандартное матричное индексирование предполагает использование двух индексов, разделенных запятой, где первый индекс определяет номер строки, а второй – номер столбца. Заметим, что в Scilab обращение возможно как к одному элементу, так и подмножеству элементов матрицы. На рис.4 приведены примеры стандартной индексации матриц, а в двух последних примерах индексы выбираемых элементов являются вектором.
Векторное (линейное) индексирование матриц – это такое индексирование, которое осуществляется одним индексом, а матрица при этом рассматривается как суммарный вектор, в котором все ее элементы вытянуты в один длинный вектор-столбец, где каждый следующий столбец индексируемой матрицы следует за предыдущим столбцом (рис.5).
Индексирование матриц, являясь средством доступа к элементам матриц, позволяет извлекать из матриц подмножества их элементов, присваивать извлеченное из матриц подмножество новым матрицам или модифицировать подмножество элементов существующих матриц. В Scilab существует еще один способ индексирования матриц – логическое индексирование, основанное на операциях сравнения, поиска, принятия решений и логических операциях [1]. Выбор индексации при проведении расчетов следует производить исходя из особенностей решения конкретной задачи.
Матричные операции активно используются при решении алгебраических задач, задач вычислительной математики [7], задач теории электрических цепей [9], задач общей теории связи матрицы для описания объектов, над которыми необходимо производить различные операции. Представление однородных данных в виде матриц в сочетании с использованием матричных операций позволяет сделать программный код более эффективным и кратким и легко читаемым без использования циклов и операций сравнения.
ЛИТЕРАТУРА
Документация Scilab. Режим доступа: https://help.scilab.org/docs/6.0.1/ru_RU/index.html
Семенова Т.И., Шакин В.Н. Математический пакет Scilab: учебное пособие для бакалавров. – М.: ЭБС МТУСИ, 2017. 127 c. Режим доступа http://www.mtuci.ru/structure/library/catalogue/download.php?book_id=1834
Семенова Т.И., Юскова И.Б., Юсков И.О. Проведение расчетов в среде пакета Scilab: Практикум. – М.: ЭБС МТУСИ, 2018. 35 c. Режим доступа: http://www.mtuci.ru/structure/library/catalogue/download.php?book_id=1963
Алексеев Е.Р., Чеснокова О.В., Рудченко Е.А. Scilab: Решение инженерных и математических задач. – М.: ALT Linux; БИНОМ. Лаборатория знаний, 2008. 269 c.
Ерин С.В. Scilab – примеры и задачи: Практическое пособие. – M.: Лаборатория "Знания будущего", 2017. 154 c.
Семенова Т.И., Загвоздкина А.В., Загвоздкин В.А. Графическое представление результатов расчетов в Scilab // Материалы II Международной научно-практической конференции. Донецк, Донецкая народная республика, 2018. С. 4–10.
Семенова Т.И., Загвоздкина А.В., Загвоздкин В.А. Изучение численных методов с использованием средств пакета Scilab // Экономика и качество систем связи. 2017. № 4 (6). С. 60–69.
Шакин В.Н., Семенова Т.И. Основы работы с математическим пакетом Matlab: Учебное пособие. – МТУСИ, 2016. 133 c.
Смирнов Н.И., Фриск В.В. Теория электрических цепей: Учебник для вузов. – М.: Горячая линия – Телеком, 2019. 286 c.
Отзывы читателей