matrix_operation v0.3.2 MatrixOperation
Documentation for Matrix operation library.
Link to this section Summary
Functions
Matrix addition
A matrix is added by a constant.
A matrix is multiplied by a constant.
Cramer's rule
A column of a matrix is deleted.
A row of a matrix is deleted.
A determinant of a n×n square matrix is got.
Matrix diagonalization [R^2×R^2/R^3×R^3 matrix]
eigenvalue [R^2×R^2/R^3×R^3 matrix]
A m×n matrix having even-elements is got.
A row of a matrix is exchanged.
A row of a matrix is exchanged.
Frobenius norm
A column of a matrix is got.
A element of a matrix is got.
A row of a matrix is got.
Hadamard division
Hadamard power
Hadamard product
Inverse Matrix
Singular Value Decomposition (SVD)
Jordan_normal_form [R^2×R^2/R^3×R^3 matrix]
Leading principal minors are generetaed
Linear equations are solved by Cramer's rule.
Linear equations are solved by LU decomposition.
LU decomposition
max norm
one norm
Power iteration method (maximum eigen value and eigen vector)
Matrix product
Numbers of row and column of a matrix are got.
Singular value [R^2×R^n(R^n×R^2)/R^3×R^n(R^n×R^3) matrix]
Matrix subtraction
Singular Value Decomposition (SVD)
Tensor product
Trace of a matrix
Transpose of a matrix
two norm
A n-th unit matrix is got.
A variance-covariance matrix is generated
Link to this section Functions
add(a, b)
Matrix addition
Examples
iex> MatrixOperation.add([[3, 2, 3], [2, 1, 2]], [[2, 3, 1], [3, 2, 2]])
[[5, 5, 4], [5, 3, 4]]
atan(x)
atan_sub(x, z, s)
const_addition(const, a)
A matrix is added by a constant.
Examples
iex> MatrixOperation.const_addition(1, [1.0, 2.0, 3.0])
[2.0, 3.0, 4.0]
const_multiple(const, a)
A matrix is multiplied by a constant.
Examples
iex> MatrixOperation.const_multiple(-1, [1.0, 2.0, 3.0])
[-1.0, -2.0, -3.0]
iex> MatrixOperation.const_multiple(2, [[1, 2, 3], [2, 2, 2], [3, 8, 9]])
[[2, 4, 6], [4, 4, 4], [6, 16, 18]]
cramer(a, vertical_vec, select_index)
Cramer's rule
Examples
iex> MatrixOperation.cramer([[1, 0, 0], [0, 1, 0], [0, 0, 1]], [[1], [0], [0]], 1)
1.0
iex> MatrixOperation.cramer([[0, -2, 1], [-1, 1, -4], [3, 3, 1]], [[3], [-7], [4]], 1)
2.0
csqrt(list, n)
cubic_formula(a, b, c, d)
cubic_formula_sub(x)
delete_one_column(matrix, delete_index)
A column of a matrix is deleted.
Examples
iex> MatrixOperation.delete_one_column([[1, 2, 3], [4, 5, 6], [7, 8, 9]], 2)
[[1, 3], [4, 6], [7, 9]]
delete_one_row(matrix, delete_index)
A row of a matrix is deleted.
Examples
iex> MatrixOperation.delete_one_row([[1, 2, 3], [4, 5, 6], [7, 8, 9]], 3)
[[1, 2, 3], [4, 5, 6]]
determinant(a)
A determinant of a n×n square matrix is got.
Examples
iex> MatrixOperation.determinant([[1, 2, 1], [2, 1, 0], [1, 1, 2]])
-5
iex> MatrixOperation.determinant([[1, 2, 1, 1], [2, 1, 0, 1], [1, 1, 2, 1], [1, 2, 3, 4]])
-13
iex> MatrixOperation.determinant([ [3,1,1,2,1], [5,1,3,4,1], [2,0,1,0,1], [1,3,2,1,1], [1,1,1,1,1] ])
-14
diagonalization(a)
Matrix diagonalization [R^2×R^2/R^3×R^3 matrix]
Examples
iex> MatrixOperation.diagonalization([[1, 3], [4, 2]]) [[5.0, 0], [0, -2.0]] iex> MatrixOperation.diagonalization([[2, 1, -1], [1, 1, 0], [-1, 0, 1]]) [[3.0000000027003626, 0, 0], [0, 0, 0], [0, 0, 0.9999999918989121]]
eigenvalue(arg1)
eigenvalue [R^2×R^2/R^3×R^3 matrix]
Examples
iex> MatrixOperation.eigenvalue([[3, 1], [2, 2]]) [4.0, 1.0] iex> MatrixOperation.eigenvalue([[6, -3], [4, -1]]) [3.0, 2.0] iex> MatrixOperation.eigenvalue([[1, 1, 1], [1, 2, 1], [1, 2, 3]]) [4.561552806429505, 0.43844714673139706, 1.0000000468390973] iex> MatrixOperation.eigenvalue([[2, 1, -1], [1, 1, 0], [-1, 0, 1]]) [3.0000000027003626, 0, 0.9999999918989121]
even_matrix(m, n, s)
A m×n matrix having even-elements is got.
Examples
iex> MatrixOperation.even_matrix(2, 3, 0) [[0, 0, 0], [0, 0, 0]] iex> MatrixOperation.even_matrix(3, 2, 1) [[1, 1], [1, 1], [1, 1]]
exchange_one_column(matrix, exchange_index, exchange_list)
A row of a matrix is exchanged.
Examples
iex> MatrixOperation.exchange_one_column([[1, 2, 3], [4, 5, 6], [7, 8, 9]], 2, [1, 1, 1])
[[1, 1, 3], [4, 1, 6], [7, 1, 9]]
exchange_one_row(matrix, exchange_index, exchange_list)
A row of a matrix is exchanged.
Examples
iex> MatrixOperation.exchange_one_row([[1, 2, 3], [4, 5, 6], [7, 8, 9]], 3, [1, 1, 1])
[[1, 2, 3], [4, 5, 6], [1, 1, 1]]
frobenius_norm(a)
Frobenius norm
Examples
iex> MatrixOperation.frobenius_norm([[2, 3], [1, 4], [2, 1]]) 5.916079783099616 iex> MatrixOperation.frobenius_norm([[1, 3, 3], [2, 4, 1], [2, 3, 2]]) 7.54983443527075
get_one_column(matrix, column_index)
A column of a matrix is got.
Examples
iex> MatrixOperation.get_one_column([[1, 2, 3], [4, 5, 6], [7, 8, 9] ], 1)
[1, 4, 7]
get_one_element(matrix, list)
A element of a matrix is got.
Examples
iex> MatrixOperation.get_one_element([[1, 2, 3], [4, 5, 6], [7, 8, 9] ], [1, 1]) 1
get_one_row(matrix, row_index)
A row of a matrix is got.
Examples
iex> MatrixOperation.get_one_row([[1, 2, 3], [4, 5, 6], [7, 8, 9] ], 1) [1, 2, 3]
hadamard_division(a, b)
Hadamard division
Examples
iex> MatrixOperation.hadamard_division([[3, 2, 3], [2, 1, 2]], [[2, 3, 1], [3, 2, 2]])
[[1.5, 0.6666666666666666, 3.0], [0.6666666666666666, 0.5, 1.0]]
hadamard_power(a, n)
Hadamard power
Examples
iex> MatrixOperation.hadamard_power([[3, 2, 3], [2, 1, 2]], 2)
[[9.0, 4.0, 9.0], [4.0, 1.0, 4.0]]
hadamard_product(a, b)
Hadamard product
Examples
iex> MatrixOperation.hadamard_product([[3, 2, 3], [2, 1, 2]], [[2, 3, 1], [3, 2, 2]])
[[6, 6, 3], [6, 2, 4]]
inverse_matrix(a)
Inverse Matrix
Examples
iex> MatrixOperation.inverse_matrix([[1, 1, -1], [-2, -1, 1], [-1, -2, 1]])
[[-1.0, -1.0, 0.0], [-1.0, 0.0, -1.0], [-3.0, -1.0, -1.0]]
jacobi(a, loop_num)
Singular Value Decomposition (SVD)
Examples
iex> MatrixOperation.jacobi([[10, 3, 2], [3, 5, 1], [2, 1, 0]], 100) [
[11.827601654846498, 3.5956497715829547, -0.4232514264294592],
[
[0.8892852869407288, -0.4276185412198255, -0.16221609548924776],
[0.4179455612966035, 0.903858138554591, -0.0914438251665857],
[0.18572341323379965, 0.013522151221627799, 0.982509015329186]
]
]
jordan_normal_form(arg1)
Jordan_normal_form [R^2×R^2/R^3×R^3 matrix]
Examples
iex> MatrixOperation.jordan_normal_form([[1, 3], [4, 2]]) [[5.0, 0], [0, -2.0]] iex> MatrixOperation.jordan_normal_form([[7, 2], [-2, 3]]) [[5.0, 1], [0, 5.0]] iex> MatrixOperation.jordan_normal_form([[2, 1, -1], [1, 1, 0], [-1, 0, 1]]) [[3.0000000027003626, 0, 0], [0, 0, 0], [0, 0, 0.9999999918989121]] iex> MatrixOperation.jordan_normal_form([[1, -1, 1], [0, 2, -2], [1, 1, 3]]) [[2.0, 1, 0], [0, 2.0, 1], [0, 0, 2.0]] iex> MatrixOperation.jordan_normal_form([[3, 0, 1], [-1, 2, -1], [-1, 0, 1]]) [[2.0, 1, 0], [0, 2.0, 0], [0, 0, 2.0]] iex> MatrixOperation.jordan_normal_form([[1, 0, -1], [0, 2, 0], [0, 1, 1]]) [[2.0, 0, 0], [0, 0.9999999999999999, 1], [0, 0, 0.9999999999999999]] iex> MatrixOperation.jordan_normal_form([[6, 2, 3], [-3, 0, -2], [-4, -2, -1]]) [[1.0, 0, 0], [0, 2.0, 1], [0, 0, 2.0]]
leading_principal_minor(a, k)
Leading principal minors are generetaed
Examples
iex> MatrixOperation.leading_principal_minor([[1, 3, 2], [2, 5, 1], [3, 4, 5]], 2) [[1, 3], [2, 5]]
linear_equations_cramer(a, vertical_vec)
Linear equations are solved by Cramer's rule.
Examples
iex> MatrixOperation.linear_equations_cramer([[1, 0, 0], [0, 1, 0], [0, 0, 1]], [[1], [0], [0]])
[1.0, 0.0, 0.0]
iex> MatrixOperation.linear_equations_cramer([[1, 0, 0], [0, 1, 0], [0, 0, 1]], [[1], [0], [0]])
[1.0, 0.0, 0.0]
linear_equations_direct(a, vertical_vec)
Linear equations are solved by LU decomposition.
Examples
iex> MatrixOperation.linear_equations_direct([[1, 0, 0], [0, 1, 0], [0, 0, 1]], [[1], [0], [0]])
[1.0, 0.0, 0.0]
iex> MatrixOperation.linear_equations_direct([[4, 1, 1], [1, 3, 1], [2, 1, 5]], [[9], [10], [19]])
[1.0, 2.0, 3.0]
lu_decomposition(a)
LU decomposition
Examples
iex> MatrixOperation.lu_decomposition([[1, 1, 0, 3], [2, 1, -1, 1], [3, -1, -1, 2], [-1, 2, 3, -1]]) [
[[1, 0, 0, 0], [2.0, 1, 0, 0], [3.0, 4.0, 1, 0], [-1.0, -3.0, 0.0, 1]],
[[1, 1, 0, 3], [0, -1.0, -1.0, -5.0], [0, 0, 3.0, 13.0], [0, 0, 0, -13.0]]
]
max_norm(a)
max norm
Examples
iex> MatrixOperation.max_norm([[2, 3], [1, 4], [2, 1]]) 8 iex> MatrixOperation.max_norm([[1, 3, 3], [2, 4, 1], [2, 3, 2]]) 10
one_norm(a)
one norm
Examples
iex> MatrixOperation.one_norm([[2, 3], [1, 4], [2, 1]]) 5 iex> MatrixOperation.one_norm([[1, 3, 3], [2, 4, 1], [2, 3, 2]]) 7
power_iteration(a, max_k)
Power iteration method (maximum eigen value and eigen vector)
Examples
iex> MatrixOperation.power_iteration([[3, 1], [2, 2]], 100) [
4.0,
[2.8284271247461903, 2.8284271247461903]
] iex> MatrixOperation.power_iteration([[1, 1, 2], [0, 2, -1], [0, 0, 3]], 100) [
3.0,
[1.0, -2.0, 2.0]
]
product(a, b)
Matrix product
Examples
iex> MatrixOperation.product([[3, 2, 3], [2, 1, 2]], [[2, 3], [2, 1], [3, 5]])
[[19, 26], [12, 17]]
row_column_matrix(a)
Numbers of row and column of a matrix are got.
Examples
iex> MatrixOperation.row_column_matrix([[3, 2, 3], [2, 1, 2]]) [2, 3]
singular_value(a)
Singular value [R^2×R^n(R^n×R^2)/R^3×R^n(R^n×R^3) matrix]
Examples
iex> MatrixOperation.singular_value([[1, 0, 0], [0, 1, 1]]) [1.4142135623730951, 1.0] iex> MatrixOperation.singular_value([[0, 1], [1, 0], [1, 0]]) [1.4142135623730951, 1.0] iex> MatrixOperation.singular_value([[2, 2, 2, 2], [1, -1, 1, -1], [-1, 1, -1, 1]]) [4.0, 0.0, 2.8284271247461903]
singular_value_sub(a, a_t)
subtract(a, b)
Matrix subtraction
Examples
iex> MatrixOperation.subtract([[3, 2, 3], [2, 1, 2]], [[2, 3, 1], [3, 2, 2]])
[[1, -1, 2], [-1, -1, 0]]
svd(a, loop_num)
Singular Value Decomposition (SVD)
Examples
iex> MatrixOperation.svd([[1, 0, 0], [0, 1, 1]], 100) [
[1.0, 1.4142135623730951],
[[1.0, 0], [0, 1.0]],
[
[1.0, 0, 0],
[0, 0.7071067458364744, -0.707106816536619],
[0, 0.707106816536619, 0.7071067458364744]
]
]
svd_sub(a, a_t, loop_num)
tensor_product(a, b)
Tensor product
Examples
iex> MatrixOperation.tensor_product([[3, 2, 3], [2, 1, 2]], [[2, 3, 1], [2, 1, 2], [3, 5, 3]])
[
[
[[6, 9, 3], [6, 3, 6], [9, 15, 9]],
[[4, 6, 2], [4, 2, 4], [6, 10, 6]],
[[6, 9, 3], [6, 3, 6], [9, 15, 9]]
],
[
[[4, 6, 2], [4, 2, 4], [6, 10, 6]],
[[2, 3, 1], [2, 1, 2], [3, 5, 3]],
[[4, 6, 2], [4, 2, 4], [6, 10, 6]]
]
]
trace(a)
Trace of a matrix
Examples
iex> MatrixOperation.trace([[1.0, 2.0], [3.0, 4.0]])
5.0
transpose(a)
Transpose of a matrix
Examples
iex> MatrixOperation.transpose([[1.0, 2.0], [3.0, 4.0]])
[[1.0, 3.0], [2.0, 4.0]]
two_norm(a)
two norm
Examples
iex> MatrixOperation.two_norm([[2, 3], [1, 4], [2, 1]]) 5.674983803488142 iex> MatrixOperation.two_norm([[1, 3, 3], [2, 4, 1], [2, 3, 2]]) 7.329546645915766
unit_matrix(n)
A n-th unit matrix is got.
Examples
iex> MatrixOperation.unit_matrix(3) [[1, 0, 0], [0, 1, 0], [0, 0, 1]]
variance_covariance_matrix(data)
A variance-covariance matrix is generated
Examples
iex> MatrixOperation.variance_covariance_matrix([[40, 80], [80, 90], [90, 100]]) [
[466.66666666666663, 166.66666666666666],
[166.66666666666666, 66.66666666666666]
]