matrix_operation v0.3.0 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.
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
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
Power iteration method (maximum eigen value and eigen vector)
Matrix product
Numbers of row and column of a matrix are got.
Matrix subtraction
Tensor product
Trace of a matrix
Transpose of a matrix
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]]
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]]
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]]) [
L: [[1, 0, 0, 0], [2.0, 1, 0, 0], [3.0, 4.0, 1, 0], [-1.0, -3.0, 0.0, 1]],
U: [[1, 1, 0, 3], [0, -1.0, -1.0, -5.0], [0, 0, 3.0, 13.0], [0, 0, 0, -13.0]]
]
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]
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]]
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]]
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]
]