"Roger Stafford" <ellieandrogerxyzzy@mindspring.com.invalid> wrote in
message
news:ellieandrogerxyzzy1609071205560001@dialup4.233.114.162.dial1.losangeles1.level3.net...
> In article
> <ellieandrogerxyzzy1609071133000001@dialup4.233.114.162.dial1.losangeles1.level3.net>,
> ellieandrogerxyzzy@mindspring.com.invalid (Roger Stafford) wrote:
>
>> In article <tddnfg73r9xnDbnZ2dnUVZ_oCvnZ2d@comcast.com>, "Cliff Curry"
>> <cliffcurry_nospam_323@comcast.net> wrote:
>>
>> > Hello:
>> >
>> > I am looking for a function that is the inverse of null().
>> > How would I use MATLAB to generate a matrix, given a set of
>> > orthogonal
>> > vectors, that has those vectors as a basis for its null space?
>> > I realize that there may be many such matrices.
>> >
>> > Thanks for your help,
>> >
>> >
>> > Cliff
>> 
>> Your question is rather puzzling, Cliff. If the given set of
>> orthogonal
>> vectors is used as the rows of matrix A, then the rows of B = null(A)'
>> form a basis of the null space of A. Therefore the rows of A are all
>> orthogonal to those of B and constitute a basis for the null space of B,
>> which is what you are asking for.
>>
>> Did you mean something as simple as this, or are you requiring more of
>> matrix B? Perhaps you want a square matrix as your result? I have the
>> feeling you are asking for something other than what you have stated
>> here.
>>
>> Roger Stafford
> 
> It occurs to me that you might have meant "inverse of null()" in a
> strictly literal sense. That is, you might conceivably want a matrix B
> such that null(B) generates precisely the original set of orthogonal
> vectors themselves.
>
> That you cannot have! In the first place, the 'null' function generates
> only vectors with unit norm and you didn't say that that was true of your
> original set of orthogonal vectors. In the second place, if the null
> space is more than onedimensional, there is no telling what particular
> set of vectors 'null' may decide to use as a basis. That choice lies
> deeply buried in the particular algorithm used by 'null' and is not
> subject to control by the user. The only thing you can be sure of is
> that, whatever the basis null(B) might come up with, it will span the same
> subspace as your original set of vectors.
>
> Roger Stafford
Thank You, Roger.
Demonstrating what you explained, a matrix, b, is found as I requested.
x=rand(1,3) % arbitary
x =
0.9169 0.4103 0.8936
>> input=null(x) % find a null space basis as an input: any orthonormal
>> vectors, really
input =
0.3052 0.6647
0.9446 0.1206
0.1206 0.7373
>> a=input' % form this into the rows of a matrix
a =
0.3052 0.9446 0.1206
0.6647 0.1206 0.7373
>> b=null(a)' % find the null space basis and transpose it
b =
0.6820 0.3052 0.6647
>> null(b) % verify that the null space of b is the same as the input
ans =
0.3052 0.6647
0.9446 0.1206
0.1206 0.7373
Here the two basis sets are the same, but that may not always be true.
Thanks again,
Cliff
