using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Science.Mathematics.LinearAlgebra { public class ColumnSpace : VectorSpace { private Matrix AA; public ColumnSpace(Matrix A) { AA = A; Nullspace N = new Nullspace(A); this.Dimension = A.Rank; Vector[] n = new Vector[this.Dimension]; int cc = 0; for (int i = 0; i < A.SizeOfColumn; i++) { if (N.PivotColumnQ[i]) { n[cc] = new Vector(A.SizeOfRow); for (int j = 0; j < A.SizeOfRow; j++) { n[cc][j] = A[j,i]; } cc++; } } this.Basis = n; } public Vector LinearCombination(double[] x) { Vector xx = new Vector(x); Vector Ax = AA * xx; return Ax; } } }