/**/ LinSys :=
/**/ record[leq0 := matrix([[1,2,3, 4], // x +2*y +3*z +4 <= 0
/**/ [9,8,7, 0]]),// 9*x +8*y +7*z <= 0
/**/ neq0 := matrix([[1,0,0, 0]]) // x <> 0
/**/ ];
/**/ soln := MSatLinSolve(LinSys); soln;
matrix(QQ,
[[1],
[4/5],
[-11/5]])
/**/ // verify:
/**/ soln1 := ConcatVer(soln, matrix([[1]])); //--> [[1], [4/5], [-11/5], [1]]
/**/ LinSys.leq0 * soln1; // is <= 0
matrix(QQ,
[[0],
[0]])
/**/ LinSys.neq0 * soln1; // is <> 0
matrix(QQ,
[[1]])
/**/ // now we add new contraints:
/**/ LinSys.eq0 := RowMat([1,1,0, 4]); // x +y +4 = 0
/**/ LinSys.lt0 := RowMat([0,1,0, 0]); // y < 0
/**/ soln := MSatLinSolve(LinSys); soln;
matrix(QQ,
[[-2],
[-2],
[-2/7]])
/**/ // verify:
/**/ soln1 := ConcatVer(soln, RowMat([1])); //--> [[-2], [-2], [-2/7], [1]]
/**/ LinSys.leq0 * soln1; // <= 0
matrix(QQ,
[[-20/7],
[-36]])
/**/ LinSys.neq0 * soln1; // <> 0
matrix(QQ,
[[-2]])
/**/ LinSys.eq0 * soln1; // = 0
matrix(QQ,
[[0]])
/**/ LinSys.lt0 * soln1; // < 0
matrix(QQ,
[[-2]])
|