Octave что это за программа
Моделирование динамических систем: введение в GNU Octave
Жили-были умные, но очень жадные люди, которые написали замечательную программу Matlab. Умные они были потому, что программа вышла хорошей, а жадными, потому что очень любили деньги. Так любили, что брали их за свой Matlab не только с дядек серьезных, матлабом деньги зарабатывающих, а и с бедных студентов тоже, которым порой и сухую корочку хлеба купить не за что было. И кончилась бы сказочка скоро и невесело, если бы мир был не без добрых и умных людей, написавших похожие на матлаб программы, хоть худо-бедно работающие, да для всех желающих бесплатные. И с открытыми исходными текстами. Так что сами бедные студенты стали те программы дописывать, и работать они лучше и лучше стали с каждым годом. И стали тогда все жить-поживать, да добра наживать.
Введение
Большинство научных работников не ломают голову над тем, как устроены численные методы внутри. Они просто используют их, применяя в своей работе специализированные пакеты численных расчетов. Это совершенно не означает, что не нужно разбираться с тем, как эти методы устроены. Программу пишет человек, а ему свойственно ошибаться. И ошибки сквозят даже в самых дорогих и навороченных системах численной математики сплошь и рядом. К тому же есть задачи, где применение стандартных систем невозможно.
Вместе с тем, умение использовать универсальный математический софт это must have для современного ученого, потому что изобретая велосипед можно никогда не добраться до решения своей основной задачи. Сегодня мы рассмотрим обещанный Octave, попытавшись решить с его помощью очередную детскую задачу, сделав при этом недетские выводы.
1. Что такое Octave и где его взять
GNU Octave — свободный математический пакет численной математики, основанный на концепциях своего проприетарного собрата Matlab. Он доступен для всех популярных на сегодняшний день десктопных платформ, и получить его можно, зайдя в раздел загрузки на официальном сайте.
Большую часть экрана занимает так называемое командное окно, с приглашием командной строки вида «>>». Введем туда что нибудь и нажмем Enter
шикарно, переменная ans содержит результат последней операции, если вы явно не завели переменную под результат, например так
переменные вводятся «на ходу», как это принято в интерпретируемых языках. Да собственно m-язык октава и есть язык интерпретатора, очень напоминающий аналогичный язык матлаба. Один раз заведенная переменная сохраняет свое значение и тип до следующего присваивания, либо до полной очистки памяти командной оболочки
С левой стороны окна есть область, в которой расположены (сверху вниз): файловый менеджер, список глобальных переменных с их значениями, а также история введенных команд
Стоит обратить внимание на то, что для переменных указана размерность (Dimention) 1х1. Основным типом данных в Octave, как и в Matlab является матрица. Так вот наши числа это на самом деле матрицы размером 1 на 1 элемент.
видно, что переменная x стала недоступна, до тех пока мы явно не присвоили ей значение снова.
Скажу честно, что с Ocatve я никогда не работал и разбираюсь вместе с читателем. Поэтому, предположим, что мы уже знаем достаточно, чтобы решить какую нибудь задачу. Например ту, которую решали в прошлый раз. Но сначала…
2. Нормальная форма Коши
и получаем вместо одного уравнения 2-го порядка два уравнения 1-го порядка, которые нужно решать вместе, одновременно
Это уже не одно уравнение, а система дифференциальных уравнений, содержащая две неизвестные зависимости и
.
Как решать систему уравнений численно? Да так же, как и одно уравнение. Соберем все наши переменные в вектор-столбец (или массив, или матрицу-столбец, кому как удобно выражаться это не важно)
и правые части тоже соберем в вектор-столбец
Тогда рекуррентная формула метода Эйлера будет справедлива для каждого элемента этих столбцов
где n — число уравнений, в нашем случае их два.
К чему я всё это? А к тому, что Octave требует представлять дифференциальные уравнения именно в нормальной форме Коши.
С точки зрения механики вектор-столбец y называется вектором состояния системы или вектором фазовых координат. Тогда наша система уравнений превращается в одно векторное уравнение
Теперь возьмем, и в командном окне Octave наберем
Таким образом мы определяем функцию, которая на вход принимает текущее значение фазовых координат y и текущее время t, а на выходе возвращает значение производных от фазовых координат. Видим, что приглашение командной строки «>>» пропало, система ждет что мы закончим ввод тела функции ключевым словом endfunction. Продолжим набирать функцию
Итак, в теле функции мы определили g = 10 — принятое нами значение ускорения свободного падения. Мы видим, что же не появилось в списке переменных слева — эта переменная является локальной, и существует лишь в пределах функции. Переменная y это матрица-столбец, первый элемент y(1) которой это координата z, второй y(2) — проекция вектора скорости vz. Соответственно, dydt — это то значение, которое возвращает наша функция, это тоже матрица-столбец первый элемент которой это производная от z по времени, а второй — производная от vz по времени. То есть мы записали нашу систему дифференциальных уравнений в терминах Octave.
Теперь определимся с диапазоном времени, для которого нам надо получить результат. Пусть это будет десять точек от 0 до 1 секунды, с шагом 0.1 — сравним результат с ручным примером
Тут всё очевидно: t0 — начальный момент времени, tend — конечный момент времени. А вот deltaT = 0.1 секунда — это не шаг интегрирования! Это интервал, с которым Ocatve будет отображать для нас численное решение уравнения. Последняя команда формирует массив моментов времени для которых мы хотим получить решение.
Как вы знаете из прошлой статьи, для решения уравнения численно необходимо знать начальные значения скорости и координаты. Необходимо задать их для Octave
тем самым мы определили матрицу-столбец, содержащую начальную координату и начальное значение вертикальной проекции скорости. А теперь решаем уравнение
Функция lsode решит для нас уравнение численно. Первый параметр — имя функции, которая вычисляет производные от фазовых координат. Это функция F, мы её задали. Второй параметр — начальные условия, то есть значения фазовых координат в момент времени t = t0. Последний параметр — массив моментов времени, для которых мы хотим рассчитать значения фазовых координат. Жмем Enter…
В ответ вываливается гора требухи, оканчивающаяся предложением
нам предлагают листать требуху дальше (f), вернуться назад (b), или выйти (q). Те, кто знает *nix-подобные системы, знают, что это консольный вывод под управлением юниксовой утилиты less. Мы притворимся что не знаем, выйдем отсюда, нажав на клавиатуре q.
Наберем теперь в командной строке «y» и нажмем Enter
Ничего не напоминает? Ну конечно же это то самое решение, что мы получили для задачи из прошлой статьи. Только оно теперь удивительно точное — значения совпадают с аналитическим решением! Открою вам тайну — это точное решение нашей задачи. Связано это с тем, что функция lsode использует для решения задачи отнюдь не метод Эйлера, а нечто более продвинутое. Движение камня происходит с постоянным ускорением, и та формула численной аппроксимации, что применяется в данном методе, очевидно просто совпадает с аналитическим решением задачи. Хотя, если лезть в дебри представления машиной чисел с плавающей запятой, то… А ну да ладно, сейчас не об этом.
3. Строим график
Наберите теперь команду
Выскочит окошко с графическим представлением решения
Синяя кривая сверху — координата камня. Оранжевая снизу — вертикальная проекция скорости. Введенная команда неудобна тем, что строит график для всех функций сразу. А если мы хотим, построить, зависимость скорости от высоты? Тогда поступим так
Будет построен график, где по оси абсцисс пойдет переменная y(1), а по оси ординат — y(2), что есть соответственно высота и вертикальная проекция скорости
Такой график в механике называют фазовым портретом системы, то есть траекторией движения системы в пространстве фазовых координат. В данном случае фазовые координаты это высота камня над поверхностью Земли и его скорость. В механике часто нельзя получить точного решения в виде функций времени, но можно связать между собой координаты и скорости исходя из энергетических соображений. По полученным зависимостям можно найти фазовую траекторию системы и сделать много выводов о характере её движения не решая задачу до конца. Об этом мы тоже как-нибудь поговорим.
А пока предлагаю выполнить самостоятельное задание — постройте график зависимости высоты от времени и скорости от времени в отдельных окнах. И старайтесь не смотреть под спойлер
Заключение
На этом первое знакомство с Octave, как средой для численного моделирования будем считать оконченным. Теперь у нас есть мощный инструмент, с помощью которого мы будем постигать более изощренные премудрости.
Высшая математика командной строки — GNU Octave
Как я и обещал, перехожу от обзора программ замены калькулятора к более серьезным инструментам. Если помните схему из предыдущего поста, то во второй категории находились табличные: OpenOffice / LibreOffice сотоварищи. Эту партию мы можем смело пропустить, так как к командной строке она не относится, к тому же, среди читателей Хабра трудно найти человека, который бы в них не разбирался. Поэтому перехожу сразу к третьей категории.
Специализированные математические программы, уровень студент+
Но сначала немного исторического контекста, чтобы понять, как закалялись математические программы с открытыми исходниками.
Догнать и перегнать MATLAB
Так сложилось, что коммерческие программы прибежали и первыми застолбили поляну математических вычислений. Уже с конца 1970-х гг. создатель языка программирования Клив Моулер распространяет MATLAB в университетах США, а в 1984-м вместе с двумя компаньонами переписывают его с Фортрана на Си и создают компанию The MathWorks. Примечательно, что ранние версии распространялись с открытым исходным кодом.
С большим опозданием в игру включаются программы с открытыми исходниками. Только в 1990-х появляются математические пакеты GNU Octave, Scilab и вступают в конкуренцию с лидером вычислительного программирования.
Основной миссией Octave была, и в обозримом будущем скорее всего так и останется, быть годной заменой MATLAB так же, как OpenOffice/LibreOffice замещает MS Office для тех, кто умеет считать копейку. Собственно, для этого Octave имеет совместимый с MATLAB синтаксис и набор функций. Более того, несовместимость с MATLAB считается багом, однако софтверная Фемида уже имеет подобный прецедент, и это не считается нарушением копирайта. В этой связи, можно считать Octave программным клоном. Правда о полной совместимости пока говорить не приходится, но работа в этом направлении не прекращается.
Установка
Установка Octave в Linux ничем не отличается от установки других программ. На Gentoo Linux запускаем:
Для SUSE и Arch тоже все очень просто, а вот пользователям Красной Шапки и CentOS придется чуток повозиться. Попытка установить Octave легким движением кисти завершается ошибкой, пакет в репозитариях не найден.
Благо, есть обходной путь. Нужно сперва установить пакет epel-release.
И только после этого yum install octave сработает.
Наконец, все готово и программа установлена.
Операции с матрицами
Сперва простое транспонирование матрицы:
Попробуем решить систему линейных уравнений:
Вбиваем матрицу A, вектор b и решаем уравнение Ax = b в матричном виде
Находим детерминант и собственные значения матрицы.
Комплексные числа тоже поддерживаются в вычислениях.
Функции и переменные
В Octave переменные и функции создавать гораздо проще, чем, к примеру, в Java или C. На примере матриц, мы уже видели как объявлять переменные. Создания новой функции имеет следующий синтаксис
Напишем функцию для решения квадратичного уравнения ax² + bx + c = 0
Графический интерфейс
Что-же дальше?
Может возникнуть вопрос: а зачем вообще нужны открытые математические пакеты? Офисные приложения нужны всем, но ведь далеко не каждому необходимо сидя дома решать уравнения Пуассона, с помощью преобразования Лапласа. Для ВУЗ-ов MATLAB стоит значительно дешевле, нежели для физических лиц и коммерческих организаций. Коммерческие организации, если будет нужно, найдут денежные средства, а обычные люди пусть занимаются математикой в университетах или считают столбиком.
Конечно же, это ошибочное мнение. Научные расчеты, выполненные с использованием открытого ПО имеют дополнительный «уровень защиты», ведь при желании любой может повторить прогнать те же самые расчеты и проверить валидность результатов. Те же самые вычисления, выполненные на дорогущем ПО, частично отсекают возможность проверки результатов. Проблема на самом деле гораздо шире (английский текст) и дело не только в открытых или проприетарных математических программах. Не секрет, что научные журналы как правило не требуют от авторов предоставить данные и методику, достаточные для гарантированного повтора результатов эксперимента, проверки модели. Особенно часто этим грешат экономисты и финансисты, попросту засекречивая свои данные. Проверка расчетов и выводов среди выборки из массива статей с «засекреченными» данными дала неожиданные результаты (английский текст). Наука, как и софт, должна быть открытой, вот почему открытые математические пакеты имеют ценность для всего общества.
Рекомендуется к прочтению
Кроме последней книги, остальные материалы, использованные в статье, можно без труда найти в интернете. Половина из приведенных выше ссылок ведут на английские страницы. Буду рад вкратце сообщить о чем идет там речь или помочь с переводом.
СОДЕРЖАНИЕ
История
Проект был задуман примерно в 1988 году. Сначала он задумывался как дополнение к курсу проектирования химических реакторов. Настоящая разработка была начата Джоном У. Итоном в 1992 году. Первый альфа-релиз датируется 4 января 1993 года, а 17 февраля 1994 года была выпущена версия 1.0. Версия 4.0.0 была выпущена 29 мая 2015 года.
История развития
Разработки
Помимо использования на настольных компьютерах для персональных научных вычислений, Octave используется в академических кругах и промышленности. Например, Octave использовался на большом параллельном компьютере в Питтсбургском суперкомпьютерном центре для поиска уязвимостей, связанных с угадыванием номеров социального страхования.
Ускорение с помощью OpenCL или CUDA также возможно с использованием графических процессоров.
Технические подробности
Октава, язык
Его синтаксис очень похож на MATLAB, и тщательное программирование скрипта позволит ему работать как в Octave, так и в MATLAB.
Примечательные особенности
Завершение имени команды и переменной
Пишем символ табуляции в командной строке заставляет Octave пытаться полной переменной, функции и имена файлов ( по аналогии с Bash «s автодополнению ). Octave использует текст перед курсором как начальную часть имени для завершения.
История команд
При работе в интерактивном режиме Octave сохраняет набранные команды во внутреннем буфере, чтобы их можно было вызывать и редактировать.
Структуры данных
Octave включает ограниченный объем поддержки для организации данных в структурах. В этом примере мы видим структуру «x» с элементами «a», «b» и «c» (целое число, массив и строка соответственно):
Булевы операторы короткого замыкания
Операторы увеличения и уменьшения
Расслабься-защити
GNU Octave также поддерживает другую форму обработки исключений (совместимую с языком MATLAB):
Списки аргументов переменной длины
Octave имеет механизм обработки функций, которые принимают неопределенное количество аргументов без явного верхнего предела. Чтобы указать список из нуля или более аргументов, используйте специальный аргумент varargin в качестве последнего (или единственного) аргумента в списке.
Списки возврата переменной длины
Интеграция с C ++
Также возможно выполнить код Octave непосредственно в программе на C ++. Например, вот фрагмент кода для вызова rand([10,1]) :
Совместимость с MATLAB
Octave был построен с учетом совместимости с MATLAB и имеет много общих функций с MATLAB:
Совместимость синтаксиса
Есть несколько целенаправленных, хотя и незначительных, синтаксических дополнений :
Совместимость функций
Когда вызывается нереализованная функция, отображается следующее сообщение об ошибке:
Пользовательские интерфейсы
Также было разработано несколько сторонних графических интерфейсов, например ToolboX для обучения программированию.
Приложения с графическим интерфейсом
Кнопка, элемент управления, флажок
Список с окнами сообщений.
Пакеты
Программирование на Octave/Основы Octave
Заметка:
Если у вас возникли проблемы с запуском Octave, сайты NCLab и Verbosus позволяют вам работать с Octave в облаке. Обе системы бесплатны для использования.
Содержание
Запуск Octave [ править ]
Чтобы запустить Octave введите octave в окне терминала. Вы должны будете увидеть, что-то похожее на текст ниже, разница зависит от версии, которую вы установили:
Ввод команд [ править ]
Также доступно много математических функций, имеющих предсказуемые имена (во многом схожие с аналогичными в других языках программирования).
Также определены различные константы: pi, e, мнимая единица (i или j), inf (бесконечность), NaN (Неопределенность. Результат неопределенных операций, например inf/inf).
Вот несколько примеров операций и соответствующих им команд Octave.
Несколько вещей, на которые стоит обратить внимание:
Построение графиков [ править ]
Сейчас вы научитесь строить следующие графики с помощью Octave.
Figure 1 | Figure 2 |
Figure 3 | Figure 4 |
Форма 1 (Figure 1) содержащая в себе плоскость была сгенерирована с помощью команд, написанных ниже. Пока что это простой пример, предназначенный проиллюстрировать базовые возможности построения графиков. Мы рассмотрим более сложные примеры позже.
Задание [ править ]
Немного о командах [ править ]
Следующие команды и функции очень полезны для задания переменных при построении 2D графиков.
Функция бывает полезна, когда вы хотите построить несколько графиков на разных окнах, а не заменять ваш предыдущий график или строить график на той же оси.
Пример [ править ]
Сейчас мы построим графики, изображенные на рисунках 3 и 4. На рисунке 3 изображены три тригонометрические функции
Затем посчитаем Y-значения для всех трёх функций
Следующие команды построят график всех трёх функций
На строке 5 ( figure ) мы сообщаем Octave, что хотим построить новый график в новом окне. Считается хорошей практикой вызывать figure перед построением нового графика. Такой подход помогает избежать случайно замены предыдущего важного графика.
Форма, которую вы видите, отображает все три построенные функции одинаковым цветом. Чтобы заставить Octave задать различные цвета автоматически, постройте все функции за один шаг:
Ну, и наконец-то, построим второй график (рисунок 4):
Строка 11 создает новое окно, а строка 12 сообщает Octave, что все последующие построения графиков будут просто замещать предыдущие. На строке 13 мы строим график суммы всех функций.
Небольшая заметка для пользователей Mac:
Если команды для построения графиков не работают, выполните следующую команду:
Упражнения [ править ]
Предупреждение [ править ]
В случае sin(x) * cos(x) :
Неочевидные проблемы [ править ]
Чтобы получить такой же график, как на рисунке выше, введите следующее:
Скрипты [ править ]
Обратите внимание, что команда chdir(‘
/octave’) ; необходима, если вы не находились внутри этой папки во время запуска Octave.
В следующих уроках вы узнаете несколько новых выражений, которые вы сможете использовать, чтобы сделать ваш Octave-код намного круче. Количество предоставляемых скриптов будет расти и вам следует сохранять их для дальнейшего использования. Хорошей идеей будет создать папку octave в вашей домашней папке и сохранять все ваши Octave файлы в неё.
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
GNU Octave
Разработчики: | John W. Eaton |
---|---|
Выпущена: | 1988 |
Написана на: | C++ |
Операционная система: | Linux, UNIX, Cygwin, Windows, Android [1] |
Тип ПО: | математическое программное обеспечение |
Лицензия: | GNU General Public License |
Веб-сайт | http://www.gnu.org/software/octave/ |
Octave представляет интерактивный командный интерфейс для решения линейных и нелинейных математических задач, а также проведения других численных экспериментов. Кроме того, Octave можно использовать для пакетной обработки. Язык Octave оперирует арифметикой вещественных и комплексных скаляров и матриц, имеет расширения для решения линейных алгебраических задач, нахождения корней систем нелинейных алгебраических уравнений, работы с полиномами, решения различных дифференциальных уравнений, интегрирования систем дифференциальных и дифференциально-алгебраических уравнений первого порядка, интегрирования функций на конечных и бесконечных интервалах. Этот список можно легко расширить, используя язык Octave (или используя динамически загружаемые модули, созданные на языках Си (язык программирования), С++, Фортран и др.)
Содержание
Технические детали
Язык Octave
Octave — интерпретируемый язык программирования. Он похож на Си и поддерживает большинство основных функций стандартной библиотеки Си, а также основные команды и системные вызовы Unix. С другой стороны, он не поддерживает передачу аргументов по ссылке (особенность дизайна).
Синтаксис языка очень похож на MATLAB, и грамотно написанные скрипты будут запускаться как в Octave, так и в MATLAB.
Некоторые возможности
Интерфейс командной строки Octave построен с использованием библиотеки GNU Readline, что дает доступ к таким обычным возможностям последней, как автодополнение по клавише TAB, история команд и инкрементальный поиск по ней CtrlR, клавишаCtrlS, возможность переопределения клавиш, и т. д. Графический интерфейс до версии 3.8.0 был представлен дополнениями (графики он мог выводить и без них).
Выражения Octave можно вычислять из программ на C++. К примеру, фрагмент кода для вычисления rand([9000,1]) :
Если в конце 1990-х гг. (2-я серия выпусков) отмечалось, что производительность Octave существенно уступает производительности MATLAB, то к концу 2000-х гг. (3-я серия выпусков) производительности этих пакетов «почти сравнялись», а остающуюся разницу приписывают наличию в составе MATLAB интерпретатора-компилятора (Just in Time — JIT), которого нет в Octave.
Основными решениями по организации распределенных вычислений в среде Octave являются библиотеки bcMPI, MPI Toolbox for Octave (MPITB), octave-parallel_mpi и parallel (ранее octave-parallel), предназначенные для кластерных систем, и модуль parcellfun библиотеки general для обеспечения параллельных вычислений в масштабе «одной машины» (на многоядерных и массивно-параллельных системах).
Первые три библиотеки обеспечивают интерфейс к наличной инсталляции библиотеки MPI и, насколько возможно, транслируют в Octave (bcMPI — и в MATLAB) синтаксис подмножества вызовов MPI. Соответственно в этих случаях вычисления распределены лишь настолько, насколько это подготовлено программистом, и обеспечиваются в пределах возможностей системной инсталляции MPI.
Библиотека parallel, напротив, не требует наличия среды типа MPI или PVM, а обеспечивает распределенность с помощью внутренних средств пакета Octave.
Совместимость с MATLAB
Octave был написан с учётом совместимости с MATLAB и реализует многие его возможности:
Запуск Octave
На большинстве систем Octave можно запустить, набрав в командной строке команду «octave»:
Octave отобразит начальное сообщение, затем приглашение командной строки сообщит о готовности программы к вводу. Сразу после этого вы можете приступить к вводу команд. Приглашание выглядит следующим образом:
Если у вас возникли проблемы, вы можете просто прервать Octave нажав «Ctrl-C» (далее для краткости пишется «C-c»).
Чтобы выйти из Octave, наберите «quit» или «exit» в командной строке:
В системах, которые поддерживают контроль над заданиями, можно приостановить Octave, послав ему сигнал SIGTSTP, обычно для этого нужно нажать «C-z».
Простейшие примеры
Следующие главы описывают все возможности Octave в подробностях, но прежде чем начать их изучение, может оказаться полезным рассмотрение нескольких примеров с демонстрацией некоторых возможностей Octave.
Если вы новичок в Octave, я бы рекомендовал вам начать обучение с рассмотрения этих примеров. Строки, содержащие пометки типа «octave:13>» — строки ввода, которые должны заканчиваться нажатием клавиши «Enter». После нажатия этой клавиши Octave либо выдаст ответ либо построит график.
Создание матрицы
Чтобы создать новую матрицу и сохранит её в переменной, введите команду:
Octave выведет на экран матрицу с аккуратно выровненными колонками. Если команду закончить «;», то Octave не будет выводить результат команды. Например, команда:
создаст матрицу с 3-мя строками и 2-мя столбцами, элементы которой примут случайные значения в промежутке между нулём и единицей.
Чтобы отобразить значение любой переменной, просто напишите имя переменной. Например, чтобы отобразить значения, хранящиеся в матрице B, наберите команду:
Арифметические операции с матрицами
Octave использует удобную форму записи операторов для представления арифметических операций над матрицами. Например, чтобы умножить матрицу A на число, наберите команду:
Чтобы перемножить две матрицы A и B, наберите команду:
Для того, чтобы выполнить матричное произведение матрицы A на транспонированную матрицу A (A * transpose(A)), наберите команду:
Решение линейных уравнений
Для решения системы линейных уравнений A ∗ X = b <\displaystyle
Если матрица коэффициентов вырождена, программа выведет сообщение о предупреждении и вычислит решение минимальной нормы.
Интегрирование дифференциальных уравнений
\frac
Задаём начальные условия:
Задаём вектор аргументов t <\displaystyle
t> (первый элемент вектора аргументов соответствует начальным условиям, записанным выше):
Теперь вводим простую команду для интегрирования дифференциальных уравнений:
Графический вывод
Чтобы вывести на экран графическое представление решения предыдущего примера, воспользуйтесь командой:
Если вы пользуетесь графическим интерфейсом, Octave автоматически создаст отдельное окно для графика.
Чтобы сохранить график, построенный на экране, воспользуйтесь командой «print». Например:
создаст файл с именем foo.eps в формате EPS, содержащий построенный график. Команда:
выдаст дополнительную информацию о параметрах команды «print», а также о файлах различных форматов, в которых можно сохранять полученные графики.
Редактирование в командной строке
Используя командную строку Octave, вы можете вызвать, исправить и повторить предыдущие команды с помощью Emacs-подобных или vi-подобных команд редактирования. По умолчанию используются клавиатурные привязки к командам в стиле Emacs. Например, чтобы вызвать предыдущую команду, нажмите «C-p». Нажатие «C-n» позволит перемещаться по истории введённых команд в прямом направлении. Нажатие клавиш «C-f» и «C-b» перемещает курсор ввода командной строки вправо и влево соответственно, и т. д.
Полное описание возможностей команд редактирования даётся в разделе «Редактирование командной строки».
Справка и документация
Octave имеет обширную справочную информацию, доступ к которой можно получить из командной строки Octave.
Для получения справочной информации, вы должны знать имя команды, о которой требуется получить справку. Имя функции может быть не всегда очевидным, хороший способ — набрать для начала команду «help». Она покажет все операторы, зарезервированные слова, функции, встроенные переменные и функции файлов. Другой способ — выполнить поиск с помощью функции «lookfor». Эта функция описывается в разделе «Получение помощи».
После того, как вам станет известно имя функции, о которой вы хотите получить справку, введите его в качестве аргумента команды «help». Например:
отобразит справку для функции «plot».
Для вывода на экран информации, которая не может полностью на нём поместиться, Octave использует пейджеры на подобие less и more. Нажатие «Enter» выводит следующую строку, «Пробел» — следующую страницу. Клавиша «q» закрывает пейджер.
Соглашения
Этот раздел объясняет типографические соглашения, используемые в этом руководстве. Возможно вы захотите пропустить этот раздел и вернуться к нему позже.
Шрифты
метасинтаксические переменные
Запись вычислений
В примерах, рассмотренных в данном руководстве, результаты выражений, которые вы вычисляете отмечаются символами „=>“. Например:
Эту запись можно интерпретировать как: «Корень из двух равен 1.4142».
В некоторых случаях, матричные значения, возвращаемые выражениями, отображаются следующим образом:
А в других случаях, чтобы наглядно показать результат, так:
Sometimes to help describe one expression, another expression is shown that produces identical results. The exact equivalence of expressions is indicated with `==’. For example:
Форматированный вывод
Большинство приведенных здесь примеров отображают результат своей работы на дисплее сразу после их выполнения. Выводимое на дисплей значение отображено после знака `-|’. Значение возвращенное в результате выполнения выражения, приведенного ниже, приведено после знака `=>’.
Сообщения об ошибках
Примеры сообщений об ошибках. Как правило сообщение об ошибке отображаются в терминале. Сообщения об ошибках выводятся на следующую строку, обозначается обычно красным цветом:
- ocs inventory ng agent for windows для чего
- Octopus palpus что за программа