# Find the kernel of a matrix $A$ and make it a matrix.

I am trying to write a function that computes the monic genrator of an ideal $I\in k[x_1,\dots,x_n]$, i.e., the generator of $I\cap k[x_i]$ for each $i$. For this I need to use linear algebra for the set $${1, x_i, x_i^2,\dots}$$ I write each one of them in terms of the basis for the quotient ring $k[x_1,\dots,x_n]/I$, and see if they are linearly dependent.

Since I add in one more power a time, when I find a linearly dependent set, it should have nullity $1$. So if I can get the one element in basis of the kernel, I am done. But the $A.kernel()$ command in Sage gives me this:

N=M.kernel();N
Vector space of degree 2 and dimension 1 over Rational Field
Basis matrix:
[0 1]


Is there a way to assign it as a vector using the kernel command? Or do I have to write my own function to implement it? Thank you for your help!

edit retag close merge delete

Sort by » oldest newest most voted

Borrowing an example from Beezer's linear algebra text and modifying it slightly:

A = matrix(QQ, [[ 1, -3, 1],
[-2,  1, 1],
[ 1,  5, 1],
[ 9, -4, 0]])
N = A.left_kernel()
v = N.basis()[0]
print v
type(v)


So you can access the basis, and if you're sure it's going to have just one element you can just get it as a vector. But in general a kernel is a vector space, so you can't just say "it" is a vector.

more

1

Thank you. This works perfectly. And I am pretty sure I'll have one element in the basis. But I'll change the title. One more question, I also defined matrix A using "A=matrix(...)" and it worked. But after I tried import scipy, it does not work anymore. I have to do "A=Matrix(...)" instead. Since I don't want to use scipy anymore, is there a way to "export" this package?

( 2016-05-24 15:26:51 +0200 )edit
1

I'm not sure what you mean. Just don't import scipy at the beginning of your session. Unfortunately I don't think there is a way to undo a python import statement in a session.

( 2016-05-25 18:26:09 +0200 )edit
1

BTW, if this solved your question then be sure to click the check mark so that others coming to it know it was the right answer. Glad to help!

( 2016-05-25 18:26:46 +0200 )edit