Re: Rank of a matrix depending on a variable

*To*: mathgroup at smc.vnet.net*Subject*: [mg122017] Re: Rank of a matrix depending on a variable*From*: Ray Koopman <koopman at sfu.ca>*Date*: Sun, 9 Oct 2011 03:52:13 -0400 (EDT)*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com*References*: <j6q5ue$p0o$1@smc.vnet.net>

On Oct 8, 11:48 am, Mikel <ketakop... at gmail.com> wrote: > Hi, > > A bit of background for my problem: I'm trying to solve a linear > system of equations in matrix form, A.x==B. I have the A matrix, > which is square and singular. I also have the B vector, which > depends on some parameters (or variables, I'm not sure how to call > it). I'm looking for the value of the parameters, so there exists > solution to the system. In other words, I want the rank of the > augmented matrix AB to be equal to the rank of A. > > I thought about using the MatrixRank function, but it does not > support parameters, it seems. Then I tried RowReduce, but even > though in the first example of the help page the result is given > with parameters, I only get numbers. > > Here's an example to try: > > ============ > > Clear[a] > A = {{1, 0}, {2, 0}}; > B = {{a}, {2}}; > AB = ArrayFlatten[{{A, B}}]; > MatrixRank[A] > MatrixRank[AB] > RowReduce[AB] > > a = 1; > MatrixRank[A] > MatrixRank[AB] > RowReduce[AB] > > ============ > > As can be seen, the rank does depend on the value of the > "a" parameter, but RowReduce just outputs a numeric value. > > So, the questions are: > 1) Why does RowReduce not give a parameter in the result? > Is this a bug? > 2) Is there any other way to solve the problem, i.e. > to get the rank of AB as a function of the "a" variable? > > I'm using Mathematica 7, Student version, for what is worth. B must be orthogonal to the nullspace of the columns of A. In[1]:= A = {{1,0},{2,0}}; B = {{a},{2}}; Solve[NullSpace@Transpose@A.B == {{0}}, a] Out[3]= {{a -> 1}}