GNU Octave — это использующая совместимый с MATLAB язык высокого уровня свободная программная система, предназначенная для математических вычислений.
Общие сведения о программной системе GNU Octave
Расчетные операции могут иметь разную сложность, например, определить результат произведения шесть на, подсчитать общую сумму стоимости товаров в чеке, найти решение системы линейных уравнений для домашнего задания ученика или, к примеру, выполнить расчет деградации волнового фронта при прохождении многослойной турбулентной атмосферы.
Если расчет первых двух примеров можно осуществить на обычном калькуляторе, то линейные уравнения уже можно решить только на специальном инженерном калькуляторе. А последний пример может быть решен только при помощи системы численных расчетов, используемой для научных исследований, такой как, к примеру, GNU Octave.
GNU Octave является открытым программным обеспечением для математических расчетов, которое известно тем, что способно поддерживать совместимость с коммерческим MATLAB на достаточно высоком уровне. То есть, практически это программное обеспечение является клоном MATLAB, так как даже незначительная несовместимость может рассматриваться проектировщиками как ошибка.
Изначально Octave разрабатывался как сопутствующее программное обеспечение для учебного курса для студентов, изучающих проектирование химических реакторов. Позднее главный специалист J.W. Eaton модифицировал полностью законченный продукт и теперь он стал активно использоваться как для производственных целей, так и для академических. Наиболее часто Octave применяют для матричных вычислений и это обладает определенным смыслом, поскольку большинство инженерных проблем и отображение данных наиболее часто предполагают векторный и матричный подход.
Математические вычисления в GNU Octave
Существует довольно много языков программирования, например, Cи, Python, Java, позволяющих решать описанные выше задачи, но, когда работа доходит до этапа формирования концепции, главным аспектом становится оперативность реализации, то есть период времени, который необходим для того, чтобы реализовать алгоритм. И MATLAB, и Octave как раз были спроектированы для решения задач подобного типа, осуществления вычислений и выдачи итоговых результатов на экран монитора.
Octave имеет обширный инструментальный набор, предназначенный для решения общих задач численной линейной алгебры, определения корней нелинейных уравнений, интегрирования обычных функций, манипулирования полиномами и интегрирования обыкновенных дифференциальных и дифференциально-алгебраических уравнений. Octave может быть легко расширен пользовательскими функциями, которые могут быть написаны на собственном языке данной программы или, при помощи динамически загружаемых модулей, сформированные на C/C++, Fortran и иных языках.
Возможны следующие варианты применения данного языка программирования:
- Изучение и проектирование концептов на производстве, а также и в академических направлениях.
- Возможность получить аналогичный по функциональному набору MATLAB программный продукт, но который является бесплатным.
- Возможность разработки и тестирования математических алгоритмов.
В качестве практического использования программы Octave можно привести следующие реальные примеры:
- NASA применяет Octave при проектировании систем стыковки космических аппаратов.
- Jaguar использует Octave для анализа данных, получаемых от их болидов Formula 1.
- Шеффилдский Университет применяет Octave при проектировании программного обеспечения, предназначенного для распознавания раковых клеток.
Как следует из приведенных выше примеров, сфер применения этой программы может быть очень много, и она естественно предоставляет возможность написания программ в оперативном режиме, а также возможность визуализации данных во многих сферах и направлениях.
Программа Octave способна поддерживать следующий набор арифметических операций:
- Операцию сложения (+).
- Операцию вычитания (-).
- Операцию умножения (*).
- Операцию деления (/).
- Операцию возведение в степень (^).
- Операции с натуральными логарифмами/показателями (log, exp),
- Операции с тригонометрическими функциями (sin, cos, м другими).
Помимо этого, Octave способна работать как с вещественными числами, так и с комплексными (i, j). Также являются предопределенными определенные математические константы, к примеру, число π (pi) и основание натурального логарифма e.
Векторы и матрицы являются базовыми строительными блоками численного анализа. Для того чтобы создать матрицу и сохранить ее в переменной для дальнейшего применения следует использовать следующую команду:
$>>$ A = [ 1, 1, 2; 3, 5, 8; 13, 21, 34 ]
В результате будет выдан такой ответ:
A =
1 1 2
3 5 8
13 21 34
Если выполнить ввод команды, установив в конце символ точка с запятой, то Octave не станет осуществлять вывод матрицы на экран. К примеру, можно создать матрицу на три строки и два столбца, заполненную случайными числами:
$>>$ B = rand (3, 2);
А далее для того, чтобы вывести данную матрицу на дисплей, следует просто задать в командном окне имя переменной, в которой она была сохранена:
$>>$ B
Приведем примеры выполнения некоторых арифметических операций. Рассмотрим умножение матрицы на скалярную величину:
$>> 2 * A$
Далее рассмотрим перемножение двух матриц:
$>> A * B$
Пример умножения транспонированной матрицы на саму себя:
$>> A' * A$
Далее рассмотрим решение системы линейных уравнений на примере следующего уравнения:
$X_1 + 3X_2 + 5X_3 = 22$
$3X_1 + X_2 + 3X_3 = 14$
$4X_1 + X_2 + 3X_3 = 15$
Сформируем матрицы коэффициентов и свободных членов для данной системы уравнений:
Рисунок 1. Матрицы. Автор24 — интернет-биржа студенческих работ
А затем наберем обе эти сформированные матрицы в Octave и решим систему методом наименьших квадратов при помощи специального оператора левого деления :
$>>$ A = [1 3 5; 3 1 3; 4 1 3];
$>>$ B = [22; 14; 15];
$>>$ A\B
ans =
1.0000
2.0000
3.0000
Последние три цифры выше являются ответом, то есть, решением.