Системы компьютерной математики



Система компьютерной алгебры (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 — свободно распространяемое программное обеспечение.