A collection of matrix functions for teaching and learning matrix linear algebra as used in multivariate statistical methods. These functions are mainly for tutorial purposes in learning matrix algebra ideas using R. In some cases, functions are provided for concepts available elsewhere in R, but where the function call or name is not obvious. In other cases, functions are provided to show or demonstrate an algorithm. In addition, a collection of functions are provided for drawing vector diagrams in 2D and 3D.
showEqn()
gains a reduced
logical to print only the unique regression equations
when a lm()
-type object is passed. May be combined with the simplify
logical argument
for further reductionsechelon()
gains a reduced
logical to indicate whether the reduced or non-reduced form is computedpowerMethod()
gains a plot = TRUE
logical to draw the iteration history'lm'
objects to showEqn()
to show the design matrix equationsverbose
option to GramSchmidt()
and another exampleprintMatEqn()
to print matrix expressions side-by-siderename functions for consistency: eig()
-> Eigen()
, point_on_line()
-> pointOnLine()
, power_method()
-> powerMethod()
, row_cofactors()
-> rowCofactors()
, row_minors()
-> rowMinors()
.
add Det()
to compute determinants by elimination, from eigenvalues, or by minors and cofactors, with possibility of verbose
output.
plotEqn3d()
gets an axes
argument and lit
to control lighting of the planes; lit
solves a problem with the planes becoming indistinguishable in some rotations.
add svdDemo()
function to illustrate the SVD of a 3 x 3 matrix [thx: Duncan Murdoch]
add symMat()
to create a square symmetric matrix from a vector.
add angle()
to calculate angle between vectors
powerMethod()
gets a keep
argument, for possible use in plotting the convergence of eigenvectors.
add adjoint()
, to round out methods for determinants
add GramSchmidt()
for the Gram-Schmidt algorithm on columns of a matrix. The existing function gsorth()
will be deprecated and then removed.
gsorth()
has been deprecated.
fixed use of MASS::fractions in gaussianElimination
added printMatEqn()
to print matrix expressions side-by-side
det-ex1
)det-ex2
)inv-ex1
)inv-ex2
)ginv
)J()
for unit vectors, matricesLU()
for LU decompositionvectors3d()
and arrows3d()
, which defaults to TRUE. If FALSE, just returns
returns the "reg.length" to help in scaling.showEqn()
and gaussianElimination()
get latex
arguments, to print results in LaTeX format [thx: Phil Chalmers]error.sphere
to plot.regvec3d()
[JF]lengths()
in corner()
to avoid R version dependencycorner()
in vectors3d.Rdarc()
for 2D, 3D vector diagrams to show angles between vectorsregvec3d()
for 2D, 3D vector diagrams representing a bivariate multiple regression model, lm(y ~ x1 + x2)
[thx: John Fox].arrows()
to produce nice arrows in 2D vector()
diagramsshowEqn()
now aligns terms vertically and prints without quotesabsolute
in points_on_line()
and clarified documentationvandermode()
functionvec()
convenience function to vectorize a matrixis_square_matrix()
testspower_method()
, power method for dominant eigenvector [thx: Gaston Sanchez]arrows3d()
for 3D geometric diagramsvectors3d()
for 3D geometric diagramscorner()
for 2D, 3D geometric diagramsman/matlib.Rd
from README.md
swp()
functionvignette("gramreg")
- Gram-Schmidt Orthogonalization and Regressionlen()
convenience function for Euclidean lengthsplotEqn3d()
function using rgl
to plot equations in 3 unknownsmatlib.R
to become a package .Rd documentproj()
-> Proj()
to avoid conflict with stats::proj()
vectors()
for plotting geometric diagramsInitial CRAN release