Scilab — свободная платформа для численных расчетов. Поддерживается консорциумом Scilab.
Распространяется по лицензии GNU General Public License (GPL) v2.0.
Доступны версии для ОС Linux, Windows, MacOS X.
Программа включает перевод интерфейса на различные языки (в том числе русский).
Официальный сайт программы: http://www.scilab.org
На момент написания статьи на официальном сайте доступна версия Scilab 6.0.2
Главное окно программы имеет вид:
Основной режим работы в Scilab — выполнение команд в консоли. Кроме этого в Scilab интегрирован текстовый редактор Scinotes,
с помощью которого удобно создавать скрипты. Для анализа и редактирования переменных, используемых в текущей сессии,
можно использовать встроенный редактор переменных. Пользователь может просматривать историю команд, присутствует встроенная справочная система.
С помощью механизма ATOMS пользователь может скачивать и устанавливать дополнительные модули.
Рассмотрим выполнение простейших операций в консоли Scilab.
Работа в Scilab производится с помощью команд, набираемых после приглашения
-->
Выполнение команды осуществляется с помощью нажатия клавиши Enter. Например, для вычисления 2+2 необходимо набрать 2+2 и нажать Enter.
-->2+2
ans =
4.
-->
Переменная ans (от англ. answer — ответ) содержит результат операции. Если в конце команды стоит символ ";", то результат операции вычисляется, но не выводится на экран. Это удобно при вводе нескольких команд.
-->2+2;
-->ans=ans+3
ans =
7.
-->
Длинные команды можно разделить на несколько строк. Для этого в конце строки нужно поставить две или более точки.
-->2+2..
-->+3+3...
-->+10
ans =
20.
-->
Для создания комментариев можно использовать команду //. Все, что написано справа от символов // рассматривается как текст.
-->2*2 //дважды два = четыре
ans =
4.
-->
Редактирование команд осуществляется с помощью клавиш управления курсором <-;, ->, клавиш Delete (удаление символа, стоящего после курсора), <-Backspace (удаление символа, стоящего перед курсором), Home (переход в начало строки) и End (переход в конец строки). Клавиши управления курсором «вверх» и «вниз» позволяют пролистывать выполненные команды, а клавиши PageUp и PageDown — пролистывать рабочую область. При вводе действительного числа в качестве разделителя целой и дробной части десятичного числа используется точка (например 55.777). Для записи скобок используются круглые скобки ( ). При вводе выражений можно использовать операторы: + — сложение; — — вычитание; * — умножение; ^ — возведение в степень; / — деление слева направо; \ — деление справа налево. Также можно использовать встроенные переменные %pi (число π) и %e (число e). В пакете существует большое количество встроенных функций, которые можно использовать при записи выражений. Приведем некоторые из них: sqrt(x) — квадратный корень из числа x; abs(x) — модуль числа x; sin(x) — синус числа x; cos(x) — косинус числа x; tan(x) — тангенс числа x; cotg(x) — котангенс числа x; asin(x) — арксинус числа x; acos(x) — арккосинус числа x; atan(x) — арктангенс числа x; exp(x) — экспонента числа x; log(x) — натуральный логарифм числа x; log10(x) — десятичный логарифм числа x. Подробное описание всех функций можно найти в справочной системе Scilab. Заметим, что по умолчанию результат содержит восемь значащих цифр. Количество цифр, отображаемых в результате, можно изменить с помощью команды printf. Например,
-->printf("%1.5f",%pi)
3.14159
-->printf("%1.10f",%pi)
3.1415926536
-->
Для присваивания значений переменным используется оператор "=". Например, чтобы присвоить x значение 5, нужно выполнить команду x=5.
-->x=5
x =
5.
-->
Если в конце команды стоит символ ";", то значение переменной не выводится на экран.
-->x=5;
-->
-->x=5;
-->
В имени переменной учитывается регистр. Например, x и X — две разные переменные. Имя переменной не должно совпадать с названием встроенных переменных, процедур и функций. В имени переменной можно использовать не более 24 символов. Переменная может быть числового типа или строкового типа. Для присваивания переменной строки символов необходимо заключить эту строку в одинарные кавычки. Например, чтобы присвоить x=abc, нужно набрать x='abc'.
-->x='abc'
x =
abc
-->
Команда clear позволяет очищать значения переменных. Например, команда clear очищает значения всех переменных, а команда clear x очищает значение переменной x. Функции в Scilab делятся на встроенные и определенные пользователем. Некоторые встроенные функции были приведены выше. Рассмотрим определение пользовательских функций. Пользовательские функции можно определить с помощью команды deff или конструкции
function ... endfunction.
Формат команды deff:
deff('[y1,y2,...,yn]=название_функции(x1,x2,...,xn)',
['y1=выражение_1';
'y2=выражение_2';
...;
'yn=выражение_n']),
где x1, x2, ..., xn — входные переменные, y1, y2, ..., yn — выходные переменные, выражение_1, выражение_22, …, выражение_n — выражения для вычисления y1, y2, ..., yn. Пример. Определить функцию y=x^2 и вычислить ее значение при x=2.
-->deff('[y]=myfunction(x)','y=x^2')
-->myfunction(2)
ans =
4.
-->
Формат команды function… endfunction:
function[y1,y2,..,yn]=название_функции(x1,x2,...,xn)
команды
endfunction
или в одну строку function[y1,y2,..,yn]=название_функции(x1,x2,...,xn), команды, endfunction где y1,y2,..,yn — выходные параметры функции, x1,x2,...,xn — входные параметры функции. Пример. Определить функцию y=x^3 и вычислить ее значение при x=2.
-->function[y]=myfunc(x)
-->y=x^3
-->endfunction
-->myfunc(2)
ans =
8.
-->
Продолжение: