# Nodal analysis

In electric circuits analysis, nodal analysis, node-voltage analysis, or the branch current method is a method of determining the voltage (potential difference) between "nodes" (points where elements or branches connect) in an electrical circuit in terms of the branch currents.
Nodal analysis is essentially a systematic application of Kirchhoff's current law (KCL) for circuit analysis. Similarly, mesh analysis is a systematic application of Kirchhoff's voltage law (KVL). Nodal analysis writes an equation at each electrical node specifying that the branch currents incident at a node must sum to zero (using KCL). The branch currents are written in terms of the circuit node voltages. As a consequence, each branch constitutive relation must give current as a function of voltage; an admittance representation. For instance, for a resistor, I$_{branch}$ = V$_{branch}$ * G, where G (=1/R) is the admittance (conductance) of the resistor.
Nodal analysis is possible when all the circuit elements' branch constitutive relations have an admittance representation. Nodal analysis produces a compact set of equations for the network, which can be solved by hand if small, or can be quickly solved using linear algebra by computer. Because of the compact system of equations, many circuit simulation programs (e.g., SPICE) use nodal analysis as a basis. When elements do not have admittance representations, a more general extension of nodal analysis, modified nodal analysis, can be used.

## Procedure

* Note all connected wire segments in the circuit. These are the nodes of nodal analysis.
* Select one node as the ground reference. The choice does not affect the element voltages (but it does affect the nodal voltages) and is just a matter of convention. Choosing the node with the most connections can simplify the analysis. For a circuit of N nodes the number of nodal equations is N−1.
* Assign a variable for each node whose voltage is unknown. If the voltage is already known, it is not necessary to assign a variable.
* For each unknown voltage, form an equation based on Kirchhoff's Current Law (i.e. add together all currents leaving from the node and mark the sum equal to zero). The current between two nodes is equal to the voltage of the node where the current exits minus the voltage of the node where the current enters the node, both divided by the resistance between the two nodes.
* If there are voltage sources between two unknown voltages, join the two nodes as a supernode. The currents of the two nodes are combined in a single equation, and a new equation for the voltages is formed.
* Solve the system of simultaneous equations for each unknown voltage.

## Examples
### Basic case

The only unknown voltage in this circuit is $V_{1}$. There are three connections to this node and consequently three currents to consider. The direction of the currents in calculations is chosen to be away from the node.
* Current through resistor $R_{1}$: $(V_{1}-V_{S})/R_{1}$
* Current through resistor $R_{2}$: $V_{1}/R_{2}$
* Current through current source $I_{S}$: $-I_{S}$
With Kirchhoff's current law, we get:
${\frac {V_{1}-V_{S}}{R_{1}}}+{\frac {V_{1}}{R_{2}}}-I_{S}=0$
This equation can be solved with respect to V$_1$:
$V_{1}={\frac {\left({\frac {V_{S}}{R_{1}}}+I_{S}\right)}{\left({\frac {1}{R_{1}}}+{\frac {1}{R_{2}}}\right)}}$
Finally, the unknown voltage can be solved by substituting numerical values for the symbols. Any unknown currents are easy to calculate after all the voltages in the circuit are known.
$V_{1}={\frac {\left({\frac {5{\text{ V}}}{100\,\Omega }}+20{\text{ mA}}\right)}{\left({\frac {1}{100\,\Omega }}+{\frac {1}{200\,\Omega }}\right)}}={\frac {14}{3}}{\text{ V}}$

### Supernodes

In this circuit, we initially have two unknown voltages, V$_1$ and V$_2$. The voltage at V$_3$ is already known to be V$_B$ because the other terminal of the voltage source is at ground potential.
The current going through voltage source V$_A$ cannot be directly calculated. Therefore, we cannot write the current equations for either V$_1$ or V$_2$. However, we know that the same current leaving node V$_2$ must enter node V$_1$. Even though the nodes cannot be individually solved, we know that the combined current of these two nodes is zero. This combining of the two nodes is called the supernode technique, and it requires one additional equation: V$_1$ = V$_2$ + V$_A$.
The complete set of equations for this circuit is:
${\begin{cases}{\frac {V_{1}-V_{\text{B}}}{R_{1}}}+{\frac {V_{2}-V_{\text{B}}}{R_{2}}}+{\frac {V_{2}}{R_{3}}}=0\\V_{1}=V_{2}+V_{\text{A}}\\\end{cases}}$
By substituting $V_{2}={\frac {(R_{1}+R_{2})R_{3}V_{\text{B}}-R_{2}R_{3}V_{\text{A}}}{(R_{1}+R_{2})R_{3}+R_{1}R_{2}}}$

## Matrix form for the node-voltage equation

In general, for a circuit with $N$ nodes, the node-voltage equations obtained by nodal analysis can be written in a matrix form as derived in the following. For any node $k$, KCL states ∑$_{j≠k}$G$_{jk}$(v$_k$−v$_j$)=0{\textstyle \sum _{j\neq k}G_{jk}(v_{k}-v_{j})=0} where $G_{kj}=G_{jk}$ is the negative of the sum of the conductances between nodes $k$ and $j$, and $v_{k}$ is the voltage of node $k$. This implies 0=∑$_{j≠k}$G$_{jk}$(v$_k$−v$_j$)=∑$_{j≠k}$G$_{jk}$v$_k$−∑$_{j≠k}$G$_{jk}$v$_j$=G$_{kk}$v$_k$−∑$_{j≠k}$G$_{jk}$v$_j${\textstyle 0=\sum _{j\neq k}G_{jk}(v_{k}-v_{j})=\sum _{j\neq k}G_{jk}v_{k}-\sum _{j\neq k}G_{jk}v_{j}=G_{kk}v_{k}-\sum _{j\neq k}G_{jk}v_{j}} where $G_{kk}$ is the sum of conductances connected to node $k$. We note that the first term contributes linearly to the node $k$ via $G_{kk}$, while the second term contributes linearly to each node $j$ connected to the node $k$ via $G_{jk}$ with a minus sign. If an independent current source/input $i_{k}$ is also attached to node $k$, the above expression is generalized to i$_k$=G$_{kk}$v$_k$−∑$_{j≠k}$G$_{jk}$v$_j${\textstyle i_{k}=G_{kk}v_{k}-\sum _{j\neq k}G_{jk}v_{j}}. It is readily shown that one can combine the above node-voltage equations for all $N$ nodes, and write them down in the following matrix form
${\begin{pmatrix}G_{11}&G_{12}&\cdots &G_{1N}\\G_{21}&G_{22}&\cdots &G_{2N}\\\vdots &\vdots &\ddots &\vdots \\G_{N1}&G_{N2}&\cdots &G_{NN}\end{pmatrix}}{\begin{pmatrix}v_{1}\\v_{2}\\\vdots \\v_{N}\end{pmatrix}}={\begin{pmatrix}i_{1}\\i_{2}\\\vdots \\i_{N}\end{pmatrix}}$ or simply Gv=i.{\textstyle \mathbf {Gv} =\mathbf {i} .}
The matrix $\mathbf {G}$ on the left hand side of the equation is singular since it satisfies $\mathbf {G1} =0$ where $\mathbf {1}$ is an $N\times 1$ column matrix containing only 1s. This corresponds to the fact of current conservation, namely, ∑$_k$i$_k$=0{\textstyle \sum _{k}i_{k}=0}, and the freedom to choose a reference node (ground). In practice, the voltage at the reference node is taken to be 0. Consider it is the last node, $v_{N}=0$. In this case, it is straightforward to verify that the resulting equations for the other $N-1$ nodes remain the same, and therefore one can simply discard the last column as well as the last line of the matrix equation. This procedure results in a $(N-1)\times (N-1)$ dimensional non-singular matrix equation with the definitions of all the elements stay unchanged.