- •1 Введение
- •1.1 О данном руководстве
- •1.2 Обзор пакета Scilab
- •1.3 Как получить дистрибутив и установить Scilab
- •1.3.1 Установка Scilab в Windows
- •1.3.2 Установка Scilab в Linux
- •1.3.3 Установка Scilab в Mac OS
- •1.4 Как получить помощь
- •1.5 Списки рассылки, wiki и отчеты о дефектах
- •1.6 Демонстрационные примеры Scilab
- •1.7 Упражнения
- •2 Основы работы в Scilab
- •2.1 Консоль Scilab
- •2.2 Встроенный редактор скриптов
- •2.3 Расположение панелей
- •2.5 Пакетная обработка
- •2.6 Упражнения
- •3 Основные элементы языка Scilab
- •3.1 Определение вещественных переменных
- •3.2 Имена переменных
- •3.3 Комментарии и продолжение строки
- •3.4 Элементарные математические функции
- •3.5 Предопределенные математические константы
- •3.6 Логический тип
- •3.7 Комплексные числа
- •3.8 Целые числа
- •3.8.1 Обзор целых чисел
- •3.8.2 Преобразование целых типов
- •3.8.3 Выход за пределы диапазона и проблемы переносимости
- •3.9 Целые числа и числа с плавающей точкой
- •3.10 Переменная ans
- •3.11 Строки
- •3.12 Динамическая типизация переменных
- •3.13 Упражнения
- •4 Матрицы
- •4.1 Обзор
- •4.2 Создание вещественных матриц
- •4.4 Определение размера матрицы
- •4.5 Работа с элементами матрицы
- •4.8 Динамическое изменение размера матрицы
- •4.10 Арифметические операции
- •4.11 Поэлементные операции
- •4.12 Эрмитово сопряжение и транспонирование
- •4.13 Умножение векторов
- •4.14 Сравнение вещественных матриц
- •4.15 Числа с плавающей точкой в качестве индексов
- •4.16 Еще об элементарных функциях
- •4.17 Высшая алгебра и другие возможности Scilab
- •4.18 Упражнения
- •5 Операторы ветвления и цикла
- •6 Функции
- •6.1 Обзор
- •6.2 Создание собственной функции
- •6.3 Библиотеки функций
- •6.4 Управление выходными переменными
- •6.5 Уровни стека вызовов
- •6.7 Отладка функций. Инструкция pause
- •7 Построение графиков
- •7.1 Обзор графических возможностей Scilab
- •7.2 Отображение двухмерных графиков
- •7.3 Контурные графики
- •7.4 Подписи на графиках
- •7.5 Экспорт изображений
- •8 Заключение
- •9 Благодарность
- •10 Ответы к упражнениям
- •Список литературы
Введение в Scilab
Micha¨el Baudin
Перевод Artem Glebov
Ноябрь 2010 года
Аннотация
В настоящем документе рассматриваются основные возможности пакета Scilab и навыки, необходимые для того, чтобы приступить к работе как можно быстрее. В первой главе показано, как получить дистрибутив и установить Scilab на персональный компьютер, а также где искать помощи в случае затруднений. Вторая глава представляет обзор графической и текстовой среды пакета Scilab. Основные конструкции встроенного языка программирования Scilab рассматриваются в главе 3. Глава 4 посвящена работе с матрицами и основным функциям библиотеки линейной алгебры. В пятой главе представлены основные конструкции структурного программирования в Scilab. Вопросы определения пользовательских функций, управления входными и выходными аргументами, а также создания библиотек функций составляют шестую главу. Завершает обзор глава 7, где дано краткое введение в графические возможности Scilab, включая построение двухмерных графиков и экспорт изображений.
Содержание
1 Введение |
|
5 |
|
1.1 |
О данном руководстве . . . . . . . . . . . . . . . . . . . . . . . . . . |
5 |
|
1.2 |
Обзор пакета Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . |
5 |
|
1.3 |
Как получить дистрибутив и установить Scilab . . . . . . . . . . . |
6 |
|
|
1.3.1 |
Установка Scilab в Windows . . . . . . . . . . . . . . . . . . |
7 |
|
1.3.2 |
Установка Scilab в Linux . . . . . . . . . . . . . . . . . . . . |
7 |
1.3.3 Установка Scilab в Mac OS . . . . . . . . . . . . . . . . . . . 8
1.4Как получить помощь . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5Списки рассылки, wiki и отчеты о дефектах . . . . . . . . . . . . . 9
1.6Демонстрационные примеры Scilab . . . . . . . . . . . . . . . . . . 11
1.7 |
Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
12 |
2 Основы работы в Scilab |
12 |
|
2.1 |
Консоль Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
12 |
2.2 |
Встроенный редактор скриптов . . . . . . . . . . . . . . . . . . . . |
13 |
1
2.3 Расположение панелей . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4Использование команды exec . . . . . . . . . . . . . . . . . . . . . 17
2.5Пакетная обработка . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.6 Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
20 |
3 Основные элементы языка Scilab |
21 |
3.1Определение вещественных переменных . . . . . . . . . . . . . . . 21
3.2Имена переменных . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3Комментарии и продолжение строки . . . . . . . . . . . . . . . . . 23
3.4Элементарные математические функции . . . . . . . . . . . . . . . 23
3.5 |
Предопределенные математические константы . . . . . . . . . . . |
24 |
|
3.6 |
Логический тип . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
24 |
|
3.7 |
Комплексные числа . . . . . . . . . . . . . . . . . . . . . . . . . . . |
25 |
|
3.8 |
Целые числа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
26 |
|
|
3.8.1 |
Обзор целых чисел . . . . . . . . . . . . . . . . . . . . . . . |
26 |
|
3.8.2 Преобразование целых типов . . . . . . . . . . . . . . . . . . |
27 |
|
|
3.8.3 |
Выход за пределы диапазона и проблемы переносимости . |
28 |
3.9Целые числа и числа с плавающей точкой . . . . . . . . . . . . . . 29
3.10Переменная ans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.11 |
Строки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
30 |
3.12 |
Динамическая типизация переменных . . . . . . . . . . . . . . . . |
31 |
3.13 |
Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
31 |
4 Матрицы |
32 |
|
4.1 |
Обзор . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
32 |
4.2Создание вещественных матриц . . . . . . . . . . . . . . . . . . . . 33
4.3Пустая матрица [] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.4Определение размера матрицы . . . . . . . . . . . . . . . . . . . . . 35
4.5Работа с элементами матрицы . . . . . . . . . . . . . . . . . . . . . 35
4.6Оператор ” :” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.7Генерация единичной матрицы. Функция eye . . . . . . . . . . . . 39
4.8 |
Динамическое изменение размера матрицы . . . . . . . . . . . . . |
40 |
4.9 |
Оператор ” $” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
41 |
4.10Арифметические операции . . . . . . . . . . . . . . . . . . . . . . . 42
4.11Поэлементные операции . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.12Эрмитово сопряжение и транспонирование . . . . . . . . . . . . . . 44
4.13 |
Умножение векторов . . . . . . . . . . . . . . . . . . . . . . . . . . |
45 |
4.14 |
Сравнение вещественных матриц . . . . . . . . . . . . . . . . . . . |
45 |
4.15Числа с плавающей точкой в качестве индексов . . . . . . . . . . . 46
4.16Еще об элементарных функциях . . . . . . . . . . . . . . . . . . . . 48
4.17Высшая алгебра и другие возможности Scilab . . . . . . . . . . . . 50
4.18 Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
50 |
5 Операторы ветвления и цикла |
51 |
5.1Оператор if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.2Оператор select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.3Оператор for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2
5.4Оператор while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.5Инструкции break и continue . . . . . . . . . . . . . . . . . . . . . 56
6 Функции |
58 |
|
6.1 |
Обзор . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
58 |
6.2 |
Создание собственной функции . . . . . . . . . . . . . . . . . . . . |
59 |
6.3 |
Библиотеки функций . . . . . . . . . . . . . . . . . . . . . . . . . . |
62 |
6.4 |
Управление выходными переменными . . . . . . . . . . . . . . . . |
65 |
6.5Уровни стека вызовов . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.6Инструкция return . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.7Отладка функций. Инструкция pause . . . . . . . . . . . . . . . . . 67
7 Построение графиков |
69 |
|
7.1 |
Обзор графических возможностей Scilab . . . . . . . . . . . . . . . |
70 |
7.2 |
Отображение двухмерных графиков . . . . . . . . . . . . . . . . . |
70 |
7.3Контурные графики . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
7.4Подписи на графиках . . . . . . . . . . . . . . . . . . . . . . . . . . 75
7.5Экспорт изображений . . . . . . . . . . . . . . . . . . . . . . . . . . 76
8 |
Заключение |
77 |
|
9 |
Благодарность |
78 |
|
10 |
Ответы к упражнениям |
79 |
|
|
10.1 |
Ответы к упражениям раздела 1.7 . . . . . . . . . . . . . . . . . . . |
79 |
|
10.2 |
Ответы к упражениям раздела 2.6 . . . . . . . . . . . . . . . . . . . |
79 |
|
10.3 |
Ответы к упражениям раздела 3.13 . . . . . . . . . . . . . . . . . . |
82 |
|
10.4 |
Ответы к упражениям раздела 4.18 . . . . . . . . . . . . . . . . . . |
85 |
Список литературы |
86 |
||
Предметный указатель |
87 |
3
Copyright c 2008-2010 - Consortium Scilab - Digiteo - Micha¨el Baudin Copyright c 2010 - Перевод Artem Glebov
This file must be used under the terms of the Creative Commons AttributionShareAlike 3.0 Unported License:
http://creativecommons.org/licenses/by-sa/3.0
4
1Введение
Данный раздел представляет краткий обзор целей создания и основных особенностей пакета Scilab. Здесь мы рассмотрим способы получения и установки дистрибутивов Scilab, основные справочные источники, включая встроенную справочную систему пакета, а также интерактивные демонстрации, поставляемые в составе дистрибутивов.
1.1О данном руководстве
Данный документ, как и программный продукт, который он описывает, является проектом с открытым исходным кодом. Исходный текст в разметке доступен в репозитории Scilab Forge:
http://forge.scilab.org/index.php/p/docintrotoscilab/
Исходный текст распространяется в соответствии с лицензией Creative Commons Attribution-ShareAlike 3.0 Unported License:
http://creativecommons.org/licenses/by-sa/3.0
Скрипты Scilab, используемые в данном руководстве, содержатся в папке scripts проекта. Правила распространения скриптов определяются лицензией CeCiLL:
http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
1.2Обзор пакета Scilab
Программный пакет Scilab объединяет в себе развитый язык программирования и обширную библиотеку численных алгоритмов, охватывающую многие области научных и технических вычислений.
Язык программирования Scilab относится к числу интерпретируемых языков высокого уровня, предоставляя пользователю возможность напрямую манипулировать математическими конструкциями, такими как матрицы или полиномы. Тем самым достигается большая скорость и простота написания программ. Язык Scilab допускает расширение посредством определения пользовательских типов данных. При этом стандартным операциям, например, арифметическим операторам или операторам сравнения, возможно придать особый смысл применительно к пользовательским типам данных. Пользователи пакета могут разрабатывать собственные модули расширения для решения конкретных задач. Возможен также вызов из Scilab функций, реализованных на других языках программирования, в частности Fortran или C, благодаря чему сторонние библиотеки могут быть использованы, как если бы они были частью встроенных средств пакета. Scilab также предоставляет возможности для взаимодействия с программным комплексом LabVIEW компании National Instruments, предназначенным для визуального проектирования измерительных систем, а также сбора и анализа экспериментальных данных.
Разрабатываемый в соответствии с принципами свободного программного обеспечения, Scilab распространяется бесплатно на основе лицензии Cecill [2].
5