LXF106:SciLab
Yaleks (обсуждение | вклад) (Новая: == SciLab: Основы == : ''Компьютеры, как известно, придумывали для работы с числами, и для решения этой задачи...) |
|||
(не показана 1 промежуточная версия 1 участника) | |||
Строка 1: | Строка 1: | ||
== SciLab: Основы == | == SciLab: Основы == | ||
+ | |||
+ | [[Категория:Учебники]]{{Цикл/SciLab}} | ||
+ | |||
: ''Компьютеры, как известно, придумывали для работы с числами, и для решения этой задачи были созданы самые различные программы. '''Александр Бикмеев''' покажет вам одну из них – свободный аналог Matlab.'' | : ''Компьютеры, как известно, придумывали для работы с числами, и для решения этой задачи были созданы самые различные программы. '''Александр Бикмеев''' покажет вам одну из них – свободный аналог Matlab.'' | ||
Строка 28: | Строка 31: | ||
приложение. | приложение. | ||
+ | {{Врезка | ||
+ | |Заголовок=Скорая помощь | ||
+ | |Содержание=Для возврата | ||
+ | на предыдущий | ||
+ | уровень коллекции | ||
+ | демонстрационных | ||
+ | примеров следует | ||
+ | нажать кнопку | ||
+ | Cancel [Отмена] | ||
+ | у нижней кромки | ||
+ | окна. | ||
+ | |Ширина=150px}} | ||
+ | [[Изображение:LXF106 82 1.png|thumb|left|Главное окно SciLab с выполненными вычислениями.]] | ||
После запуска вы увидите главное окно, в котором вводятся | После запуска вы увидите главное окно, в котором вводятся | ||
команды и выводятся результаты вычислений. В его верхней находится текстовое меню. Пункт меню Control содержит команды управления процессом вычислений: Resume [продолжить], Abort [отменить] и Stop [приостановить]. Пункт Help вызывает справку, а Editor | команды и выводятся результаты вычислений. В его верхней находится текстовое меню. Пункт меню Control содержит команды управления процессом вычислений: Resume [продолжить], Abort [отменить] и Stop [приостановить]. Пункт Help вызывает справку, а Editor | ||
Строка 42: | Строка 58: | ||
из буфера при помощи Shift+Ins, но скопировать что-то из окна SciLab | из буфера при помощи Shift+Ins, но скопировать что-то из окна SciLab | ||
не получится. Впрочем, скоро все изменится (см. Смена версий). | не получится. Впрочем, скоро все изменится (см. Смена версий). | ||
− | + | {{Врезка|center| | |
+ | |Заголовок=Смена версий | ||
+ | |Содержание=В настоящее время официальной является ветка 4.х, но уже | ||
+ | при первом запуске появляется окно с предупреждением, что | ||
+ | она будет последней, использующей старый графический | ||
+ | интерфейс. Впрочем, кардинальной смены GUI в SciLab 5.0 не | ||
+ | произойдет. Все также будет основное окно для ввода команды и текстовое меню, обеспечивающее доступ к инструментам. | ||
+ | Однако, судя по справке, пятая версия будет включать в себя | ||
+ | многие пакеты расширений (Toolbox), которые в настоящий | ||
+ | момент необходимо загружать и устанавливать вручную. На | ||
+ | момент написания этой статьи на официальном сайте была | ||
+ | доступна весьма неустойчивая в работе версия 5.0.beta1, но | ||
+ | стабильный релиз планируется уже в мае. | ||
+ | |Ширина=}} | ||
+ | [[Изображение:LXF106 83 1.png|thumb|left|Окно справочной | ||
+ | системы SciLab. | ||
+ | Кнопка слева вверху | ||
+ | переключает режимы | ||
+ | структуры и поиска. | ||
+ | Кнопки внизу окна | ||
+ | текста справки | ||
+ | позволяют | ||
+ | перемещаться | ||
+ | вперед и назад по | ||
+ | уже открывавшимся | ||
+ | темам.]] | ||
+ | [[Изображение:LXF106 84 1.png|thumb|Окно коллекции | ||
+ | демонстрационных | ||
+ | примеров SciLab. | ||
+ | Обязательно | ||
+ | посетите – здесь | ||
+ | много интересного.]] | ||
Продукт поставляется с большим руководством, описывающим все | Продукт поставляется с большим руководством, описывающим все | ||
имеющиеся функции. Для того, чтобы вызвать окно справки, необходимо выбрать пункт меню Help > Help browser либо выполнить команду help. При этом, если вы ничего не меняли, откроется внутренний | имеющиеся функции. Для того, чтобы вызвать окно справки, необходимо выбрать пункт меню Help > Help browser либо выполнить команду help. При этом, если вы ничего не меняли, откроется внутренний | ||
Строка 70: | Строка 117: | ||
=== Простые вычисления === | === Простые вычисления === | ||
− | Теперь, я надеюсь, вы сможете ориентироваться в небогатом | + | Теперь, я надеюсь, вы сможете ориентироваться в небогатом интерфейсе SciLab, и мы можем перейти непосредственно к работе. |
− | + | ||
− | Итак, SciLab – это, преимущественно, система численных | + | Итак, SciLab – это, преимущественно, система численных вычислений. Средства аналитического счета есть, но, во-первых, их немного, а, во-вторых, их использование неочевидно. |
− | + | ||
− | + | ||
− | Как и в Matlab, команды набираются пользователем и | + | Как и в Matlab, команды набираются пользователем и выполняются системой последовательно. Ввод происходит в строке после |
− | + | ||
системного приглашения, которое имеет вид -->. После набора | системного приглашения, которое имеет вид -->. После набора | ||
− | команды ее уже нельзя исправить, как в текстовом редакторе: | + | команды ее уже нельзя исправить, как в текстовом редакторе: необходимо вернуться к ней при помощи клавиш-стрелок (как в терминале), потом внести изменения и нажать Enter, то есть вновь выполнить |
− | + | ||
− | + | ||
уже исправленную команду. Благодаря сходству с консолью, строку с | уже исправленную команду. Благодаря сходству с консолью, строку с | ||
приглашением называют «командной строкой SciLab». | приглашением называют «командной строкой SciLab». | ||
Строка 93: | Строка 134: | ||
Длинные команды можно разбить на несколько строк, добавляя в | Длинные команды можно разбить на несколько строк, добавляя в | ||
− | конце каждой из них две или более точек подряд (..). Возможен | + | конце каждой из них две или более точек подряд (..). Возможен также ввод поясняющего текста (комментария). Любой комментарий в |
− | + | ||
SciLab, как и в языке C/C++, начинается с двойного символа //. Однако, | SciLab, как и в языке C/C++, начинается с двойного символа //. Однако, | ||
следует отметить, что версия 4.1.2 не поддерживает кириллицу. | следует отметить, что версия 4.1.2 не поддерживает кириллицу. | ||
− | Самым простым случаем является использование SciLab в | + | Самым простым случаем является использование SciLab в качестве калькулятора. Вы вводите какое-то математическое выражение с конкретными числами, нажимаете Enter и получаете результат. |
− | + | ||
− | + | ||
Например: | Например: | ||
<source lang="matlab">--> 2.3*14 – sin(2.1) + tanh(0.2) | <source lang="matlab">--> 2.3*14 – sin(2.1) + tanh(0.2) | ||
Строка 121: | Строка 159: | ||
ans = | ans = | ||
31.5341659536</source> | 31.5341659536</source> | ||
− | Конечно, использование такой мощной системы в качестве | + | Конечно, использование такой мощной системы в качестве простого калькулятора бессмысленно. А при организации сложных |
− | + | вычислений мы неизбежно приходим к переменным, то есть специальным именованным ячейками памяти для хранения исходных и | |
− | вычислений мы неизбежно приходим к переменным, то есть | + | |
− | + | ||
промежуточных данных, а также результата. Например, пусть нам | промежуточных данных, а также результата. Например, пусть нам | ||
необходимо найти длину и площадь окружности, а также объем и | необходимо найти длину и площадь окружности, а также объем и | ||
Строка 142: | Строка 178: | ||
V = | V = | ||
33.510322</source> | 33.510322</source> | ||
− | Вы могли заметить, что в качестве числа π используется | + | Вы могли заметить, что в качестве числа π используется конструкция, начинающаяся с символа процента. Так записываются системные переменные. Рассмотрим наиболее важные из них: |
− | + | ||
− | + | ||
: %i – мнимая единица ( q1); | : %i – мнимая единица ( q1); | ||
: %e – число e=2.7182818; | : %e – число e=2.7182818; | ||
Строка 157: | Строка 191: | ||
Во время работы | Во время работы | ||
− | часто бывает | + | часто бывает необходимо сохранить выполненные действия и |
− | + | ||
− | + | ||
результаты в файл для | результаты в файл для | ||
− | дальнейшего | + | дальнейшего использования. Это особенно актуально в связи с |
− | + | ||
− | + | ||
тем, что, как мы знаем, | тем, что, как мы знаем, | ||
− | SciLab 4.x не | + | SciLab 4.x не поддерживает буфер обмена и |
− | + | ||
прокрутку. Для записи | прокрутку. Для записи | ||
− | рабочей сессии | + | рабочей сессии существует команда diary. |
− | + | ||
Она принимает путь | Она принимает путь | ||
к файлу, например, | к файлу, например, | ||
− | diary('/home/username/ | + | diary('/home/username/session1.txt'). В конце, |
− | session1.txt'). В конце, | + | следует подать команду diary(0), которая |
− | следует подать | + | |
− | + | ||
останавливает запись. | останавливает запись. | ||
Тогда все команды и результаты будут сохранены в /home/username/session1.txt в обычном текстовом формате. | Тогда все команды и результаты будут сохранены в /home/username/session1.txt в обычном текстовом формате. | ||
Строка 186: | Строка 212: | ||
создать свою собственную функцию или файл-демонстрацию, но об | создать свою собственную функцию или файл-демонстрацию, но об | ||
этом поговорим в другой раз. | этом поговорим в другой раз. | ||
+ | |||
+ | {{Врезка|center| | ||
+ | |Заголовок=Немного истории | ||
+ | |Содержание=Начало разработке предка SciLab положил сотрудник INRIA | ||
+ | Франсуа Делебескью [Francois Delebecque]. Проект назывался Blaise (позднее Basile) и распространялся на коммерческой | ||
+ | основе. Он содержал не только среду интерпретации команд и | ||
+ | базовые операции с матрицами, но также пакеты имитационного моделирования и оптимизации. Basile успешно продавался | ||
+ | во Франции до конца 80-х. В 1990 группа Meta2 в INRIA инициировала создание свободной версии Basile – так родился SciLab. | ||
+ | В ходе развития свободной версии были переработаны многие | ||
+ | компоненты, дабы избавиться от проблем с лицензиями, а сама | ||
+ | команда разработчиков была преобразована в SciLab team, | ||
+ | которая и выпустила первую версию SciLab в 1994 году. SciLab | ||
+ | team отвечала за разработку и информационное обеспечение | ||
+ | SciLab до 2003 года. Были выпущены две книги (на английском и французском языках), организована группа новостей. | ||
+ | В течение этого периода система была портирована в Windows | ||
+ | (1999, J. Ph. Chancelier), были разработаны TCL/TK интерфейс | ||
+ | (Bertrand Guiheneuf) и многие пакеты расширений, интегрирован редактор файлов-функций. | ||
+ | |||
+ | В 2003 году «шефство» над SciLab приняла команда разработки SciLab [Scilab development team] под покровительством | ||
+ | консорциума SciLab [Scilab Consortium]. С тех пор усилия были | ||
+ | направлены на разработку новых пакетов расширений, нового графического интерфейса, Java-интерфейса приложений и | ||
+ | ядра обработки графики. На официальном сайте вы можете | ||
+ | найти план развития SciLab до 2010 года, то есть до версии | ||
+ | 6.1. | ||
+ | |||
+ | Если у вас появилось желание поучаствовать в этом процессе, то посмотрите на странице http://wiki.scilab.org/How_to_contribute_to_Scilab, чем вы можете быть полезны проекту. | ||
+ | |Ширина=}} | ||
=== Векторы и матрицы === | === Векторы и матрицы === | ||
В Linux существует много продвинутых научных калькуляторов. Так | В Linux существует много продвинутых научных калькуляторов. Так | ||
чем же SciLab лучше? А тем, что он прекрасно работает с матрицами, | чем же SciLab лучше? А тем, что он прекрасно работает с матрицами, | ||
− | векторами и вообще массивами чисел. Для того, чтобы создать | + | векторами и вообще массивами чисел. Для того, чтобы создать строку (математически – вектор-строку) чисел, вам достаточно ввести их, |
− | + | ||
разделяя пробелом или запятой и заключив в квадратные скобки, а | разделяя пробелом или запятой и заключив в квадратные скобки, а | ||
чтобы ввести столбец (вектор-столбец), необходимо разделять числа | чтобы ввести столбец (вектор-столбец), необходимо разделять числа | ||
Строка 212: | Строка 264: | ||
7. 8. 9.</source> | 7. 8. 9.</source> | ||
К любому элементу вектора или матрицы можно обратиться | К любому элементу вектора или матрицы можно обратиться | ||
− | посредством индекса, заключенного в круглые скобки; если это | + | посредством индекса, заключенного в круглые скобки; если это элемент матрицы, то индексы разделяются запятой. Например, изменим |
− | + | ||
главную диагональ введенной матрицы: | главную диагональ введенной матрицы: | ||
<source lang="matlab">-->matr(1,1) = 0;matr(2,2)=0;matr(3,3)=0; | <source lang="matlab">-->matr(1,1) = 0;matr(2,2)=0;matr(3,3)=0; | ||
Строка 223: | Строка 274: | ||
Вы можете обратиться не только к элементу, но и к строке или | Вы можете обратиться не только к элементу, но и к строке или | ||
столбцу, при этом вы должны указать его номер, а на месте второго | столбцу, при этом вы должны указать его номер, а на месте второго | ||
− | индекса поставить : (двоеточие). Давайте поменяем местами | + | индекса поставить : (двоеточие). Давайте поменяем местами первую строку с третьим столбцом. При этом нам придется столкнуться |
− | + | ||
еще с одной операцией – транспонированием. Для ее выполнения | еще с одной операцией – транспонированием. Для ее выполнения | ||
− | необходимо ввести символ одинарной кавычки рядом с переменной- | + | необходимо ввести символ одинарной кавычки рядом с переменной-матрицей: |
− | матрицей: | + | |
<source lang="matlab">-->tr=matr(1,:); tc=matr(:,3); // выделяем 1-ю строку и 3-й столбец | <source lang="matlab">-->tr=matr(1,:); tc=matr(:,3); // выделяем 1-ю строку и 3-й столбец | ||
-->matr(1,:)=tc'; matr(:,3)=tr'; // транспонируем и записываем в | -->matr(1,:)=tc'; matr(:,3)=tr'; // транспонируем и записываем в | ||
Строка 237: | Строка 286: | ||
4. 0. 2. | 4. 0. 2. | ||
7. 8. 3.</source> | 7. 8. 3.</source> | ||
− | Следует помнить и еще об одном правиле: при работе с | + | Следует помнить и еще об одном правиле: при работе с векторами и матрицами действуют матричные правила выполнения арифметических действий. Например, умножение векторов |
− | + | ||
− | + | ||
Vec_x и Vec_y дает разные результаты в зависимости от порядка | Vec_x и Vec_y дает разные результаты в зависимости от порядка | ||
множителей: | множителей: | ||
Строка 252: | Строка 299: | ||
4. 8. 12. 16.</source> | 4. 8. 12. 16.</source> | ||
как и должно быть по правилам матричной алгебры. Для того, чтобы | как и должно быть по правилам матричной алгебры. Для того, чтобы | ||
− | выполнить поэлементное арифметическое действие (то есть | + | выполнить поэлементное арифметическое действие (то есть перемножение не самих векторов, а только их соответствующих элементов: первый на первый, второй на второй и т. д.) используется символ |
− | + | операции с точкой в начале, при этом перемножаемые векторы должны иметь одинаковую размерность: | |
− | + | ||
− | операции с точкой в начале, при этом перемножаемые векторы | + | |
− | + | ||
<source lang="matlab">-->Vec_x .* Vec_y | <source lang="matlab">-->Vec_x .* Vec_y | ||
!--error 9999 | !--error 9999 | ||
Строка 289: | Строка 333: | ||
=== Построение графиков === | === Построение графиков === | ||
− | Вектора и матрицы можно не только вводить вручную, но и | + | Вектора и матрицы можно не только вводить вручную, но и формировать автоматически, используя конструкцию <начальное |
− | + | значение>:<шаг>:<конечное значение>. Например, сформируем вектор из чисел от 1 до 3 с шагом 0.2: | |
− | значение>:<шаг>:<конечное значение>. Например, сформируем | + | |
− | + | ||
<source lang="matlab">-->vec=1:0.2:3 | <source lang="matlab">-->vec=1:0.2:3 | ||
vec = | vec = | ||
Строка 303: | Строка 345: | ||
Сформированный вектор может использоваться как обычная | Сформированный вектор может использоваться как обычная | ||
переменная, то есть участвовать в математических операциях и быть | переменная, то есть участвовать в математических операциях и быть | ||
− | аргументом функций. В последнем случае получится вектор, | + | аргументом функций. В последнем случае получится вектор, каждый элемент которого есть результат действия функции на элемент |
− | + | ||
исходного вектора. | исходного вектора. | ||
<source lang="matlab">-->Y=sin(vec2) | <source lang="matlab">-->Y=sin(vec2) | ||
Y = | Y = | ||
0.8414710 0.9092974 0.1411200</source> | 0.8414710 0.9092974 0.1411200</source> | ||
− | Таким образом можно довольно просто создавать таблицы | + | Таким образом можно довольно просто создавать таблицы функций, а от них два шага и до графика: достаточно просто сгенерировать вектор значений переменной и подать команду plot2d с указанием функции или перечня функций, заключенных в квадратные скобки и разделенных пробелом. При построении важно помнить, что на |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
вход команды plot2d необходимо подавать вектор-столбцы значений | вход команды plot2d необходимо подавать вектор-столбцы значений | ||
− | функций, поэтому автоматически созданный вектор обычно | + | функций, поэтому автоматически созданный вектор обычно необходимо транспонировать. |
− | + | ||
<source lang="matlab">-->x=[0:0.1:2*%pi]'; //создаем вектор и транспонируем его | <source lang="matlab">-->x=[0:0.1:2*%pi]'; //создаем вектор и транспонируем его | ||
-->plot2d(x, [sin(x) cos(x) sin(x).*cos(x)]) //строим графики</source> | -->plot2d(x, [sin(x) cos(x) sin(x).*cos(x)]) //строим графики</source> | ||
− | Если не указывать первый параметр (переменная х), то на | + | Если не указывать первый параметр (переменная х), то на графике по оси х будут отображаться просто порядковые номера значений |
− | + | ||
в массиве. Обратите внимание, что для получения третьей функции | в массиве. Обратите внимание, что для получения третьей функции | ||
мы использовали поэлементное умножение. | мы использовали поэлементное умножение. | ||
+ | [[Изображение:LXF106 85 1.png|thumb|Результат выполнения команды plot3d.]] | ||
Теперь давайте построим трехмерную поверхность. Для начала | Теперь давайте построим трехмерную поверхность. Для начала | ||
− | создадим два вектора с координатами x и y, затем – матрицу | + | создадим два вектора с координатами x и y, затем – матрицу значений функции, причем здесь очень важен порядок множителей |
− | + | ||
(вспомните комментарий выше): первым должен быть столбец (то | (вспомните комментарий выше): первым должен быть столбец (то | ||
есть любая из переменных), а вторым – строка (транспонированная | есть любая из переменных), а вторым – строка (транспонированная | ||
Строка 343: | Строка 378: | ||
и, конечно же, покопайтесь во встроенной справке. До новых | и, конечно же, покопайтесь во встроенной справке. До новых | ||
встреч! | встреч! | ||
+ | {{Врезка|center| | ||
+ | |Заголовок=Источники информации | ||
+ | |Содержание=http://www.scilab.land.ru – прекрасное руководство на русском языке для желающих ознакомиться с основами SciLab. Руководство сделано для Windows-версии 4.0 и является самым свежим в рунете. | ||
+ | |||
+ | http://scilab.psati.ru/rukovodstvo/index.html – еще одно руководство на русском языке, оформленное в виде вопросов и ответов, но создавалось оно перед самым выходом версии 3.0, так что кое-что уже устарело. Описывается Windows-версия. | ||
+ | |||
+ | http://www.wolffdata.se/index.html – множество учебных примеров, демонстрирующих применение SciLab для решения задач | ||
+ | физики, обработки сигналов и др. | ||
+ | |||
+ | http://wiki.scilab.org – официальный Wiki. | ||
+ | |Ширина=}} |
Текущая версия на 07:57, 24 августа 2009
|
|
|
Содержание |
[править] SciLab: Основы
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
- Компьютеры, как известно, придумывали для работы с числами, и для решения этой задачи были созданы самые различные программы. Александр Бикмеев покажет вам одну из них – свободный аналог Matlab.
В научной и инженерной среде хорошо известны так называемые CAS – Computer Algebra System; в русскоязычной литературе их часто называют СКМ – системами компьютерной математики. Одним из ярких представителей данного класса продуктов является Matlab, который с успехом применяется во многих областях науки и техники, более того, существует в виде Linux-версии. Но даже на Западе Matlab по карману не каждому вузу. И вот тут-то на сцене появляется супермен из мира свободного ПО – SciLab (http://www.scilab.org).
SciLab – это система компьютерной математики с открытым кодом. На момент написания статьи стабильной была версия 4.1.2. В установочный комплект включена подробнейшая справка, доступная на английском и французском языках: желающие могут загрузить ее с официального сайта в PDF-формате.
Задачей данной серии статей является обратить ваше внимание на данный продукт, показать некоторые его возможности и, если получится, избавить вас от Matlab-зависимости. Очень бы хотелось, чтобы статьи попали в руки тех преподавателей вузов, которые все еще ведут занятия на пиратском Matlab – быть может, SciLab станет для них более законным решением.
[править] Подготовка к работе и запуск
Установить SciLab можно из RPM/Deb-пакета (http://rpmfind.net поможет в поиске первых), архива с исходными текстами или в виде бинарной сборки. Процедура во всех случаях будет стандартной. Для старта системы необходимо набрать в консоли команду scilab или, что значительно удобнее, создать на рабочем столе или в меню ссылку на приложение.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
После запуска вы увидите главное окно, в котором вводятся команды и выводятся результаты вычислений. В его верхней находится текстовое меню. Пункт меню Control содержит команды управления процессом вычислений: Resume [продолжить], Abort [отменить] и Stop [приостановить]. Пункт Help вызывает справку, а Editor открывает окно редактора файлов-сценариев. Пункт меню Graphic Windows # позволяет открывать и создавать графически окна, а также переключаться между ними. Самым интересным пунктом является Demos, выбор которого приводит к появлению окна со списком коллекции демонстрационных примеров. Погуляйте по ней – здесь есть очень много красивых проектов, особенно в разделе Simulation (рекомендую Demos > Simulation > Bike Simulation). Для знающих английский язык будет очень полезен первый пункт коллекции – Introduction to SCILAB, представляющий собой небольшой учебник.
Система SciLab является кросс-платформенной, но интерфейс ветки 4.х зависит от типа ОС. Так, в Windows он более приятный, имеет панель инструментов, а также поддерживает двунаправленную работу с буфером обмена. Linux-версия SciLab лишена этих возможностей. Как и при работе с графической консолью, вы можете вставить текст из буфера при помощи Shift+Ins, но скопировать что-то из окна SciLab не получится. Впрочем, скоро все изменится (см. Смена версий).
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Продукт поставляется с большим руководством, описывающим все имеющиеся функции. Для того, чтобы вызвать окно справки, необходимо выбрать пункт меню Help > Help browser либо выполнить команду help. При этом, если вы ничего не меняли, откроется внутренний обозреватель справки. Однако, поскольку документация представляет собой набор html-файлов, вы можете изменить настройки и читать ее в любом удобном вам web-браузере. Для выбора приложения просмотра справки следует воспользоваться пунктами меню Help > Configure. Обычно вам предлагаются Firefox, Nautilus, Netscape, Opera и два варианта SciLab Browser – старый (old) и обычный. Наиболее удобен, на мой взгляд, обычный SciLab Browser, потому что только он предоставляет возможность поиска по всем файлам справки.
Вы можете также искать по части слова в описании или названии функции. Для этого следует выбрать пункт Help > Apropos, ввести в появившемся диалоге искомую подстроку и нажать кнопку OK. Откроется окно выбранного вами обозревателя справки с перечнем пунктов, удовлетворяющих условию поиска. Например, если вам необходимо узнать, как считаются интегралы, то для поиска можно ввести слово integral. После нажатия кнопки OK, мы увидим около десяти пунктов справки, содержащих данное слово.
Стандартное справочное описание содержит четыре раздела:
- Calling Sequence [описание вызова] – шаблон вызова данной функции или процедуры
- Parameters [Параметры] – описание всех возможных параметров текущей функции или процедуры
- Description [Описание] – описание смысла самой функции или процедуры с примером использования.
- See Also [Смотри также] – перечень схожих функций или процедур. Каждый предлагаемый вариант представляет собой гиперссылку, позволяющую перейти к его описанию.
Дополнительные пакеты расширений могут иметь свои собственные разделы, так что их полное перечисление здесь не имеет смысла. И пусть справка практически абсолютно не пригодна для изучения пакета – это именно справка – но постоянно обращение к ней поможет быстрее освоить систему.
[править] Простые вычисления
Теперь, я надеюсь, вы сможете ориентироваться в небогатом интерфейсе SciLab, и мы можем перейти непосредственно к работе.
Итак, SciLab – это, преимущественно, система численных вычислений. Средства аналитического счета есть, но, во-первых, их немного, а, во-вторых, их использование неочевидно.
Как и в Matlab, команды набираются пользователем и выполняются системой последовательно. Ввод происходит в строке после системного приглашения, которое имеет вид -->. После набора команды ее уже нельзя исправить, как в текстовом редакторе: необходимо вернуться к ней при помощи клавиш-стрелок (как в терминале), потом внести изменения и нажать Enter, то есть вновь выполнить уже исправленную команду. Благодаря сходству с консолью, строку с приглашением называют «командной строкой SciLab».
После каждой команды в рабочем окне появляется результат. Если это не требуется (например, вы просто определяете значение переменной или функцию), то в конце команды следует поставить символ ; (точка с запятой). Если переменная-приемник не указана, то результат заносится в ans.
Длинные команды можно разбить на несколько строк, добавляя в конце каждой из них две или более точек подряд (..). Возможен также ввод поясняющего текста (комментария). Любой комментарий в SciLab, как и в языке C/C++, начинается с двойного символа //. Однако, следует отметить, что версия 4.1.2 не поддерживает кириллицу.
Самым простым случаем является использование SciLab в качестве калькулятора. Вы вводите какое-то математическое выражение с конкретными числами, нажимаете Enter и получаете результат. Например:
--> 2.3*14 – sin(2.1) + tanh(0.2) ans = 31.534166
Математические выражения строятся при помощи стандартных арифметических операций: «+» – сложение, «-» – вычитание, «*» – умножить, «/» – разделить, «^» – возведение в степень. Кроме того, вы можете использовать элементарные математические функции, только следует помнить, что SciLab разрабатывался за рубежом и использует западную нотацию, то есть, tan вместо tg, log вместо ln и так далее.
По умолчанию результат имеет семь цифр после запятой, но вы можете изменить это при помощи функции форматирования printf, синтаксис которой полностью схож с языком С. Например, для того, чтобы вывести результат предыдущего выражения с 10 знаками после запятой, введите:
--> printf("%1.10f",2.3*14 – sin(2.1) + tanh(0.2)) ans = 31.5341659536
Конечно, использование такой мощной системы в качестве простого калькулятора бессмысленно. А при организации сложных вычислений мы неизбежно приходим к переменным, то есть специальным именованным ячейками памяти для хранения исходных и промежуточных данных, а также результата. Например, пусть нам необходимо найти длину и площадь окружности, а также объем и площадь поверхности шара по известному радиусу. В этом случае мы можем ввести переменную R для хранения значения радиуса:
-->R=2; // Значение радиуса -->l = 2*%pi*R l = 12.566371 -->s = %pi*R^2 s = 12.566371 -->S3D = 4*%pi*R^2 S3D = 50.265482 -->V = 4/3*%pi*R^3 V = 33.510322
Вы могли заметить, что в качестве числа π используется конструкция, начинающаяся с символа процента. Так записываются системные переменные. Рассмотрим наиболее важные из них:
- %i – мнимая единица ( q1);
- %e – число e=2.7182818;
- %inf – машинный символ бесконечности (∞);
- %NaN – неопределенный результат (0/0, ∞/∞, 1∞ и т. п.);
- %eps – условный ноль %eps=2.220Е-16.
Переменные пользователя сохраняют свое значение до конца сеанса, либо до тех пор, пока не будут уничтожены командой clear. Просмотреть список всех активных переменных можно при помощи команды who. Команда whos() выводит более подробный перечень с указанием типа переменных (детали см. в справке).
Во время работы часто бывает необходимо сохранить выполненные действия и результаты в файл для дальнейшего использования. Это особенно актуально в связи с тем, что, как мы знаем, SciLab 4.x не поддерживает буфер обмена и прокрутку. Для записи рабочей сессии существует команда diary. Она принимает путь к файлу, например, diary('/home/username/session1.txt'). В конце, следует подать команду diary(0), которая останавливает запись. Тогда все команды и результаты будут сохранены в /home/username/session1.txt в обычном текстовом формате.
Кроме того, SciLab ведет историю введенных команд (но не результатов). Ее тоже можно записать в файл командой savehistory('путь и имя файла'). Записанная история загружается командой loadhistory('путь и имя файла'), стереть ее можно командой resethistory, ну а вывести на экран – командой gethistory. Запись истории команд в файл полезна в том случае, когда вы пытаетесь создать свою собственную функцию или файл-демонстрацию, но об этом поговорим в другой раз.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
[править] Векторы и матрицы
В Linux существует много продвинутых научных калькуляторов. Так чем же SciLab лучше? А тем, что он прекрасно работает с матрицами, векторами и вообще массивами чисел. Для того, чтобы создать строку (математически – вектор-строку) чисел, вам достаточно ввести их, разделяя пробелом или запятой и заключив в квадратные скобки, а чтобы ввести столбец (вектор-столбец), необходимо разделять числа символом точка с запятой (;):
-->Vec_x=[1 2 3 4] Vec_x = 1. 2. 3. 4. -->Vec_y=[1;2;3;4] Vec_y = 1. 2. 3. 4.
Ввод матрицы происходит по строкам (они разделяются точкой с запятой), между элементами строк ставятся запятые или пробелы.
-->matr=[1 2 3; 4 5 6; 7 8 9] matr = 1. 2. 3. 4. 5. 6. 7. 8. 9.
К любому элементу вектора или матрицы можно обратиться посредством индекса, заключенного в круглые скобки; если это элемент матрицы, то индексы разделяются запятой. Например, изменим главную диагональ введенной матрицы:
-->matr(1,1) = 0;matr(2,2)=0;matr(3,3)=0; -->matr matr = 0. 2. 3. 4. 0. 6. 7. 8. 0.
Вы можете обратиться не только к элементу, но и к строке или столбцу, при этом вы должны указать его номер, а на месте второго индекса поставить : (двоеточие). Давайте поменяем местами первую строку с третьим столбцом. При этом нам придется столкнуться еще с одной операцией – транспонированием. Для ее выполнения необходимо ввести символ одинарной кавычки рядом с переменной-матрицей:
-->tr=matr(1,:); tc=matr(:,3); // выделяем 1-ю строку и 3-й столбец -->matr(1,:)=tc'; matr(:,3)=tr'; // транспонируем и записываем в // 1-ю строку элементы 3-го столбца // в 3-й столбец элементы 1-ой строки -->matr matr = 3. 6. 0. 4. 0. 2. 7. 8. 3.
Следует помнить и еще об одном правиле: при работе с векторами и матрицами действуют матричные правила выполнения арифметических действий. Например, умножение векторов Vec_x и Vec_y дает разные результаты в зависимости от порядка множителей:
-->Vec_x*Vec_y ans = 30. -->Vec_y*Vec_x ans = 1. 2. 3. 4. 2. 4. 6. 8. 3. 6. 9. 12. 4. 8. 12. 16.
как и должно быть по правилам матричной алгебры. Для того, чтобы выполнить поэлементное арифметическое действие (то есть перемножение не самих векторов, а только их соответствующих элементов: первый на первый, второй на второй и т. д.) используется символ операции с точкой в начале, при этом перемножаемые векторы должны иметь одинаковую размерность:
-->Vec_x .* Vec_y !--error 9999 inconsistent element-wise operation -->Vec_x .* Vec_y' ans = 1. 4. 9. 16.
В первом случае мы пытались выполнить поэлементное умножение строки на столбец и потому была выдана ошибка: размерность Vec_x – 1x4, а Vec_y – 4х1. Во втором случае мы транспонировали столбец и оба множителя стали одинаковой размерности – 1х4.
Выполним одно из простых действий – решим систему линейных уравнений методом обратной матрицы. Пусть дана система:
<math> \left\{\begin{array}{lcc} x-2y+z=2 \\ 2x+y-3z=-1 \\ x+3y+z=1 \\ \end{array}\right. </math>
тогда для ее решения нам потребуется подать следующие команды (для сокращения выводится только результат):
-->A=[1 -2 1; 2 1 -3; 1 3 1]; -->b = [2; -1; 1]; -->x = inv(A)*b x = 0.8 - 0.2 0.8
[править] Построение графиков
Вектора и матрицы можно не только вводить вручную, но и формировать автоматически, используя конструкцию <начальное значение>:<шаг>:<конечное значение>. Например, сформируем вектор из чисел от 1 до 3 с шагом 0.2:
-->vec=1:0.2:3 vec = 1. 1.2 1.4 1.6 1.8 2. 2.2 2.4 2.6 2.8 3.
Если шаг не указывается, то он принимается равным единице, скажем:
-->vec2=1:3 vec2 = 1. 2. 3.
Сформированный вектор может использоваться как обычная переменная, то есть участвовать в математических операциях и быть аргументом функций. В последнем случае получится вектор, каждый элемент которого есть результат действия функции на элемент исходного вектора.
-->Y=sin(vec2) Y = 0.8414710 0.9092974 0.1411200
Таким образом можно довольно просто создавать таблицы функций, а от них два шага и до графика: достаточно просто сгенерировать вектор значений переменной и подать команду plot2d с указанием функции или перечня функций, заключенных в квадратные скобки и разделенных пробелом. При построении важно помнить, что на вход команды plot2d необходимо подавать вектор-столбцы значений функций, поэтому автоматически созданный вектор обычно необходимо транспонировать.
-->x=[0:0.1:2*%pi]'; //создаем вектор и транспонируем его -->plot2d(x, [sin(x) cos(x) sin(x).*cos(x)]) //строим графики
Если не указывать первый параметр (переменная х), то на графике по оси х будут отображаться просто порядковые номера значений в массиве. Обратите внимание, что для получения третьей функции мы использовали поэлементное умножение.
Теперь давайте построим трехмерную поверхность. Для начала создадим два вектора с координатами x и y, затем – матрицу значений функции, причем здесь очень важен порядок множителей (вспомните комментарий выше): первым должен быть столбец (то есть любая из переменных), а вторым – строка (транспонированная переменная). После того, как мы получили все, что нужно, подаем команду plot3d:
-->x=[0:0.1:2*%pi]'; -->y=x; -->z=sin(4*x)*cos(y'/2); -->plot3d(x,y,z)
Результат вы можете посмотреть на рисунке.
Хочется заметить, что многие из описываемых команд имеют дополнительные параметры, но мы не можем описать здесь их синтаксис полностью. Так что, если вам нужна дополнительная информация, то пройдитесь по приведенным во врезке ссылкам и, конечно же, покопайтесь во встроенной справке. До новых встреч!
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить