Ask Your Question
0

transform list of equations to coefficientmatrix?

asked 10 years ago

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?

Preview: (hide)

1 Answer

Sort by » oldest newest most voted
0

answered 10 years ago

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)
Preview: (hide)
link

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 ( 10 years ago )

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: 10 years ago

Seen: 281 times

Last updated: Dec 20 '14