Основы работы с системой технических расчетов Scilab

Одной из областей использования персональных компьютеров является выполнение математических расчетов. Для этого используются специализированные математические системы, составляющие особый класс прикладного программного обеспечения. Математические системы широко используются как для выполнения инженерных расчетов, так и для проведения научных исследований. Они позволяют выполнять сложные алгебраические преобразования, вычислять пределы, суммы, произведения, производные и интегралы, находить решение дифференциальных уравнений или их систем. При помощи этих систем можно решать задачи аналитической геометрии, теории вероятности и математической статистики, тензорного анализа и линейной алгебры, дискретной математики, теории групп и многих других. Все они имеют замечательные возможности построения двух- и трехмерных графиков, что дает возможность представить в графической форме данные и результаты решения задач. Такие системы постоянно совершенствуются и развиваются на стыке математики и информатики.

Наиболее популярными среди математических систем является Maple, MATLAB, Mathematica и MathCad. Но все эти программы являются коммерческими. В то же время при использовании программного обеспечения все большую остроту приобретает проблема лицензионной чистоты программных продуктов, то есть защита интеллектуальной собственности разработчиков этих продуктов. Одним из путей решения этой проблемы есть использование программ, которые принадлежат к классу freeware, то есть бесплатного программного обеспечения. Очень важным является то, что достаточно часто такое программное обеспечение является еще и "открытым", то есть предоставляет возможность всем желающим не только ознакомиться с исходным программным кодом и уяснить его алгоритм, но и усовершенствовать программный код. Это, в свою очередь, привлекают много желающих для тестирования и усовершенствования такого программного обеспечения, которое зачастую приводит к стремительному развитию программных продуктов. Как раз это и присущее прикладному пакету для выполнения численных расчетов Scilab, о котором в дальнейшем и пойдет речь.

Scilab - это математическая система для выполнения технических (числовых) расчетов, которая по характеру работы и принципам архитектуры схожа с известной математической системой MATLAB. Основным элементом данных в системе является массив, то есть система с самого начала ориентирована именно на работу с данными в табличном виде. В среду Scilab интегрирована также программа редактирования блочных диаграмм и симуляции Xcos, которая является аналогом программы Symulink в MATLAB. Замечу, что Scilab "умеет" конвертировать в свой формат документы из MATLAB.

Пакет Scilab позволяет решать ряд задач:

  1. Решение задач линейной алгебры.
  2. Решение нелинейных уравнений и систем.
  3. Решение задач оптимизации.
  4. Дифференцирование и интегрирование.
  5. Решение обычных дифференциальных уравнений и систем.
  6. Обработку экспериментальных данных (интерполяция и аппроксимация, метод наименьших квадратов).

Программа принадлежит к классу freeware, она построена как открытая система и предоставляет возможность каждому желающему получить доступ к своим программным кодам и внести в них изменения, добавив новые функции, типы данных или просто настроить систему "под себя". Поддержку системы обеспечивает консорциум Scilab, в состав которого входят больше двадцати участников, в том числе французские компании Mandriva, INRIA и ENPC.

Далее рассматривается версия системы для Windows 5.3.3. Эта версия содержит в своем составе дополнения ATOMS (AutomaTic mOdules Management for Scilab) для управления внешними модулями и Xcos для моделирования и эмуляции гибридных динамических систем. Упреждая вопросы и комментарии, замечу, что имеется версия и для Linux.

Последняя доступная версия (апрель, 2013) - 5.4.1.


Понятие "вектор", "матрица", "массив"

Форма представления данных в Scilab является табличной. Это дает возможность решать разные задачи, связанные с инженерно-техническими вычислениями (особенно там, где используются матрицы и векторы) с очень высокой скоростью. В свою очередь, достаточно часто и в математике приходится работать с данными, представленными в виде таблиц. Например, при помощи табличного представления данных удобно решать системы линейных уравнений. Для лучшего понимания дальнейшего материала считаю целесообразным напомнить математические понятия вектора и матрицы.

Важнейшей характеристикой таблицы является количество ее элементов, то есть, количество строк и столбцов, из которых состоит матрица, - это принято называть размерность матрицы. Если количество строк или столбцов равно единице, то в математике такая таблица называется вектором, а если количество и строк, и столбцов отличается от единицы - матрицей. В свою очередь, векторы могут быть двух типов: векторы-строки и векторы-столбцы. Например, - вектор-столбец, [10 20 30] - вектор-строка. Несмотря на то, что оба вектора имеют одинаковые числовые значения элементов, они имеют разный тип и будут иметь разные результаты при векторных и матричных операциях, чувствительных к типу вектора.

Матрицу можно рассматривать как совокупность нескольких векторов одинаковой длины, например, М= . Матрица характеризуется числом строк и столбцов, а ее размерность равна их произведению.

Учитывая важность табличного представления данных, все популярные математические системы (кстати, как и все алгоритмические языки) имеют особый тип данных для работы с векторами и матрицами: одномерные (для работы с векторами) и двумерные (для работы с матрицами) массивы. Впрочем, одномерные массивы можно рассматривать как частный случай (когда одна из размерностей равняется единице) двумерных. Массивом в математических системах называют данные особого типа, которые являются совокупностью конечного числа однотипных (например, числовых) элементов с уникальным именем. В дальнейшем термин "массив" используется как обобщающее название векторов и матриц.

Каждый элемент массива располагается на четко определенном месте. Для обращения к отдельному элементу вектора используется его порядковый номер (адрес), который называется индексом. Понятно, что индексы могут иметь только целые значения. Для обращения к отдельному элементу матрицы также используется индекс. Для матриц указываются два индекса: один - для номера строки, другой - для номера столбца. Значение нижнего предела индексации равно единицы.


Интерфейс системы

Окно команд (Command Window)

Основную часть документа занимает окно команд, являющееся главным окном системы. Именно в нем осуществляются вычисления и выводятся результаты. Они выводятся в текстовом виде, то есть интерфейс окна - текстовый. Для самого текста по умолчанию установлены определенные параметры форматирования, которые, впрочем, можно изменить. Для этого следует выполнить команду Настройки > Шрифт или щелкнуть на панели стандартных инструментов кнопку . После этого появится окно "Выбор шрифта", в котором можно изменить тип, размер и начертание шрифта. Например, для ввода текста кириллицей можно установить шрифт "Courier New" или "Lucida Console".

Для очистки окна команд следует выполнить команду Clc, нажать функциональную клавишу <F2> или выполнить команду Настройки > Очистить командное окно.


Окно пересмотра переменных (BrowseVar)

В системе имеется возможность отображения в специальном окне всех переменных, которые используются в текущей сессии. Для вывода этого окна следует ввести в командной строке команду browsevar() и нажать <Enter>. После этого появится окно просмотра переменных "Обозреватель переменных". В нем отображается перечень переменных и их атрибуты: размерность в виде матрицы, размер в байтах и тип. Окно обозревателя переменных показывает также системные переменные (например, переменная %е, в которой хранится приближенное значение числа е) и переменные, определенные пользователем. Отображение тех или других групп системных переменных регулируется фильтром, доступ к которому осуществляется через команду меню Фильтр. Список переменных в окне автоматически не обновляется, поэтому для отображения изменений следует щелкнуть в окне кнопку "Обновить список переменных".

Отмечу, что в окне "Обозреватель переменных" не отображаются значения переменных. Получить их можно командою disp (имя переменной 1, имя переменной 2, ...).


Сессия

Сеанс работы с системой называют сессией. Сессия, по сути, является текущим документом, содержащим работу пользователя с системой: строки ввода, вывода, сообщения об ошибках. Определение переменных и функций, которые расположены в рабочей области памяти, (но не саму сессию!) можно записать на диск командою Файл > Сохранить окружение. Файл хранится с расширением BIN. Следует отметить, что возможности сохранения всего текста сессии команда Сохранить окружение не дает. Это сделано преднамеренно: сессия является результатом проб и ошибок, ее текст вместе с правильными операциями может содержать сообщения об ошибках, ненужные выводы и т.п. Необходимости хранить все это, как правило, нет. Однако это не значит, что вообще отсутствует возможность запомнить адекватную часть расчетов. Для этого следует воспользоваться редактором и отладчиком, которые позволяют (после отладки расчета) получить документ в корректной форме без синтаксических и других ошибок. Загрузка с диска данных рабочей области происходит командою Файл > Загрузить окружение. Если все же есть необходимость полностью сохранить сессию, то это можно сделать при помощи команды diary, которая предназначена для ведения дневника сессии. Команда имеет два формата, при помощи которых начинается и прекращается процесс записи сессии:

  • diary (filename) - запись на диск всех команд в строках ввода и полученных результатов в файл с именем filename; имя файла заключается в апострофы и может содержать путь;
  • diary(0) - прекращение записи в файл.

По умолчанию система после загрузки ищет документы в системной папке Documents and Setting/Имя пользователя. Для изменения местоположения папки с документами следует выполнить команду Файл > Сменить текущий каталог или на панели инструментов щелкнуть кнопку , выбрать нужную папку и щелкнуть "OK". Определить папку, где именно хранятся документы, можно командою Файл > Отобразить текущий каталог.


Сценарий

Сценарий - это последовательность команд, которые подключаются к сессии как единое целое. Для формирования сценариев система имеет специальное средство - редактор сценариев. Доступ к нему осуществляется командою Инструменты > Открыть текстовый редактор SciNotes или щелчком на панели инструментов кнопки . После этого появляется окно редактора с новым файлом с именем "Без названия". Назначение редактора так же, как и для редакторов, используемых для создания программ, двойное. Во-первых, он дает возможность производить все типичные действия редактирования над текстом (последовательностью команд). Во-вторых, он содержит отладчик, при помощи которого можно осуществлять отладку расчетов в виде сценария.

После формирования сценария пользователь может загрузить его в Scilab, то есть выполнить его. Однако, понятно, что сценарий создается для многократного выполнения, потому после отладки программы-расчета ее сохраняют на диске, откуда она может быть в любой момент загружена в сессию Scilab. Это осуществляется командою Файл > Сохранить как. Файл сценария создается с расширением SCE.

Загрузка сценария в сессию Scilab осуществляется командой Файл > Выполнить.

Но вовсе не обязательно создавать сценарий. Любые вычисления (временами достаточно сложные) в системе можно выполнить в режиме прямых вычислений, то есть без подготовки программы. Это превращает Scilab в мощный калькулятор, способный осуществлять не только обычные для калькуляторов вычисления (например, выполнять арифметические операции и вычислять элементарные функции), но и осуществлять операции с векторами и матрицами, комплексными числами, рядами и полиномами, решать системы линейных уравнений и т.д.

Для использования системы в режиме прямых вычислений нужно знать, как именно вводится информация.


Правила ввода информации в документ

  1. Наличие в командной строке окна символов "-->" является признаком приглашения ввода выражения.
  2. Для вычисления математического выражения и отображения в документе результата по окончанию его ввода следует нажать <Enter>. Результат вычислений выводится в строках вывода без символов "-->". При этом он автоматически присваивается системной переменной ans (от англ. answer - ответ):

  3. Если не нужно выводить результат, то ввод информации заканчивается символом ";". При этом сами вычисления выполняются. Поэтому, если запоминать результаты в переменных, то при необходимости с ними в дальнейшем можно будет выполнять операции.
  4. В одной строке можно ввести несколько операторов и (или) команд. Для этого их следует отделять символом ",":



    Следует заметить, что переменная ans содержит результат вычисления последнего выражения.
  5. Если вводимое выражение является длинным и не помещается в строке, то в конце незавершенной строки следует ввести две точки "..".
  6. Для редактирования информации используется стек команд, в котором запоминается введенная информация. Обращение к нему осуществляется в командной строке при помощи клавиш управления курсором "вверх" и "вниз". Они позволяют прокручивать введенные ранее команды как в прямом, так и обратном направлении. Получив доступ к нужной команде, ее можно изменить и опять запустить на выполнение.
  7. Удаление фрагмента документа, кроме текста, находящегося в командной строке, системой не позволяется.


Справочная система

Обращение к справочной системе производится командой Справка > Содержание или щелчком кнопки на панели стандартных инструментов. Получить справку по конкретной команде можно также путем использования команды Help. Например, для получения справки про команду Exec следует ввести Help Exec.

Система содержит библиотеку демонстрационных примеров (необходимость ее установки на компьютере пользователя определяется во время инсталляции системы). Обращение к ней происходит командою Справка > Примеры. Демонстрационные примеры открываются в новом окне, которое нужно закрывать по окончанию пересмотра примера.

(Продолжение следует)

Валерий ФЕТИСОВ

Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 0
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!