Finding the QR decomposition of A, it exists because the columns of A are linearly independent.with( LinearAlgebra ):
with( VectorCalculus ):A := Matrix( [[1,1,0,1],[-1,0,1,1],[1,1,1,1]]);Q is constructed from the orthnormalized columns of A using Gram Schmidt.orthonormCols := GramSchmidt( [Column( A, 1..4 )], normalized ):
Q := Matrix( orthonormCols );R = Q^T * AR := Transpose( Q ) . A;Since A = Q * R, we should be able to regenerate the original matrix.Q . R;Just for demonstration purposes, here's how to accomplish the decomposition using a native maple call.(mQ,mR) := QRDecomposition(A, fullspan);
mQ . mR;TTdSMApJNFJUQUJMRV9TQVZFLzIyODM3MjRYLCUpYW55dGhpbmdHNiI2IltnbCEiJSEhISMtIiQiJSIiIiEiIkYnRiciIiFGJ0YpRidGJ0YnRidGCidGJgo=TTdSMApJNFJUQUJMRV9TQVZFLzI3NDA2ODhYLCUpYW55dGhpbmdHNiI2IltnbCEiJSEhISMqIiQiJCwkKiQiIiQjIiIiIiIjI0YrRiksJEYoIyEiCiJGKUYnLCQqJCIiJ0YqI0YrRjMsJEYyRi1GMSwkKiRGLEYqI0YwRiwiIiEsJEY3RipGJgo=TTdSMApJNFJUQUJMRV9TQVZFLzI4NzMyNDhYLCUpYW55dGhpbmdHNiI2IltnbCEiJSEhISMtIiQiJSokIiIkIyIiIiIiIyIiIUYsLCRGJyNGK0YoCiwkKiQiIidGKSNGKkYoRixGLCwkRjBGKSwkKiRGK0YpRiksJEYnRjIsJEYwRi5GLEYmCg==TTdSMApJNFJUQUJMRV9TQVZFLzI5MTAzNDBYLCUpYW55dGhpbmdHNiI2IltnbCEiJSEhISMtIiQiJSIiIiEiIkYnRiciIiFGJ0YpRidGJ0YnRidGCidGJgo=TTdSMApJNFJUQUJMRV9TQVZFLzMwMzI0MjhYLCUpYW55dGhpbmdHNiI2IltnbCEiJSEhISMqIiQiJCwkKiQiIiQjIiIiIiIjI0YrRiksJEYoIyEiCiJGKUYnLCQqJCIiJ0YqI0YrRjMsJEYyRi1GMSwkKiRGLEYqI0YwRiwiIiEsJEY3RipGJgo=TTdSMApJNFJUQUJMRV9TQVZFLzI5NjU0NDBYLCUpYW55dGhpbmdHNiI2IltnbCEiJSEhISMtIiQiJSokIiIkIyIiIiIiIyIiIUYsLCRGJyNGK0YoCiwkKiQiIidGKSNGKkYoRixGLCwkRjBGKSwkKiRGK0YpRiksJEYnRjIsJEYwRi5GLEYmCg==TTdSMApJNFJUQUJMRV9TQVZFLzMwNjc2OTZYLCUpYW55dGhpbmdHNiI2IltnbCEiJSEhISMtIiQiJSIiIiEiIkYnRiciIiFGJ0YpRidGJ0YnRidGCidGJgo=