scilab учебник. Учебник Scilab. Учебник Для студентов по дисциплин Базовые средства математических пакетов
Скачать 5.73 Mb.
|
1 Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования «Московский технический университет связи и информатики» Кафедра информатики Шакин В.Н., Семенова Т.И., Фриск В.В Базовые средства математических пакетов (Математические пакеты) Учебник Для студентов по дисциплин «Базовые средства математических пакетов», обучающихся по направлениям 09.03.02, и «Математические пакеты», обучающихся по направлениям 11.03.02, подготовки бакалавров Москва, 2021 2 3 Предисловие Современные Математические Пакеты Прикладных Программ (МППП), такие как Maple [1], Mathematica [2], Matlab [3] и некоторые другие, являются сложными программными системами, включающими специализированные системные и языковые средства. Хотя пользовательские интерфейсы и языки программирования у них различны, а внутренние структуры и даже использу- емые алгоритмы отличаются друг от друга, все они содержат базовый набор методов решения математических задач и средства для визуализации и отоб- ражения полученных результатов. И поскольку принципиально общих свойств значительно больше, чем различий, то после освоения одной компьютерной математической системы переход к другой не является проблемой. Наиболее известным и популярным среди вышеперечисленных про- граммных средств численных расчетов является математический пакет Matlab [5,6,7]. Он позволяет производить вычисления различной степени сложности, содержит одноименный язык программирования, предоставляет большое ко- личество функций анализа и обработки данных, связанных практически со всеми областями как классической, так и прикладной математики. Однако этот математический пакет является коммерческим, что затрудняет его использо- вание в учебном процессе. Существуют и свободно распространяемые альтернативы данного па- кета, например, пакет Scilab [4], являющийся самым полным аналогом пакета Matlab. Немаловажно, что пакет Scilab может быть использован при работе в различных операционных системах: Linux, Windows и Mac OS при этом он за- нимает значительно меньший объем памяти по сравнению с пакетом Matlab. Scilab – это математический пакет численных вычислений, также пред- назначен для выполнения научных и инженерных расчетов. Хотя в нем пока отсутствуют средства аналитических вычислений, и он уступает пакету Matlab по своим вычислительным возможностям, но Scilab постоянно совершенству- ется, и с каждой его очередной версией появляются все новые и новые воз- можности. Последнюю на настоящий момент версию пакета Scilab 6.02, опи- санию которой посвящен данный учебник, можно скачать с официального сайта программы www.scilab.org. В настоящее время Scilab все шире используется в учебном процессе многих вузов России. Практика показывает, что работа с пакетом Scilab легко осваивается студентами, однако для того, чтобы систематизировать процесс изучения и объяснить реализацию многих возможностей Scilab недостаточно только одной справочной информаций. В связи с возрастающей популярно- стью Scilab, появляются учебные пособия [8, 9, 10, 11], но она, как правило, предназначены, для узкоспециализированного использования Scilab, где опи- сание основных возможностей системы, а именно системы численных вычис- лений и элементов программирования, не выходит за рамки справочной си- 4 стемы. Именно поэтому возникла необходимость в появлении учебника, в ко- тором все базовые средства Scilab были бы систематизированы, подробно опи- саны и проиллюстрированы примерами. Данный учебник состоит из двух разделов, в которых рассматриваются базовые средства математического пакета Scilab. Первый раздел посвящен ин- терфейсу пользователя и Рабочей среде Scilab, основным объектам математи- ческим пакетом Scilab и средствам программирования. Описание элементов рабочей среды (параграф 1.1) позволяет начинаю- щему пользователю познакомиться с интерфейсом пользователя Рабочей среды Scilab и назначением основных окон Scilab, а основные объекты Scilab (параграф 1.2) рассматриваются в основном с точки зрения использование их в численных расчётах. Поскольку в системе Scilab все объекты являются мат- рицами различных допустимых типов, которые в основном предназначены для проведения математических расчетов и обработки данных, рассмотрены осо- бенности, как алгебраических, так и поэлементных операций, а также пред- ставлены соответствующие наборы встроенных библиотечных математиче- ских функций. В соответствии с приведенной иерархией типов объектов, кроме числовых данных описана работа с логическими данными, а также спис- ками, структурами и ячейками данных, Особое внимание отводится описанию и последовательности действий по созданию в Рабочем окне сценариев и встроенных функций пользователя. Учитывая ориентацию Scilab на работу с матрицами, в параграфе 1.3 представлены различные способы создания векторов и матриц (с помощью различных операций, встроенных функций, объединения уже существующих матриц и другие способы). При реализации доступа к элементам матрицы, наряду со стандартным индексированием векторов и матриц, здесь вводится и описывается векторное (линейное) индексирование, которое может влиять не только на скорость выполнения программного кода, но и его читабельность. Далее рассматриваются операции и функции, позволяющие осуществлять эф- фективные поэлементные матричные вычисления, а также логическая индек- сация матриц, и способы создания массивов структур и ячеек. Одним из самых наглядных способов представления результатов вычис- лений в Scilab является визуализация данных (параграф 1.4). В пакете Scilab имеет множество команд функций, предназначенных для построения различ- ных типов графиков: стандартные с линейными осями, ступенчатые, трехмер- ные поверхности, контурные, сетчатые и многие другие. В Scilab графические объекты строятся в графических окнах, где они могут быть отформатированы с использованием команд графического окна или программно. В параграфе 1.4. рассмотрены наиболее часто используемые типы графикови команд, поз- воляющих их построить, а также и графические окна, иллюстрирующие вы- полнение этих команд , причем использование каждой команды или описыва- емой функции иллюстрируется примерами или рисунками. 5 Параграф 1.5 является одним из самых объемных и информативных с точки зрения описания работы в Scilab. Он содержит описание средств про- граммирования в Scilab. Здесь вначале вводятся некоторые общие понятия идеологии программирования: система программирования, программа, алго- ритм, транслятор, интерпретатор, макрос, сценарий, примитив и многие дру- гие. Затем рассматриваются процессы создания, отладки и сохранения про- грамм в виде файлов текстовых сценариев и функций с помощью встроенного текстового редактора SciNotes и анализируются проблемы видимости пере- менных при создании сценарий и функций. Второй раздел данного учебника посвящен решению задач вычисли- тельной математики средствами Scilab: аппроксимации и интерполяции функ- ций, дифференцирования и интегрирования, решения нелинейных и диффе- ренциальных уравнений и оптимизации функций. Эти численные методы ши- роко используются при решении прикладных задач в области связи. Теорети- ческий материал по каждой теме, включающий постановку задачи и описание методов, применяемых для ее решения, изложен очень кратко. Каждый пара- граф данного раздела содержит описания наиболее часто используемых функ- ций Scilab, а реализация каждой из функции проиллюстрирована примерами. Учебник содержит несколько приложений, каждое из которых включает таблицы, содержащие справочную информацию по командам и функциям той или иной темы. В тексте учебника предусмотрены ссылки на определенные приложения, с указанием номера таблицы, в которой содержится необходи- мый справочный материал, поэтому данный учебник может являться не только учебно-методическим материалом при изучении базовых средств пакета Scilab, но и справочником при работе с ним и использоваться в учебном про- цессе для подготовки всех уровней студентов: бакалавров, магистров и аспи- рантов. 6 Глава 1 Основы работы с математическим пакетом Scilab 1.1 Рабочая среда Scilab 1.1.1 Графический интерфейс пользователя После запуска пакета Scilab версии 6.01на экране дисплея появляется его Рабочая среда (интерфейс пользователя) в стандартной конфигурации (рис. 1.1.1-1). При этом система готова к проведению вычислений в Командном окнеScilab (в дальнейшем Командное окно). Рабочая среда Scilab – это обычный графический интерфейс приложе- ний MS Windows. В Рабочей среде стандартной конфигурации размещены не- сколько его основных компонентов изображенных на рис. 1.1.1-1 с соответ- ствующими выносками, пронумерованными от 1 до 6: Основное меню, Панель инструментов, Командное Окно, окно Обозреватель переменных, окно Журнал команд и окно Обозреватель файлов. Рис. 1.1.1-1 Стандартная конфигурация Рабочей среды Scilab 6.01 7 1.1.2 Основные элементы Рабочей среды Scilab Основными элементами Рабочей среды Scilab являются следующие эле- менты: 1) Основное меню позволяет, с помощью команд, содержащихся в его элементах, обеспечить доступ ко всем функциональным возможно- стям Scilab . В зависимости от того, какое окно в данный момент ак- тивно, набор элементов меню может меняться (заголовок активного окна подсвечивается синим цветом). Более подробно все элементы ос- новного меню будут рассмотрены ниже. 2) Панель инструментов позволяет организовать выполнение ко- манд: ОткрытьSciNotes, Открыть файл, Вырезать, Скопировать, Вставить, Очистить командное окно, Печать, Управление модулями, Xcos, Настройки Scilab, Примеры и Справочная система . Все команды отображаются на панели в виде пиктограмм с соответствующим изображением, подска- зывающим их назначение. 3) Командное Окно предназначено для отображения вводимых ко- манд, результатов их выполнения, а также сообщений об ошибках, то есть для работы пользователя с пакетом Scilab в интерактивном ре- жиме. 4) Окно Обозреватель переменных отображает содержимое рабо- чего пространства объектов Scilab, и с помощью команд контекстного меню и Редактора переменных позволяет выполнять соответствую- щие действия с объектами этого пространства. 5) Окно Журнал команд предназначено для хранения, просмотра и повторного вызова ранее введенных командных строк. 6) Окно Обозреватель файлов предназначено для просмотра и уста- новки путей доступа к файловой системе и выбора текущей папки, в которой хранится нужный файл, поскольку перед работой с конкрет- ным файлом (чтение или запись файла), к нему требуется установить путь доступа. Внизу окна отображается фильтр файлов/папок. В Рабочую среду Scilab стандартной конфигурации вписаны четыре ос- новных окна. Они могут перемещаться вместе с основным окном и вместе с ним изменять свои размеры. Если в процессе сеанса работы конфигурация окна нарушена, то ее можно восстановить. Для этого на панели инструментов следует выбрать элемент Настройки Scilab , далее в списке, находящемся в левой части открывшегося одноименного окна (рис. 1.1.2-1) двумя щелчками мыши открыть Общее, а затем Конфигурация рабочего стола. После чего необходимо Сбросить расположение панелей, выполнить команду Apply (Применить) и нажать OK Следует помнить, что после изменении конфигу- рации рабочего стола требуется произвести перезагрузку Scilab. 8 Рис. 1.1.2-1. Окно Настройки Scilab (Конфигурация рабочего стола) 1.1.3 Основное меню и его элементы Рассмотрим основные компоненты Рабочей среды стандартной конфи- гурации более подробно. Количество элементов Основного меню может меняться в зависимости от того, какое окно в данный момент является активным. Если активно Командное окно, то Основное меню состоит из следую- щих пяти элементов: Файл, Правка, Управление, Инструменты, Справка. Каждому из этих элементов соответствует своё всплывающее меню со своим набором команд. Элемент меню Файл содержит набор команд, необходимых для текущей работы с файлами: Выполнить, Открыть файл, Загрузить окружение, Сохранить окружение, Сменить текущий каталог, Отобразить текущий каталог, Параметры стра- ницы, Печать и Выход . Элемент меню Правка содержит команды, которые позволяют осу- ществлять различные действия: Вырезать, Копировать, Вставить, Очистить буфер обмена, Выделить все, Показать/Скрыть панель инструментов, Очистить жур- нал команд, Очистить командное окно и Настройки Рассмотрим, например, последовательность действий по изменению раз- мера шрифта и его цвета в Командном окне с использованием команды 9 Настройки Scilab.Выполнение команды вызывает появление окна Настройки Scilab (рис. 1.1.3-1). Рис. 1.1.3-1. Окно Настройки Scilab( Общее ) Рис. 1.1.3-2. Окно Настройка Scilab( Шрифты ) Для изменения размера шрифта, вменю Общее нужно выбрать раздел Шрифты, при этом откроется вкладка Шрифт рабочего стола (рис.1.1.3-2). 10 Следует отметить, что здесь можно настроить шрифт не только для Команд- ного окна (Console), но и для текстового редактора SciNotes. Прежде чем из- менить шрифт, следует удалить галочку рядом с элементом окна Использовать системные шрифты. Далее в Командном окне в списке Свой шрифт выбрать Console , а в правой части окна нажать на клавишу с многото- чием, где в открывшемся окне (рис. 1.1.3-3) произвести выбор типа, размера и стиля шрифта. Выход из текущего окна осуществляется нажатием клавиши ОК. Вернувшись в окно Настройки Scilabнадо завершить настройку после- довательным нажатием кнопок Apply и ОК. Рис. 1.1.3-3. Выбор типа, размера и стиля шрифта Чтобы изменить цвет шрифта, в меню Общее следует выбрать элемент Цвета – откроется вкладка Цвет рабочего стола (рис. 1.1.3-4), где при настройке цвета прежде всего снять галочку, расположенную рядом с элемен- том Использовать системные цвета. Цвет также можно настроить для команд, текста, фона или курсора. Напри- мер, для изменения цвета фона, в поле команды Использовать системные цвета надо сняв галочку, нажать на кнопку Фон. В открывшейся цветовой палитре (рис. 1.1.3-5) выбрать цвет фона и для под- тверждения выбора нажать ОК. Затем, вернувшись в окно Настройки, после- довательно нажать на кнопки Apply и ОК. 11 Рис. 1.1.3-4. Окно Настройка Scilab(Цвета) Рис. 1.1.3-5. Настройка цвета фона (окно ColorChooser) Элемент меню Управление содержит команды для управления програм- мой в Scilab и содержит команды: Возобновить, Завершить, Приостановить. 12 При активизации элемента меню Инструменты, отображается набор команд, которые позволяют сделать активным инструменты, необходимые для текущей работы в Scilab. Они активизируют такие средства Scilab, как Тексто- вый редактор SciNotes, Визуальное моделирование, Преобразование файла из Matlab в Scilab, Управление модулями Atoms, Обозреватель переменных, Журнал команд и Обозреватель файлов . Отметим, что окно редактора SciNotes можно открыть несколькими спо- собами: либо выполнением соответствующей команды меню Инструменты, либо щелчком по первой кнопке панели инструментов , либо вводом в строке Командного окна команды: --> SciNotes . Вызов редактора открывает новое окно с именем «Безымянный документ 1», в котором можно ввести необходимый программный код (рис. 1.1.3-6). По завершении работы с редактором SciNotes программный код можно сохранить в файле. Работа с текстовым редактором SciNotes будет по- дробно рассмотрена в п. 1.5. Рис. 1.1.3-6. Окно редактора SciNotes Элемент меню Справка, служит для ознакомления пользователя с воз- можностями пакета Scilab или получения текущей справки. Этот элемент со- держит команды, позволяющие организовать доступ к Содержанию справочной системы Scilab; к Примерам, иллюстрирующим возможности Scilab; к Веб-ресурсам; к Scilab Enterprises–справки о составе Scilab; к справке о версии Scilab. Наиболее простой способ получения справки о возможностях пакета Scilab – выполнение в Командном окне команды help , с последующим нажа- тием --> help . Окно Справочная система Scilab показано на рис. 1.1.3-7. Если требуется получить справку о конкретной функции (например, optim ), то можно, пролистав содержание справки, найти раздел, посвященный оптимизации, где выбрать имя команды optim , после чего в правой части окна будет отображена информация по данной функции. Однако более удобным способом получения информации о конкретной функции (если вы знаете ее название) является использование команды help с указанием имени интересу- ющей функции, например, help optim . 13 Рис. 1.1.3-7. Окно Справочная система В этом случае Scilab автоматически отобразит окно справки, содержа- щее информацию о выбранной функции (рис.1.1.3-8). Рис. 1.1.3-8. Справка о выбранной команде optim 14 1.1.4 Основные окна Рабочей среды К основным окнам Рабочей среды относятся: Командное окно, окно Обозреватель переменных, окно Журнал команд и окно Обозреватель фай- лов. Командное окно используется для ввода команд с соответствующими аргументами и вывода результатов их выполнения. Работа в этом окне проис- ходит в диалоговом режиме: пользователь вводит команду, которая передается ядру Scilab для обработки и получения результата. Все команды вводятся в командную строку после появления приглашения --> . Заканчивается ввод каждой командной строки нажатием клавиши Сеанс работы с пакетом Scilab в Командном окне принято называть сес- сией. Рассмотрим несколько простых примеров выполнения команд в Командном окне (рис. 1.1.4-1). --> // Вычисления в Командном окне --> --> 2 + 3//Пример1 ans = 5. --> b= sin(%pi) // Пример2 b = 1.225D-16 --> a = %e^2; // Пример3 --> p = 2 * b / %pi... // Пример4 > + 4 / b p = 3.266D+16 Рис. 1.1.4-1. Примеры простейших вычислений в Командном окне В Примере1 (рис. 1.1.4-1) вычисляется результат выражения 2+3 . Scilab по умолчанию создаёт переменную с именем ans , и записывает в нее значение ре- зультата текущей операции, которое затем выводится в следующей строке. В Примере2 вычисляется значение выражения sin(%pi) и результат, при- сваивается переменной b , значение которой выводится в следующей строке. В Примере3 выражение заканчивает точка с запятой, которая «гасит» вы- вод результата, но он по-прежнему сохраняется, в этом случае в переменной с именем a. Особенность Примера4 состоит в том, что в случае ввода длинного выра- жения его часть переносится на следующую командную строку. В качестве символа переноса в командной строке Scilab используются три и более точки. В двух примерах были использованы системные переменные pi и e Чтобы указать, что эти переменные являются системными (т.е. они имеют зна- чения по умолчанию), перед их именами введен символ % 15 В результате выполнения рассмотренных выше примеров все атрибуты определенных переменных появились в окне Обозреватель переменных (рис. 1.1.4-1 справа) и их можно использовать в дальнейших вычислениях. Для очистки Командного окна служит команда clc , которая вводится в строке Командного окна. Окно Обозреватель переменных предназначено для просмотра атрибу- тов переменных, расположенных в Рабочей области (рис. 1.1.4-2). Под Рабочей областью понимается область оперативной памяти компьютера, в которой хранятся данные текущей сессии. В окне Обозреватель переменных можно увидеть графическое обозначение типа данных Scilab, имена перемен- ных, их значения, типы и видимость. Рис. 1.1.4-2. Окно Обозреватель переменных При нажатии правой кнопкой мышки на любое место строки, в которой расположена нужная переменная (например, массив А ) , в контекстном меню отображаются команды (рис. 1.1.4-3), которые можно с ней выполнить: изменить значение; удалить; экспортировать в…; построить графическое изображе- ние матрицы Рис. 1.1.4-3. Команды контекстного меню 16 Рис.1.1.4-4. Окно Редактора данных При выборе команды Изменить 'А' , появляется Редактор переменных (рис.1.1.4-4), в котором можно изменить значения элементов вектора А Меню этого окна содержит два элемента: Файл и Редакция . Команды, ко- торые они содержат, приведены на рис.1.1.4-5. Наиболее часто используемые команды выведены на панель инструментов. Рис.1.1.4-5. Команды элементов меню Редактора переменных Для очистки содержимого окна Обозреватель переменных предназна- чена команда clear , которая вводится в строке Командного окна. 17 Рис. 1.1.4-6. Содержимое окна Журнал команд Журнал команд (рис. 1.1.4-6) можно использовать при вводе команд, од- нотипных вычислений или просто повторений группы командных строк. Чтобы ввести в текущую строку содержимое ранее введенной командной строки, достаточно нажатием клавиш <↑> или <↓> подобрать нужную строку. Также перенести конкретную строку в командное окно можно двойным щелч- ком мыши по этой строке в окне Журнал команд или просто копированием и вставкой строки или части строки из окна Журнала команд в текущую строку Командного окна. Окно Обозреватель файлов предназначено для установки пути доступа к файлу, сохраненному в памяти компьютера или внешнего носителя, а также для вызова выбранного файла в редактор Scilab (рис. 1.1.4-7). 18 Рис. 1.1.4-7. Окно Обозреватель файлов Для установки текущего каталога (каталога в котором сохранен нужный файл), можно воспользоваться кнопкой , которая располагается в первой сроке окна Обозреватель файлов. В результате щелчка по этой кнопке возни- кает окно Выберите папку (рис. 1.1.4-8), в котором нужная папка выбирается традиционным способом. Рис.1.1.4-8. Окно Выберите папку 19 Выбор папки завершается щелчком по кнопке Open (Открыть), после чего содержимое окна Обозреватель файлов обновляется. Открытие файла из окна Обозреватель файлов производится двойным щелчком по его имени. 1.1.5 Контрольные вопросы 1) Что является основными элементами Рабочей среды Scilab? 2) Каково назначение Командного окна? 3) Каково назначение окна Журнал команд? 4) Каково назначение окна Обозревателя переменных? 5) Каково назначение окна Обозреватель файлов? 6) Как установить текущий каталог в окне Обозреватель файлов? 7) Как установить Конфигурацию рабочего окна? 8) Как называется сеанс работы с пакетом Scilab в Командном окне? 9) Каким образом перенести командную строку из окна Журнал команд в окно Командное окно? 10) Что происходит, если, находясь в командной строке, нажать клавишу <↑> или <↓>? 11) Каким образом изменить значение переменной в окне Обозревателя переменных? 12) Для чего предназначен редактор SciNotes? 13) Как выбрать тип, размер и стиль шрифта в Командном окне? 14) Для чего используется Справочная система Scilab? 15) Как вызвать окно Справочной системы с использованием меню и осуществить поиск нужной команды? 16) Какой командой вызывается справка из командного окна? 20 1.2 Основные объекты системы Scilab и операции над ними 1.2.1 Объекты Scilab и их типы К основным объектам (средствам языка программирования) Scilab можно отнести: данные различного типа, представленные в виде констант, скаляр- ных переменных, матричных переменных и соответствующих опе- раций (арифметических, отношений, логических, строковых, поли- номинальных и других). команды, операторы и функции; предопределенные библиотечные функции системы Scila b ; функции пользователей (библиотечные функции и функции, встро- енные в программный код); файлы различных типов данных; библиотеки функций; графические объекты; пакеты расширения. Для лучшего понимания методологии системы Scila b прежде чем при- ступить к подробному описанию основных объектов системы Scilab, сделаем важные замечание. В системе Scilab все данные являются матричными объектами,эле- менты которых могут быть различными допустимыми типами, которые в ос- новном предназначены для проведения математических расчетов и обработки данных. Структура объектов различного типа заранее предопределена внутри среды системы и скрыта от пользователей так же, как и работа с оперативной памятью при обработке объектов. В дальнейшем эти предопределенные объ- екты могут послужить для создания более сложных пользовательских объек- тов. Однако кроме матричных объектов в Scilab имеются и особые типы, такие как функции и библиотеки, которые предназначены для хранения данных, организации программного кода, а также хранения данных и программ (функ- ций) в файловой системе (библиотеках). Условно иерархию типов объектов в Scilab можно представить схемой, показанной на рис. 1.2.1-1, причем каждый из представленных типов может быть матрицей m×n ( 1×1, 1×n, m×1, m×n ). 21 Матрицы (matrix) Функции Библиотеки логические boolean числовые number строковые string списки list вещественные double int8 uint8 t-списки tlist m-списки mlist int16 int16 int32 int16 int64 int32 полиномы polinom Рациональные дроби rational структуры struct ячейки cell Рис. 1.2.1-1 Условная иерархия типов основных объектов Scilab Обратите внимание, что все скалярные числа в памяти Scilab сохраняются как матрица 1×1 . Тот же принцип относится и к более сложным типам данных. Приведенная на рис.1.2.1-1 иерархия типов объектов позволяет сделать вывод, что, элементами матриц могут быть предопределенные объекты, при- нимающие действительные или комплексные числовые значения, строковые значения, логические значения, полиномиальные значения, списки, структуры и ячейки и другие. Прежде чем перейти к подробному рассмотрению основных объектов Scilab целесообразно рассмотреть некоторые системные встроенные функции, такие как: whos, who, who_user, typeof, type и clear . Описание этих функций приведены в табл. 1.2.1-1 . Системные встроенные функции. Таблица 1.2.1-1 Имя функции Назначение whos whos() whos -typeТип whos -nameИмя Отображает переменные в длинной форм е Отображает все текущие имена переменных (без учета регистра), типам и ис- пользуемой памяти. Отображает все текущие переменные с указанным типом Тип, где Тип – текстовая строка, кодирующая тип данных. Отображает все текущие переменные, имена которых начинаются Имя, где Имя – имена искомых переменных, либо их начальные фрагменты. 22 who who() who('local') who('get') who('global') who('sorted') Отображает переменные Отображается текущие имена переменных и констант. Отображается имена локальных переменных и параметры память, используемые в данных двойной точности. Отображается имена глобальных переменных и параметры память, используе- мые в данных двойной точности. Отображается имена всех переменных(если переменная является глобаль- ной, * появляется после имени типа). сlear clear('a','b',..) Удаление из памяти объектов и освобождение имен переменных Удаляются все незащищенные объекты и освобождаются имена текущей сессии Удаляются указанные незащищенные объекты и освобождаются имена текущей сессии predef() predef('a') predef('с') predef('Список') Защищает переменные Возвращается количество защищенных переменных. Защищаются все переменные из списка who('get'). Снимается защита со всех переменных списка who('get'). Отображается Список защищенных переменных. xists('Имя') exists('Имя', 'l' ) exists('Имя', ' n') exists('Имя', 'a' ) Проверяет существование объекта с указанным им енем Если объект заданного типа существует, то возвращается T , в противном случае F , где 'l' – локальный, 'n' – нелокальный, 'a ' – все в () ( по умолчанию). 23 Для работы с объектами в среде Scilab существует множество предопре- деленных переменных, которые всегда загружаются вместе со средой. Их можно посмотреть, выполнив команду whos В результате чего в Командном окне появляется так называемый длинный список, в котором пе- речислены все объекты, объявленные средой во время инициализации и кото- рые были созданы в процессе текущей сессии. Из данного списка пользователь может получить информацию о типе объекта, его размерности и другую ин- формацию. Именно поэтому данный список называется длинным. В этом списке присутствуют и объекты с типами, которые отображены на рис. 1.2.1-1. Обратите внимание на функции type и typeof (табл. 1.2.1-2), которые предназначены для получения информации о номере (все типы пронумеро- ваны) и названии типов объектов. Функции, позволяющие получить номера и названия типов объектов. Таблица 1.2.1-2 НомерТипаОбъекта = type(Oбъект) – Возвращает номер типа объекта. НазваниеТипаОбъекта = typeof(Oбъект) – Возвращает названия типа объекта. № Типа Название Типа Примеры 1 Вещественные или комплекс- ные значения двойной точно- сти (double) type(42) type(%nan) type(%inf) type(1 + %i) 2 Полиномиальный ( polynomial) type(1 - %z + %z^2) 4 Логический (boolean) type(%t) 8 Целочисленный (integer): хранятся в 1 (int8), 2 ( int16), 4 (int32) или 8 ( int64) байтах g = int8([1 - 120127312]) type(g) type(1.23 * int8(4)) 9 Графические дескрипторы (указатели) type(gdf()) 10 Символьный(string) type("Текст") type('Текст') 13 Компилированные функции (function) deff('[y] = f(x)',['a = 3 * x + 1']); type(f) 14 Библиотеки функций ( li- brary) 15 Простые списки (list) l = list(1,["a" "b"]); type(l) 16 Типизированные списки ( tlist) e = tlist(["lt","f1","f2"], [], []); type(e) 17 Матрично-ориентированные типизированные списки ( mlist) ( Структуры,Ячейки, Поли- номы,Рациональные дроби) h=mlist(['V','n','v'],['a','b';'c''d'],[12;34]); type(h) clears,s.r=%pi type(s) // структуры c={%t% pi% i%z"abc "s 24 type(c)} //cell-массивы r=[%z/(1 - %z)(1 - %z) / %z^2] type(r) // рациональныедроби 130 Встроенные функции (fptr) type(disp) Обратите внимание, что создание любого программного кода, как правило, начинается с определения данных и способа их представления. Следовательно, необходимо понимать, как задать переменным необходимые типы и соответствующие значения , и как их можно использовать. 1.2.2. Числовые выражения, их вычисления и создание переменных Числовые выражения Числовые (математические) выражения в Scilab состоят из числовых типов данных (целочисленных и вещественных с плавающей точкой ) и строятся из следующих объектов: числовых констант, переменных, встроенных математических библиотечных функций Scilab, функций пользователя, арифметических операций над матрицами (алгебраических и поэлементных), круглых скобок и специальных операций. Перечень операций Scilab, которые представляют собой различные символы или их комбинации, приведен в табл. 1.2.2-1. Символы, специальные операции и примеры их использования Таблица 1.2.2-1 Сим вол Название символа Роль Описание Примеры . Точка Десятичная точка. Операции. Доступ к элементам структуры. Точка разделяет целую и дробную ча- сти числа, используется в поэлемент- ных операциях, позволяет получать доступ к полям в структуре. Десятичная точка: 102.5543 Поэлементные операции: A.* B Доступ к полям структуры: Struct.f1 ... Многоточие Продолжение строки. Три или более точки в конце строки продолжают текущую команду на сле- дующей строке. Продолжает ввод выражения на следующей строке: --> f=5*x^7+%e*(35*sin(x-2)+... > 7+x-a(5)/8); , Разделитель. Запятые разделяют элементы строки в массиве, индексы массива, аргументы функций и команд. Отделяет элементы строки для создания массива: mA = [12,13; 14,15] Отделяет индексы: mА(1,2) Отделяет входные и выходные параметры: [Y, I] = max (A, [], 2) Отделение нескольких команд в одной строке: mА(1, 2), [Y, I] = max(A, [], 2), А.^2 : Двоеточие Создание вектора. Индексирование. Итерация для цикла. Оператор двоеточия позволяет созда- вать регулярные интервалы векторов, производить индексирования в масси- вах и определять границы циклаfor. Создает вектор: x = 1:10, x = 1: 3: 19 Изменяет матрицу на вектор столбец: А (:) 25 Сим вол Название символа Роль Описание Примеры Присваивает новые значения массиву: A = rand(3,4);A(:) = 1:12; Определяет диапазон индексов: А(:), А (:, 3) Определяет границы циклаfor: x = 1; for k = 1:25 x = x + x.^ 2; end ; Точка с за- пятой Разделитель. Знак конца строки. Подавление вывода строки. Точка с запятой разделяетописание строкипри созданиимассива, подав- ляет отображения строки кода и вывод результата. Отделяет строки при создании массива: A = [12,13; 14,15] Подавляет вывод: Y = max(A); Разделяет несколько команд на одной строке: А = 12.5; B = 42.7, C = 1.25; B = 42.7000 () Круглые скобки Последовательность операций. Заключает списокпара- метров функций и ин- дексы. Круглые скобки определяют последо- вательность операций в выражениях, внутри скобок перечисляются пара- метры функций и индексы в массиве. Определяет последовательность операций: (A.* (B./C)) - D Заключают списокпараметров функций: fun(X, Y ,Z) Заключают список индексов массивов: А (3, :), А (1,2), А (1: 5,1) [] Квадратные скобки Конструктор массива. Удаление пустой мат- рицы и ее элемента. Определение вектора выходных параметров. Квадратные скобки осуществляют по- строение и конкатенацию массивов, создание пустых матриц, удаление элементов массивов и определяют век- торвыходных параметров функций. Конструирует вектора: X = [10 12 -3] Создает пустую матрицу: A = [] Удаляет столбец матрицы: A (:, 1) = [] Определяет выходные параметры функций: [C, iA, iB] = uni5(A, B) {} Фигурные скобки Конструктор массива ячеек. Фигурныескобки осуществляют по- строение массива ячеек или опреде- ляют доступ к ним. Конструирует массив ячеек: C = {[2.6 4.7 3.9], rand(8) * 6, 'Мама '} Реализует индексациюв массиве ячеек: A = C {4,7,2} // Слеш Комментарии // Определяет комментарии в конце строки или в целой строке. Добавляет в программный код комментарий: //Цель этого цикла - вычислить /* */ Слеш звездочка Блок комментариев /* Комментарии */ определяет блок комментариев, которые располагаются на нескольких строках Добавляет в программный код блок комментариев: /* Комментарий ... */ % Процент Указатель си- стемных кон- стант Знак процента используется для указа- ния на системную константу. Указатель на системную константу: %e, %pi, %i $ Доллар Команда опе- рационной си- стемы Последний индекс элемента массива. Указатель последнего индекса массива A(1:2:$) %{ %} Процентная фигурная скобка Блок комментариев %{Комментарии %} определяет блок комментариев , которые располага- ются на несколькихстроках программ- ного кода Добавляет многострочные комментарий: % { Комментарий ... %} 26 Сим вол Название символа Роль Описание Примеры ' Одинарные кавычки Конструктор строк. Используется для создания символь- ной переменной. Создает символьную переменную: chr = 'Привет' " Двойные кавычки Конструктор строк Используется для создания строковых скаляров типа string. Создает символьную переменную: S = "Привет, Ректору" Тильда Логическое НЕ. Заполнитель аргумен- тов Используется для представления логи- ческого отрицания или для подавле- ния конкретных входных или выход- ных параметров Определяет неравенство: A = [1 -1; 0 1]; B = [1 -2; 3 2]; А = В Возвращает только третье выходное значение: [, , iB] = Fun3 (A, B) = Знак равен- ства Присваивание. Используется для присваивания значе- ний переменной. Создает матрицу A и B, определяет b[ тип: A = [1 0; -1 0]; B = A; Несколько примеров использования операций Scilab, а также соответствующее отражение в окне Обозреватель переменных информации о созданных с их помощью переменных, представлено на рис. 1.2.2-1. --> // Примеры использования специальных символов --> A = 1:5; // Двоеточие для формирования вектора --> x = 2; // Точка с запятой для запрета вывода результата --> t = '12345'; // Апостроф для создания строки символов --> d = 5; // Равно для присваивания значения переменной -- >k = 0.0018; // Десятичная точка для отделения --> // дробной части числа от целой Рис.1.2.2-1 Примеры использования некоторых специальных операций К числовым типам в Scilab относятся целые числа без знака, целые числа со знаком, а также числа с плавающей точкой двойной точности. По умолча- нию Scilab размещает в оперативной памяти компьютера все числовые значе- ния как значения с плавающей точкой двойной точности – double , а формат результатов математических выражений в Командном окне зависит от уста- новленного формата в Рабочей среде или установленного формата функцией format Действительные числовые константы – это предопределенные числа (числовые значения). Числа, например, 11, -7, 12.07 являются безымянными числовыми константами. Числа могут быть представлены в целом, вещественном или в экспоненциальном виде: 0 5 -9 13.06 0.0025 167.9D-7 0.99D+40. Кроме действительных чисел в выражения могут использоваться комплексные числа. 27 Комплексные числа – это числа, имеющие действительную и мнимую часть, причем в мнимой части имеется множитель %i , означающий корень квадратный из - 1 (√-1 = i) . Например, 3 * %i; 3 + %i * 5; -%i * 8; 0.05 *% e-0.006 * %i. Комплексное число расширяет одномерную (линейную) область веще- ственных чисел в двумерную область, где комплексное число имеет на гори- зонтальной оси вещественную часть, а на вертикальной оси мнимую часть (рис. 1.2.2-2). Re – вещественная ось; Im – мнимая. Рис. 1.2.2-2 Графическое представление комплексного числа Показанный способ задания комплексного числа не всегда удобен и тре- бует ввода знаков + , * и %i . Создание комплексного числа можно упростить, если воспользоваться функцией complex(a,b) , где в качестве параметров ука- зываются, соответственно, действительная и мнимая части числа. Для работы с комплексными объектами существует традиционный набор функций, который представлен в табл. 1.2.2-2. Функции для работы с комплексными данными. Таблица 1.2.2-2 Функции Назначение Примеры complex(a, b) Создает комплексное число --> complex(5, 9) ans = 5. + 9.i сonj(a, b) Создает комплексно-со- пряжённое число --> b = complex(5, 9) b = 5. + 9.i --> conj(b) ans = 5. - 9.i imag(Z) Выделяет мнимую |