Основные матричные операции
Этот пример показывает основные методы и функции для работы с матрицами в Engee.
Базовые операции с матрицами
Во-первых зададим вектор из 9 элементов.
Pkg.add(["LinearAlgebra"])
a = [1 2 3 4 6 4 3 9 10]
Увеличим значение каждого элемента на 2 и сохраним результат в новом векторе. На языке Julia это делается с помощью оператора .+
.
b = a .+ 2
Построим график результирующего вектора-строки b. Для визуализации необходимо подключить библиотеку Plots.jl. И на вход функции plot()
подать вектор-столбец. Для этого транспонируем b с помощью оператора '
.
c = b'
using Plots
plot(c)
Также можем сделать другой тип графика. Например, отобразим значения вектора с в виде диаграммы. Для этого нужно сначала вызвать функцию plotlyjs()
.
plotlyjs()
bar(c, xlabel="месяц",ylabel="количество")
Чтобы создать прямоугольную матрицу, необходимо указать строки через ;
.
A = [1 2 0; 2 5 -1; 4 10 -1]
Транспонируем матрицу и результат запишем в другую переменную, например B. Перемножим матрицу A с получившейся матрицей B.
B = A'
C = A * B
Но также мы можем умножить каждый элемент матрицы А на каждый элемент матрицы В, как мы это делали с векторами ранее. То есть перемножение матриц будет происходить не по правилу "строка на столбец", а поэлементно.
D = A .* B
Давайте решим простое уравнение следующего вида
зададим в виде вектора-столбца.
b = [1,3,5]
#Решение уравнения
x = A\b
#Покажем, что Ax=b
r = A*x - b
Матричные операции из раздела линейной алгебры
Библиотека LinearAlgebra
позволяет работать различными характеристиками матриц и матричными вычислениями. Например, найдем собственные значения матрицы А. Для этого применим функцию eigvals()
.
using LinearAlgebra
eigvals(A)
Найдем определитель заданной матрицы, передав ее в качестве входного значения в функцию det()
.
M = [1 0; 2 2]
det(M)
Также можно выполнить сингулярную декомпозицию матрицы А, с помощью функции svd()
.
svd(A)
Больше операций с матрицами из линейной алгебры можно найти в разделе Линейная алгебра.