Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
introscilab-v1.3-ru.pdf
Скачиваний:
45
Добавлен:
30.03.2015
Размер:
1.43 Mб
Скачать

Введение в 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

LATEX
LATEX

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]