Creating a DC resistor network matrix
Many (and I do mean many) years ago I remember being posed a similar problem. My maths tutor at that time revealed a wonderful (and very simple) way of solving such problems using mesh current analysis.



Each loop has a circular current (the direction is arbitary as the solution will decide the final direction - + value if its the same, - value if its opposite). Ohm's law is written in matrix form  [R]x[I] = [V]

Now comes the elegant solution.

For the voltage matrix simply write down the voltage in each loop , the loop currents are the unknown so simply write them down (i1, i2 etc) 

The resistance matrix can be written by inspection -  current loop [1,1] contains r1+r2+3 - this is the first diagonal value. In the matrix positions [2,1 and 1,2] the common element between loop 1 and loop 2 is r2 but as the currents are in opposite directions this value is -r2. This continues with [2,2], [3,3] etc. Where there are no common elements the value is 0.

You could mutliply out the matrix to get a set of simultaneous equations with seven unknowns (i1 to i7) eg

(r1+r2+r3)i1 -r2i2  = V1 

-r2i1  + (r4+r5+r6+r2)i2 -r5i3  = 0

or solve the matrix using a computer.

Once you have the mesh current values (i1 to i7) then you can easily convert them into voltage and current circuit values around the circuit by applying kirchoff and ohm's law.

e.g The current through r2 is (i1 -i2), the voltage across r2, Vr2 = r2 x (i1-i2)   

Additional edit:

In your circuit the method is applied thus: