基本矩阵运算
本例展示了在 Engee 中处理矩阵的基本方法和函数。
基本矩阵操作
首先,让我们定义一个包含 9 个元素的向量。
In [ ]:
Pkg.add(["LinearAlgebra"])
In [ ]:
a = [1 2 3 4 6 4 3 9 10]
Out[0]:
将每个元素的值增加 2,并将结果存储到一个新的向量中。在 Julia 中,可以通过运算符.+
来实现。
In [ ]:
b = a .+ 2
Out[0]:
让我们绘制得到的向量字符串 b。为了实现可视化,有必要连接 Plots.jl 库。并将列向量输入函数plot()
的输入端。为此,使用运算符'
对 b 进行转置。
In [ ]:
c = b'
Out[0]:
In [ ]:
using Plots
plot(c)
Out[0]:
我们还可以制作另一种图表。例如,让我们以图表的形式显示向量 c 的值。为此,首先调用函数plotlyjs()
。
In [ ]:
plotlyjs()
bar(c, xlabel="месяц",ylabel="количество")
Out[0]:
要创建矩形矩阵,必须通过;
指定行。
In [ ]:
A = [1 2 0; 2 5 -1; 4 10 -1]
Out[0]:
将矩阵平移,并将结果写入另一个变量,例如 B。将矩阵 A 与结果矩阵 B 相乘。
In [ ]:
B = A'
Out[0]:
In [ ]:
C = A * B
Out[0]:
但我们也可以将矩阵 A 的每个元素与矩阵 B 的每个元素相乘,就像前面处理向量那样。也就是说,矩阵的乘法规则不是 "行对列",而是元素对元素。
In [ ]:
D = A .* B
Out[0]:
让我们求解一个如下形式的简单方程
设 为列向量。
In [ ]:
b = [1,3,5]
Out[0]:
In [ ]:
#Решение уравнения
x = A\b
Out[0]:
In [ ]:
#Покажем, что Ax=b
r = A*x - b
Out[0]:
线性代数部分的矩阵运算
通过LinearAlgebra
库,您可以处理各种矩阵特征和矩阵计算。例如,让我们找出矩阵 A 的特征值。为此,我们应用函数eigvals()
。
In [ ]:
using LinearAlgebra
eigvals(A)
Out[0]:
将给定矩阵作为输入值传递给函数det()
,即可求出矩阵的行列式。
In [ ]:
M = [1 0; 2 2]
det(M)
Out[0]:
还可以使用函数svd()
对矩阵 A 进行奇异分解。
In [ ]:
svd(A)
Out[0]:
更多线性代数中的矩阵运算可参阅 Linear Algebra。