Ask Your Question
0

transform list of equations to coefficientmatrix?

asked 2014-12-20 18:17:19 +0100

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
0

answered 2014-12-20 19:44:29 +0100

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)
m=[]
for leftside in lhs:
    m.append(map(lambda w: w.subs(x=1,y=1,z=1),leftside.operands()))
M=matrix(m)
edit flag offensive delete link more

Comments

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(0)  
      else:
            m.append(leftside.coeff(s[i],1 ))
M=matrix(3,m)
M
Emiel Ergo gravatar imageEmiel Ergo ( 2014-12-23 12:04:50 +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

Stats

Asked: 2014-12-20 18:17:19 +0100

Seen: 230 times

Last updated: Dec 20 '14