Mesh analysis 2

.PS
include(pstricks.m4)

scale=25.4  # scale factor for the diagram

cct_init

vsp=25  # vertical spacing
hsp=25  # horizontal spacing

O: (0,0)

move to O

Va: source(up_ vsp*2,V);llabel(,v_a{=}10\;\text{V},)
line right hsp
{ # Push first location to the "stack"
  dot(at Here)
  R1: resistor(down_ to 1/2 between Here and (Here.x,O.y));rlabel(,R_1{=}2\;\text{k}\Omega,)
  { # Push second location to the "stack"
    dot(at Here)
    R4: resistor(down to (Here.x,O.y));rlabel(,R_4{=}1\;\text{k}\Omega,);llabel(+,V_q,-)
    dot(at Here)
    ground(at Here)
  } # Return to the second location on the "stack"
  R3: resistor(right_ hsp*2);llabel(,R_3{=}2\;\text{k}\Omega,)
  dot(at Here)
} # Return to the first location on the "stack"
R2: resistor(right_ to 1/2 between Here and (R3.end.x,Here.y));llabel(,R_2{=}4\;\text{k}\Omega,)
Vb: source(right_ to (R3.end.x,Here.y),V,,R);llabel(,v_b{=}6\;\text{V},)
line down to R3.end
I3: source(down_ to (Here.x,O.y),I);llabel(,i_c{=}1\;\text{mA},)
line to O

# Draw mesh currents
I1: arcd(1/2 between Va.end and R4.end,vsp/4,-135,-45) cw ->
I2: arcd(1/2 between R1.start and R3.end,vsp/4,-135,-45) cw ->
I3: arcd(1/2 between R4.end and R3.end,vsp/4,-135,-45) cw ->

# Label mesh currents
"$i_1$" at I1.c
"$i_2$" at I2.c
"$i_3$" at I3.c

.PE