Ask Your Question

transform list of equations to coefficientmatrix?

asked 2014-12-20 11:17:19 -0500

I have a list of equations in multiple variables and therefor need to know if this list has a unique solution, if I had the coefficientmatrix this would be easily done by calculating the rank. So the question is, is there a fast way to transform the list of equations to a matrix?

edit retag flag offensive close merge delete

1 answer

Sort by » oldest newest most voted

answered 2014-12-20 12:44:29 -0500

calc314 gravatar image

I'm not aware of anything easy, although someone might suggest a shorter method using a polynomial ring. Here is what I've cooked up:

var('x y z')
eqs = [3*x+2*y+z == -4, 2*x-3*y+5*z==2,7*x+2*y-3*z==0]
lhs = map(lambda a: a.lhs(),eqs)
for leftside in lhs:
    m.append(map(lambda w: w.subs(x=1,y=1,z=1),leftside.operands()))
edit flag offensive delete link more


Thank you! this is already very helpfull! although this does not work if not all equations are explicitly in all the variables. For example [x+y = 0, x+z = 5]

this code does work even with coefficients that are 0 but doesn't look pretty, can someone help me make it simpler?

s = list(var('x y z'))
eqs = [3*x+z == -4, 2*x-3*y+5*z==2,7*x+2*y-3*z==0]
lhs = map(lambda a: a.lhs(),eqs)
m = []
for leftside in lhs:
    for i in range(3):
      if leftside.coeff(s[i],1 ) == 0:
            m.append(leftside.coeff(s[i],1 ))
Emiel Ergo gravatar imageEmiel Ergo ( 2014-12-23 05:04:50 -0500 )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


Asked: 2014-12-20 11:17:19 -0500

Seen: 62 times

Last updated: Dec 20 '14