Ya que ha proporcionado su propio trabajo (¡gracias!), aquí es cómo abordaría el problema. Puede revisar su propio trabajo, revisando el mío, para detectar sus propios errores. Quiero dejarte algo para que hagas; eso, además de algunos trabajos de álgebra, también los dejaré más adelante, a continuación.
Siempre comenzaré mis bucles (los cuatro) desde el nodo central de su esquema. Y también seguiré siempre la dirección de sus propias flechas, ya que genero cada ecuación a continuación. Y, para completar, siempre comenzaré cada ecuación con un \ $ 0 \: \ text {V} \ $ explícito. La conexión a tierra indicada del circuito simplemente se ignora para los siguientes propósitos:
$$ \ begin {align *}
0 \: \ text {V} + V_ {I_2} -I_A \ cdot R_4- \ left (I_A + I_D \ right) \ cdot R_1 & = 0 \: \ text {V} \\\\
0 \: \ text {V} + V_ {I_2} - \ left (I_B + I_C \ right) \ cdot R_2 & = 0 \: \ text {V} \\\\
0 \: \ text {V} - \ left (I_C + I_D \ right) \ cdot R_3 + V_1- \ left (I_C + I_B \ right) \ cdot R_2 & = 0 \: \ text {V} \\\\
0 \: \ text {V} - \ left (I_C + I_D \ right) \ cdot R_3 + V_ {I_1} - \ left (I_A + I_D \ right) \ cdot R_1 & = 0 \: \ text {V} \ \\\
I_1 & = I_D \\\\
I_2 & = I_A + I_B
\ end {align *} $$
Puede usar las dos últimas ecuaciones para volver a sustituir las cuatro ecuaciones anteriores y luego resolver cuatro variables desconocidas en cuatro ecuaciones, o bien, puede resolver las seis ecuaciones anteriores para las seis variables desconocidas. De cualquier manera funciona bien.
Tenga en cuenta que no me molesté en preocuparme por los voltajes de los nodos, sino que usé \ $ V_ {I_1} \ $ y \ $ V_ {I_2} \ $ para representar los voltajes en sus dos fuentes actuales.
No me voy a molestar en colocar las ecuaciones anteriores en forma de matriz para usted. Es solo una manipulación algebraica y estoy seguro de que podrías manejarlo sin dificultad.
También te queda como ejercicio.
Así que deja que Sage proporcione los resultados directos:
sage: var('i1 i2 ia ib ic id r1 r2 r3 r4 v1 vi1 vi2')
(i1, i2, ia, ib, ic, id, r1, r2, r3, r4, v1, vi1, vi2)
sage: e1=Eq(vi2-ia*r4-(ia+id)*r1,0)
sage: e2=Eq(vi2-(ib+ic)*r2,0)
sage: e3=Eq(-(ic+id)*r3+v1-(ic+ib)*r2,0)
sage: e4=Eq(-(ic+id)*r3+vi1-(id+ia)*r1,0)
sage: e5=Eq(i2,ia+ib)
sage: e6=Eq(i1,id)
sage: ans=solve([e1,e2,e3,e4,e5,e6],[ia,ib,ic,id,vi1,vi2])
sage: ans[ia].subs({i1:10e-3,i2:30e-3,v1:10,r1:800,r2:100,r3:300,r4:1000})
-0.00213333333333333
sage: ans[ib].subs({i1:10e-3,i2:30e-3,v1:10,r1:800,r2:100,r3:300,r4:1000})
0.0321333333333333
sage: ans[ic].subs({i1:10e-3,i2:30e-3,v1:10,r1:800,r2:100,r3:300,r4:1000})
0.00946666666666666
sage: ans[id].subs({i1:10e-3,i2:30e-3,v1:10,r1:800,r2:100,r3:300,r4:1000})
0.0100000000000000
sage: ans[vi1].subs({i1:10e-3,i2:30e-3,v1:10,r1:800,r2:100,r3:300,r4:1000})
12.1333333333333
sage: ans[vi2].subs({i1:10e-3,i2:30e-3,v1:10,r1:800,r2:100,r3:300,r4:1000})
4.16000000000000
Esos resultados serán correctos, creo. Simplemente lo ejecuté en Spice, solo después de hacer lo anterior, y produjo las mismas cifras.
Lista de red LTSpice:
R1 N003 N002 800
R2 N001 N003 100
R3 N003 0 300
R4 N001 N002 1k
V1 N001 0 10
I1 0 N002 10m
I2 N003 N001 30m