Ask Your Question

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

asked 2016-05-24 13:47:57 +0200

KittyL gravatar image

updated 2019-03-18 20:58:45 +0200

FrédéricC gravatar image

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:

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 flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2016-05-24 15:14:51 +0200

kcrisman gravatar image

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

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.

edit flag offensive delete link more



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?

KittyL gravatar imageKittyL ( 2016-05-24 15:26:51 +0200 )edit

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.

kcrisman gravatar imagekcrisman ( 2016-05-25 18:26:09 +0200 )edit

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!

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

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2016-05-24 13:47:57 +0200

Seen: 1,738 times

Last updated: May 24 '16