Системы компьютерной математики
Система компьютерной алгебры (computer algebra system, CAS) — программное приложение для символьных вычислений,
т.е. для выполнения преобразований и работы с математическими выражениями в аналитической (символьной) форме.
GNU Octave
GNU Octave — это свободно распространяемый язык программирования высокого уровня, ориентированный на проведение численных расчетов, и по сути являющийся альтернативой коммерческому пакету MatLab.
Простейшие операции
Простейшие арифметические операции в Octave выполняются с помощью следующих операторов:
- + сложение
- — вычитание
- * умножение
- / деление
- ^ возведение в степень
Рассмотрим пример
Решить систему линейных алгебраических уравнений:
Для решения СЛАУ в окне интерпретатора Octave последовательно введём следующие команды:
Элементарные математические функции
Экспоненциальные функции
Примеры применения экспоненциальных функций:
Целочисленные функции
Примеры работы с целочисленными функциями:
Комплексные числа
Ввод комплексного числа производится в формате:
действительная часть + i * мнимая часть
или
действительная часть + j * мнимая часть
Примеры записи комплексных чисел в Octave
Функции работы с комплексными числами
Примеры использования функций
Основные операторы в Octave
Условный оператор
Обычный условный оператор имеет вид:
Обычный оператор if работает по следующему алгоритму:
если условие истинно, то выполняются операторы1, если ложно — операторы2.
Рассмотрим работу условного оператора на примере.
Пример:даны вещественные числа x и y. Определить принадлежит ли точка с координатами (x;y) заштрихованной части плоскости.
Текст программы и результат её работы
Оператор альтернативного выбора
Оператор switch
Оператор switch работает следующим образом: если значение параметра равно значение1, то выполняются опреаторы1, иначе если параметр равен значение2, то выполняются операторы2. В противном случае, если значение параметра совпадает с значение3, то выполняются операторы3 и т.д. Если значение параметра не совпадает ни с одним из значений в группах case, то выполняются операторы, идущие после служебного слова otherwise.
Рассмотрим использование оператора switch на примере:
Вывести на экран название дня недели, соответствующее заданному числу D, при условии, что в месяце 31 день и первое число — понедельник.
Матрично-векторные вычисления
Создание матриц
Любую матрицу или вектор с заданными элементами в Octave можно создать путем перечисления
этих элементов в квадратных скобках ([ ]), разделяя столбцы пробелом или запятой, строки
знаком ”точка с запятой”
octave:1>A=[1 3 5; 2 4 6]
После нажатия клавиши на экране появится результат выполнения команды
Функция rand позволяет генерировать случайные числа из нтервала (0,1).
Если функция вызывается без аргументов, то будет создано случайное число.
octave:5> r=rand
r = 0.67452
Если функция имеет один аргумент rand(m), то будет создана квадратная матрица размерности mхm.
octave:6> A=rand(3)
Если передать два аргумента rand(m,n), то будет создана матрица размерности $ m \times n $
octave:7> B=rand(2,4)
В теории линейной алгебры выделяют специальные виды матриц.
Создать такие матрицы в Octave позволяют следующие функции:
- ones(m),ones(m,n)
- Функция генерирует матрицу с элементами 1 (количество аргументов трактуется аналогично eye).octave:18> = ones(2)
- zeros(m), zeros(m,n)
- Функция генерирует нулевую матрицу (количество аргументов трактуется аналогично eye).octave:29> Z = zeros(2)
- diag(v, k)
- Функция генерирует диагональную матрицу с элементами вектора v на диагонали k. Аргумент k выступает в качестве опции:k=0 означает главную диагональ, при k > 0 элементы вектора v ставятся на k-ую диагональ выше, а при k < 0 на k-ую диагональ ниже главнойдиагонали. По умолчанию k=0. Размер матрицы определяется в соответствии с аргументами v и k.octave:36> D = diag([1 2 3])
Возможности СКМ Octave
GNU Octave — высокоуровневый язык программирования, предназначенный прежде всего для численных расчётов. Он предоставляет удобный интерфейс командной строки для численного решения линейных и нелинейных задач, а также для выполнения других численных экспериментов. Кроме того, GNU Octave — свободно распространяемое программное обеспечение.