Nodal analysis 1

.PS
include(pstricks.m4)

scale=25.4 # Scale in mm per inch

cct_init

vsp=20    # Vertical spacing
hsp=27.5  # Horizontal spacing

O: (0,0)  # Define the origin point for the circuit

move to O

line up vsp
I2: source(right_ hsp,I); llabel(,,); llabel(,i_2{=}3\; \text{mA},)
{ # Push current location to the "stack"
  Va: dot(at Here)
  R3: resistor(down_ to (Here.x,O.y)); rlabel(,,); llabel(,R_3{=}3\; \text{k}\Omega,);rarrow(i_{R_3})
  dot(at Here)
} # Return to the previous location on the "stack"
V1: source(right_ hsp,V); llabel(,,); llabel(,v_1{=}10\; \text{V},)
{ # Push current location to the "stack"
  Vb: dot(at Here)
  R2: resistor(down_ to (Here.x,O.y));rlabel(,,); llabel(,R_2{=}2\; \text{k}\Omega,)
  dot(at Here)
} # Return to the previous location on the "stack"
line right hsp
I1: source(down_ to (Here.x,O.y),I); rlabel(,,); llabel(,i_1{=}2\; \text{mA},)
line left to R2.end
ground(at Here)
line to O

# Label the nodes with their voltages
"$v_a$" at Va.n above
"$v_b$" at Vb.n above

.PE