ConstantLinearDependence(R, F)¶

ConstantLinearDependence(R, F) supports solving linear systems with coefficients in Expression(R) over constants. The parameter ld to each function is a list of derivations to use. By definition element f from Expression(R) is a constant if for each d in ld we have d(f) = 0. We assume that inputs are normalized in such a way that field of constants is generated by constant kernels.

constant_subspace: (List Vector F, List(F -> F)) -> Record(transform: Matrix F, basis: List Vector F)

constant_subspace(b, ld) returns [M, nb] such that nb is basis of subspace spanned by b over F consistng of vectors with constant coordinates. M is the transformation matrix, i.e. mnb = M mb where mb (mnb respectively) is matrix having b (nb respectively) as rows.

linearDependenceOverConstants: (Vector F, List(F -> F)) -> Union(Vector F, failed)

linearlyDependenceOverConstants([v1, ..., vn], ld) returns [c1, ..., cn] if c1*v1 + ... + cn*vn = 0 and not all the ci's are 0, “failed” if the vi's are linearly independent over constants.

linearlyDependentOverConstants?: (Vector F, List(F -> F)) -> Boolean

linearlyDependentOverConstants?([v1, ..., vn], ld) returns true if the vi's are linearly dependent over constants, false otherwise.

nullSpaceOverConstants: (Matrix F, List(F -> F)) -> List Vector F

nullSpaceOverConstants(A, ld) returns basis of the homogeneous system A*vc = 0 where vc is a vector of constants.

particularSolutionOverConstants: (Matrix F, Vector F, List(F -> F)) -> Union(Vector F, failed)

solveLinearlyOverConstants([v1, ..., vn], u, ld) returns [c1, ..., cn] such that c1*v1 + ... + cn*vn = u, “failed” if no such rational numbers ci's exist.

particularSolutionOverConstants: (Vector F, F, List(F -> F)) -> Union(Vector F, failed)

particularSolutionOverConstants([v1, ..., vn], u, ld) returns [c1, ..., cn] such that c1*v1 + ... + cn*vn = u, “failed” if no such constants numbers ci's exist.

reducedSystem: (Matrix F, List(F -> F)) -> Matrix F

reducedSystem(A, ld) returns a matrix of constants B such that A x = 0 and B x = 0 have the same solutions over constants.

reducedSystem: (Matrix F, Vector F, List(F -> F)) -> Record(mat: Matrix F, vec: Vector F)

reducedSystem(A, v, ld) returns matrix of constants B and vector of constants w such that A x = v and B x = w have the same solutions over constants.

solveLinearOverConstants: (Matrix F, Vector F, List(F -> F)) -> Record(particular: Union(Vector F, failed), basis: List Vector F)

solveLinearOverConstants([v1, ..., vn], u, ld) returns solution of the system c1*v1 + ... + cn*vn = u and and a basis of the associated homogeneous system c1*v1 + ... + cn*vn = 0

solveLinearOverConstants: (Vector F, F, List(F -> F)) -> Record(particular: Union(Vector F, failed), basis: List Vector F)

solveLinearOverConstants([v1, ..., vn], u, ld) returns solution of the system c1*v1 + ... + cn*vn = u and and a basis of the associated homogeneous system c1*v1 + ... + cn*vn = 0