As @ErwinKalvelagen says, this is fairly commonly done with a linear program, in your case implemented via linprog. But as always, the devil is in the details.
You can reuse your A
and b
verbatim, because one kind of constraint that LP supports is equality.
Linear programs ask for bounds on your variables - but, crucially, these are always closed-interval bounds and not open-interval bounds, so it is impossible to ask for "greater than zero" - only "greater than or equal to some very small value". For this class of problem you could choose 0.000,001 as an epsilon for the lower bound of every variable, leaving the upper bound of every variable as infinity.
Linear programs always ask for an optimization objective coefficient vector, basically a vector that - when the dot product is performed with your decision variables - produces a minimization cost. You can choose to set this to all 0, implying that there is no optimization; or you can perform repeat evaluations and the dual to find possible solutions for the minima and maxima of every variable. If you don't do anything fancy with the dual, then you will have 12 re-evaluations with coefficient vectors [1 0 0 0 0 0], [-1 0 0 0 0 0], [0 1 0 0 0 0], [0 -1 0 0 0 0] etc. This can give you a better idea as to the solution space.
The latter strategy can produce output like
One row per solution, minima on the diagonal
[[1.00000000e-06 4.14589286e+03 4.32107143e+03 1.00000000e-06 1.00000000e-06 1.34303571e+03]
[4.32107143e+03 1.00000000e-06 1.00000000e-06 3.72340336e+03 1.00000000e-06 1.76552521e+03]
[4.32107143e+03 1.09134237e+03 1.00000000e-06 1.00000000e-06 1.00000000e-06 4.39758620e+03]
[4.32107143e+03 1.09134237e+03 1.00000000e-06 1.00000000e-06 1.00000000e-06 4.39758620e+03]
[4.32107143e+03 1.09134237e+03 1.00000000e-06 1.00000000e-06 1.00000000e-06 4.39758620e+03]
[3.58902439e+03 1.00000000e-06 7.32047037e+02 5.48892857e+03 1.00000000e-06 1.00000000e-06]]
One row per solution, maxima on the diagonal
[[4.32107143e+03 1.09134237e+03 1.00000000e-06 1.00000000e-06 1.00000000e-06 4.39758620e+03]
[1.00000000e-06 5.41241379e+03 1.00000000e-06 1.00000000e-06 4.32107143e+03 7.65147789e+01]
[1.00000000e-06 4.14589286e+03 4.32107143e+03 1.00000000e-06 1.00000000e-06 1.34303571e+03]
[3.58902439e+03 1.00000000e-06 7.32047037e+02 5.48892857e+03 1.00000000e-06 1.00000000e-06]
[1.00000000e-06 5.41241379e+03 1.00000000e-06 1.00000000e-06 4.32107143e+03 7.65147789e+01]
[4.32107143e+03 1.09134237e+03 1.00000000e-06 1.00000000e-06 1.00000000e-06 4.39758620e+03]]
Those matrices are not exhaustive. For every one of those variable extrema there is still an infinite number of solutions.