Ask Your Question
0

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

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

KittyL gravatar image

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

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:

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

1 Answer

Sort by » oldest newest most voted
1

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

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
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.

edit flag offensive delete link more

Comments

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?

KittyL gravatar imageKittyL ( 2016-05-24 15:26:51 +0100 )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.

kcrisman gravatar imagekcrisman ( 2016-05-25 18:26:09 +0100 )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!

kcrisman gravatar imagekcrisman ( 2016-05-25 18:26:46 +0100 )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

Stats

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

Seen: 2,026 times

Last updated: May 24 '16