matrix_operation v0.2.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.

A column of a matrix is deleted.

A row of a matrix is deleted.

A determinant of a n×n square matrix is got.

eigenvalue [R^2/R^3 matrix]

A m×n matrix having even-elements is got.

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

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

Matrix addition

Examples

iex> MatrixOperation.add([[3, 2, 3], [2, 1, 2]], [[2, 3, 1], [3, 2, 2]])
[[5, 5, 4], [5, 3, 4]]
Link to this function

atan_sub(x, z, s)

Link to this function

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]
Link to this function

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]]
Link to this function

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
Link to this function

cubic_formula(a, b, c, d)

Link to this function

cubic_formula_sub(x)

Link to this function

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]]
Link to this function

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]]

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
Link to this function

eigenvalue(arg1)

eigenvalue [R^2/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([[1, 2, 3], [2, 1, 3], [3, 2, 1]]) [5.999999995559568, -2.000000031083018, -0.99999996447655]

Link to this function

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]]

Link to this function

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]]
Link to this function

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]]
Link to this function

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]
Link to this function

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

Link to this function

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]

Link to this function

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]]
Link to this function

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]]
Link to this function

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]]
Link to this function

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]]
Link to this function

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]]

Link to this function

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]
Link to this function

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]
Link to this function

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]]

]

Link to this function

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]]

Matrix product

Examples

iex> MatrixOperation.product([[3, 2, 3], [2, 1, 2]], [[2, 3], [2, 1], [3, 5]])
[[19, 26], [12, 17]]
Link to this function

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]

Matrix subtraction

Examples

iex> MatrixOperation.subtract([[3, 2, 3], [2, 1, 2]], [[2, 3, 1], [3, 2, 2]])
[[1, -1, 2], [-1, -1, 0]]
Link to this function

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 of a matrix

Examples

iex> MatrixOperation.trace([[1.0, 2.0], [3.0, 4.0]])
5.0

Transpose of a matrix

Examples

iex> MatrixOperation.transpose([[1.0, 2.0], [3.0, 4.0]])
[[1.0, 3.0], [2.0, 4.0]]

A n-th unit matrix is got.

Examples

iex> MatrixOperation.unit_matrix(3) [[1, 0, 0], [0, 1, 0], [0, 0, 1]]

Link to this function

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]

]