GitHub - friendly/matlib: Matrix Functions for Teaching and Learning Linear Algebra and Multivariate Statistics (original) (raw)

CRAN_Status_Badge R-universe Downloads downloads pkgdown

matlib

Matrix Functions for Teaching and Learning Linear Algebra and Multivariate Statistics, http://friendly.github.io/matlib/

Version 1.0.1

These functions were originally designed for tutorial purposes in teaching & learning matrix algebra ideas using R. In some cases, functions are provided for concepts or computations available elsewhere in R, but where the name is not obvious, e.g., R() for the rank of a matrix, or tr() for matrix trace.

In other cases, we provide cover functions to show or demonstrate an algorithm in more detail, sometimes providing a verbose = argument to print the details of computations, e.g., Det() for a matrix determinant, Inverse() for a matrix inverse, using gaussianElimination() to show the steps.

In addition, a collection of functions are provided for drawing vector diagrams in 2D and 3D, illustrating various concepts of linear algebra more concretely than has been available before. For example,

Installation πŸ“¦

Get the released version from CRAN:

 install.packages("matlib")

Or the development version from my R-universe:

install.packages('matlib', repos = c('https://friendly.r-universe.dev', 'https://cloud.r-project.org'))

The development version can also be installed to your R library directly from this repo via:

 if (!require(remotes)) install.packages("remotes")
 remotes::install_github("friendly/matlib", build_vignettes = TRUE)

The functions that draw 3D graphs use the rgl package. On macOS, rgl requires that XQuartz be installed. After installing XQuartz, it's necessary either to log out of and back into your macOS account or to reboot your Mac.

Topics πŸͺ

The functions in this package are grouped under the following topics

  1. Convenience functions:
  1. Determinants: functions for calculating determinants by cofactor expansion
  1. Elementary row operations: functions for solving linear equations "manually" by the steps used in row echelon form and Gaussian elimination
  1. Linear equations: functions to illustrate linear equations of the form mathbfAx=b\mathbf{A x = b}mathbfAx=b
  1. Gaussian elimination: functions for illustrating Gaussian elimination for solving systems of linear equations of the form$\mathbf{A x = b}$. These functions provide a verbose=TRUE argument to show the intermediate steps and a fractions=TRUE argument to show results using MASS::fractions().
  1. Eigenvalues: functions to illustrate the algorithms for calculating eigenvalues and eigenvectors and related matrix decompositions and generalizations.
  1. Vector diagrams: functions for drawing vector diagrams in 2D and 3D
  1. Matrix equations in LaTeX

Vignettes and presentations

A small collection of vignettes is now available. Use browseVignettes("matlib") to explore them.

Vignette Title
a1-det-ex1 Properties of determinants
a2-det-ex2 Evaluation of determinants
a3-inv-ex1 Inverse of a matrix
a4-inv-ex2 Matrix inversion by elementary row operations
a5-ginv Generalized inverse
a6-inv-3d Linear transformations and matrix inverse in 3D
a7-eigen-ex1 Eigenvalues and Eigenvectors: Properties
a8-eigen-ex2 Eigenvalues: Spectral Decomposition
a9-linear-equations Solving Linear Equations
aA-gramreg Gram-Schmidt Orthogonalization and Regression
aB-data-beta Vector Spaces of Least Squares and Linear Equations
latex-equations LaTeX Equations with latexMatrix, Eqn and matrix2latex

See also: