Skip to main content

Section 2.4 Circuit Analysis Methods

In the following sections, we will analyze the DC circuit found in Figure 2.4.1 using a variety of different methods. Each of these methods can be useful in different circumstances, so these exercises are meant to introduce you to a variety of tools that will remain in your circuit-analysis toolbox for future use.
Figure 2.4.1. The circuit that will be analyzed using multiple different methods over the course of the following sections.

Subsection 2.4.1 Analysis: Circuit Reduction

In the method of circuit reduction, we use the rules of series and parallel resistors to find all currents present in the circuit. We will start by drawing the circuit and labeling all currents as in Figure 2.4.2a.
Figure 2.4.2. Circuit reduction for Figure 2.4.1.
In our first simplification, we note that \(R_2\) and \(R_3\) are in parallel, so
\begin{equation*} R_{23}=\left(\frac{1}{R_2}+\frac{1}{R_3}\right)^{-1} = 666.67\Omega\text{.} \end{equation*}
With that simplification done, we now find that \(R_1\text{,}\) \(R_{23}\text{,}\) and \(R_4\) are in series, so
\begin{equation*} R_\text{tot}=R_1 + R_{23} + R_4 = 8666.67\Omega\text{.} \end{equation*}
Ohm’s law can be used to find \(I_1\)
\begin{equation*} V_b = I_1 R_\text{tot} \rightarrow I_1 = \frac{\left(\Delta V\right)_\text{tot}}{R_\text{tot}} = 2.77\text{ mA} \end{equation*}
where \(\left(\Delta V\right)_\text{tot}\) is the voltage change across \(R_\text{tot}\text{.}\) We must also check the direction of \(I_1\text{.}\) When examining a circuit, you must sometimes guess at the directions of currents. If you guess correctly and the guessed current direction flows from high to low potential, then your value for current will be positive. If you guessed incorrectly at the outset, you will instead find that the value for current will be negative. In this situation, we note that the \(I_1\) direction pictured does indeed pass through \(R_\text{tot}\) from high to low potential given how \(R_\text{tot}\) terminals are connected directly to battery terminals. Thus, the value that we calculate for \(I_1\) should be positive. So, \(I_1 = 2.77\text{ mA}\text{.}\)
Now, in order to find currents \(I_2\) and \(I_3\text{,}\) we’ll have to find the voltage changes across \(R_2\) and \(R_3\text{.}\) We can do this by taking our calculated value for \(I_1\) and using Ohm’s Law in Figure 2.4.2(left). Thus, we find that
\begin{align*} \Delta V_1 \amp = V_{b+} - V_A \\ \Delta V_4\amp = V_B - V_{b-}\text{.} \end{align*}
In other words,
\begin{align*} V_A \amp = V_{b+} - \Delta V_1 \\ V_B \amp = V_{b-} + \Delta V_4 \end{align*}
so that
\begin{align*} \Delta V_2 = \Delta V_3 \amp = V_A - V_B\\ \amp = \left(V_{b+} - \Delta V_1\right) - \left(V_{b-} + \Delta V_4\right)\\ \amp = \left(V_{b+} - V_{b-}\right) - \Delta V_1 - \Delta V_4\\ \amp = \Delta V_b - \Delta V_1 - \Delta V_4\\ \amp = V_b - I_1 R_1 - I_1 R_4 = 1.85\text{V}\text{.} \end{align*}
Once we have \(\Delta V_2=\Delta V_3\text{,}\) we can use Ohm’s law to find \(I_2\) and \(I_3\)
\begin{align*} I_2 \amp = \frac{\Delta V_2}{R_2} = 1.85\text{mA}\\ I_3 \amp = \frac{\Delta V_3}{R_3} = 0.925\text{mA}\text{.} \end{align*}
If we define \(V_{b-}=0\text{,}\) then
\begin{align*} V_{b+} \amp = 24\text{V}\\ V_A \amp = V_{b+}-I_1 R_1 = 15.69\text{V}\\ V_B \amp = V_{b-} + I_1 R_4 = 13.85\text{V}\text{.} \end{align*}

Subsection 2.4.2 Analysis: Branch Method

In the branch method, we perform the following steps:
  1. Draw the circuit.
  2. Define a current for each circuit segment that may have a different current. Use your intuition to try to guess the correct directions for the currents. Don’t worry about guessing wrong. It is just important to clearly identify your assumed direction for each current.
  3. Write out KCL equations at nodes. Remove duplicate or redundant equations. Note that the number of independent KCL equations is one fewer than the number of junctions present in the circuit.
  4. Write down KVL equations for enough loops to include all circuit components at least once.
  5. Solve the system of KCL and KVL equations for all unknown currents. If you were wrong in your initial guesses for any current directions, those currents will just come out with negative values.
  6. Use Ohm’s law to find voltage changes through each resistor and use those changes to find the voltage at any point of interest in the circuit.
To analyze the circuit in Figure 2.4.1 using the mesh method, we draw the circuit and define currents as in Figure 2.4.3.
Figure 2.4.3. Branch method circuit analysis.
Examining the KCL at junction A and the KVL for loops I and II, we find the following equations
\begin{align} 0 \amp = I_1 - I_2 - I_3\tag{2.4.1}\\ 0 \amp = V_b - I_1 R_1 - I_2 R_2 - I_1 R_4\tag{2.4.2}\\ 0 \amp = V_b - I_1 R_1 - I_3 R_3 - I_1 R_4\tag{2.4.3} \end{align}
You can now find values for \(I_1\text{,}\) \(I_2\text{,}\) and \(I_3\) using your favorite method for solving systems of equations. We will illustrate several such methods.

Example 2.4.4. Solving Branch Method Equations - Analytic.

Solve (2.4.1)-(2.4.3) for the three unknown currents using analytic methods.
Solution.
Solving Equation (2.4.1) for \(I_1\text{,}\)
\begin{equation*} I_1=I_2+I_3\text{,} \end{equation*}
and inserting into Equations (2.4.2) and (2.4.3), we get
\begin{align*} 0 \amp = V_b - \left(I_2+I_3\right) R_1 - I_2 R_2 - \left(I_2+I_3\right) R_4\\ 0 \amp = V_b - \left(I_2+I_3\right) R_1 - I_3 R_3 - \left(I_2+I_3\right) R_4 \end{align*}
which can be rearranged into
\begin{align*} 0 \amp = V_b - I_2(R_1 + R_2 + R_4) - I_3(R_1 + R_4)\\ 0 \amp = V_b - I_2 (R_1 + R_4) - I_3 (R_1 + R_3 + R_4)\text{.} \end{align*}
Solving the top equation for \(I_2\text{,}\) we find
\begin{equation*} I_2 = \frac{V_b}{R_1 + R_2 + R_4} - \frac{R_1 + R_4}{R_1 + R_2 + R_4}I_3 \end{equation*}
which can be substituted into the bottom equation to give
\begin{equation*} 0 = V_b - \frac{V_b \left(R_1+R_4\right)}{R_1 + R_2 + R_4} - \frac{\left(R_1 + R_4\right)^2}{R_1 + R_2 + R_4}I_3 - I_3 (R_1 + R_3 + R_4)\text{.} \end{equation*}
Plugging in values for known components, we can solve for \(I_3\text{.}\) Once we have a value for \(I_3\text{,}\) we use the equations above to calculate \(I_2\) and then \(I_1\text{,}\) finding
\begin{align*} I_1 =\amp 2.77\text{mA} \\ I_2 =\amp 1.85\text{mA} \\ I_3 =\amp 0.92\text{mA} \text{.} \end{align*}
Then, just as in the circuit reduction method, Ohm’s law can be used to find
\begin{align*} V_A \amp = 15.69\text{V}\\ V_B \amp = 13.85\text{V}\text{.} \end{align*}

Example 2.4.5. Solving Branch Method Equations - Python.

Solve (2.4.1)-(2.4.3) for the three unknown currents using Python.
Solution.
The Python programming language can be used to solve a system of equations through the use of the scipy.linalg package. If presented with an equation \(\mathbf{A}\mathbf{x}=\mathbf{v}\) where \(\mathbf{A}\) is a matrix and \(\mathbf{x}\) and \(\mathbf{v}\) are vectors, we can solve the equation using x = scipy.linalg.solve(A,v).
As an example, let’s start with the system of equations (2.4.1)-(2.4.3)
\begin{align*} 0 \amp = I_1 - I_2 - I_3\\ 0 \amp = V_b - I_1 R_1 - I_2 R_2 - I_1 R_4\\ 0 \amp = V_b - I_1 R_1 - I_3 R_3 - I_1 R_4\text{.} \end{align*}
These equations can be re-expressed as a matrix equation if we remember the rules of matrix multiplication (see Appendix B for details). The resulting matrix equation is expressed as
\begin{equation*} \begin{pmatrix} 1 \amp -1 \amp -1 \\ R_1+R_4 \amp R_2 \amp 0\\ R_1+R_4 \amp 0 \amp R_3 \end{pmatrix} \begin{pmatrix} I_1 \\ I_2 \\ I_3 \end{pmatrix} = \begin{pmatrix} 0 \\ V_b \\ V_b \end{pmatrix}\text{.} \end{equation*}
Since we have numerical values for \(V_b\) and all resistors, we can plug these into the matrices. This matrix equation is in the necessary form for x = scipy.linalg.solve(A,v).
The results of this method are identical to the analytic result.

Example 2.4.6. Solving Branch Method Equations - Sympy.

Solve (2.4.1)-(2.4.3) for the three unknown currents using Python and SymPy.
Solution.
One can also use functionality from SymPy, the symbolic math package for Python, to solve systems of linear equations. As before,
\begin{align*} 0 \amp = I_1 - I_2 - I_3\\ 0 \amp = V_b - I_1 R_1 - I_2 R_2 - I_1 R_4\\ 0 \amp = V_b - I_1 R_1 - I_3 R_3 - I_1 R_4 \end{align*}
becomes
\begin{equation*} \begin{pmatrix} 1 \amp -1 \amp -1 \\ R_1+R_4 \amp R_2 \amp 0\\ R_1+R_4 \amp 0 \amp R_3 \end{pmatrix} \begin{pmatrix} I_1 \\ I_2 \\ I_3 \end{pmatrix} = \begin{pmatrix} 0 \\ V_b \\ V_b \end{pmatrix} \quad \Rightarrow \quad \begin{pmatrix} I_1 \\ I_2 \\ I_3 \end{pmatrix} = \begin{pmatrix} 1 \amp -1 \amp -1 \\ R_1+R_4 \amp R_2 \amp 0\\ R_1+R_4 \amp 0 \amp R_3 \end{pmatrix} ^{-1} \begin{pmatrix} 0 \\ V_b \\ V_b \end{pmatrix} \end{equation*}
which can be solved symbolically with the following code:
This analysis gives the result
\begin{equation*} \begin{bmatrix} \frac{V_b(R_2+R_3)}{R_1 R_2 + R_1 R_3 + R_2 R_3 + R_2 R_4 + R_3 R_4} \\ \frac{V_b R_3}{R_1 R_2 + R_1 R_3 + R_2 R_3 + R_2 R_4 + R_3 R_4} \\ \frac{V_b R_2}{R_1 R_2 + R_1 R_3 + R_2 R_3 + R_2 R_4 + R_3 R_4} \end{bmatrix} \end{equation*}
which simplifies to the results of the previous methods when numerical values are inserted for \(V_b\) and resistances.

Example 2.4.7. Solving Branch Method Equations - Gaussian elimination.

Solve (2.4.1)-(2.4.3) for the three unknown currents using Gaussian elimination.
Solution.
We can also use a linear algebra method called Gaussian elimination to solve the matrix equation
\begin{equation*} \begin{pmatrix} 1 \amp -1 \amp -1 \\ R_1+R_4 \amp R_2 \amp 0\\ R_1+R_4 \amp 0 \amp R_3 \end{pmatrix} \begin{pmatrix} I_1 \\ I_2 \\ I_3 \end{pmatrix} = \begin{pmatrix} 0 \\ V_b \\ V_b \end{pmatrix}\text{.} \end{equation*}
Gaussian elimination relies on two facts:
  1. If we multiply one row of \(\mathbf{A}\) and the same row of \(\mathbf{v}\) by some constant \(q\text{,}\) the solutions for \(\mathbf{x}\) remain unchanged.
  2. Any linear combination of two rows will give a new correct row.
Using the two rules above, our goal is to find an equivalent \(\mathbf{A}'\mathbf{x}=\mathbf{v}'\) such that
\begin{equation*} \mathbf{A}' = \begin{pmatrix} 1 \amp A_{12}' \amp A_{13}'\\ 0 \amp 1 \amp A_{13}'\\ 0 \amp 0 \amp 1 \end{pmatrix}\text{.} \end{equation*}
Often, the first step in using Gaussian elimination is to divide the first row by \(A_{11}\text{.}\) In this case, both \(\mathbf{A}\) and \(\mathbf{v}\) remain unchanged since \(A_{11}=1\text{.}\) Next, we’ll subtract \(\left[A_{21} * \left(\text{first row of $\textbf{A}$ and $\bf{v}$}\right)\right]\) from row 2 to get
\begin{equation*} \begin{pmatrix} 1 \amp -1 \amp -1 \\ 0 \amp R_2 + R_1 + R_4 \amp R_1 + R_4\\ R_1+R_4 \amp 0 \amp R_3 \end{pmatrix} \begin{pmatrix} I_1 \\ I_2 \\ I_3 \end{pmatrix} = \begin{pmatrix} 0 \\ V_b \\ V_b \end{pmatrix}\text{.} \end{equation*}
Then, we’ll subtract \(\left[A_{31} * \left(\text{first row of $\textbf{A}$ and $\bf{v}$}\right)\right]\) from row 3 to get
\begin{equation*} \begin{pmatrix} 1 \amp -1 \amp -1 \\ 0 \amp R_2 + R_1 + R_4 \amp R_1 + R_4\\ 0 \amp R_1 + R_4 \amp R_3 + R_1 + R_4 \end{pmatrix} \begin{pmatrix} I_1 \\ I_2 \\ I_3 \end{pmatrix} = \begin{pmatrix} 0 \\ V_b \\ V_b \end{pmatrix}\text{.} \end{equation*}
If we now divide row 2 by \(A_{22}\text{,}\) we get
\begin{equation*} \begin{pmatrix} 1 \amp -1 \amp -1 \\ 0 \amp 1 \amp \frac{R_1 + R_4}{R_2 + R_1 + R_4}\\ 0 \amp R_1 + R_4 \amp R_3 + R_1 + R_4 \end{pmatrix} \begin{pmatrix} I_1 \\ I_2 \\ I_3 \end{pmatrix} = \begin{pmatrix} 0 \\ \frac{V_b}{R_2 + R_1 + R_4} \\ V_b \end{pmatrix} \end{equation*}
Subtracting \(\left[A_{32} * \left(\text{second row of $\textbf{A}$ and $\bf{v}$}\right)\right]\) from row 3 will eliminate \(A_{32}\) while leaving \(A_{31}=0\)
\begin{equation*} \begin{pmatrix} 1 \amp -1 \amp -1 \\ 0 \amp 1 \amp \frac{R_1 + R_4}{R_2 + R_1 + R_4}\\ 0 \amp 0 \amp R_3 + R_1 + R_4 - \frac{\left(R_1 + R_4\right)^2}{R_2 + R_1 + R_4} \end{pmatrix} \begin{pmatrix} I_1 \\ I_2 \\ I_3 \end{pmatrix} = \begin{pmatrix} 0 \\ \frac{V_b}{R_2 + R_1 + R_4} \\ V_b - \frac{V_b\left(R_1 + R_4\right)}{R_2 + R_1 + R_4} \end{pmatrix}\text{.} \end{equation*}
Then, divide row 3 by \(A_{33}\) to get
\begin{equation*} \begin{pmatrix} 1 \amp -1 \amp -1 \\ 0 \amp 1 \amp \frac{R_1 + R_4}{R_2 + R_1 + R_4}\\ 0 \amp 0 \amp 1 \end{pmatrix} \begin{pmatrix} I_1 \\ I_2 \\ I_3 \end{pmatrix} = \begin{pmatrix} 0 \\ \frac{V_b}{R_2 + R_1 + R_4} \\ \left[V_b - \frac{V_b\left(R_1 + R_4\right)}{R_2 + R_1 + R_4}\right] / \left[R_3 + R_1 + R_4 - \frac{\left(R_1 + R_4\right)^2}{R_2 + R_1 + R_4}\right] \end{pmatrix} \end{equation*}
which simplifies to
\begin{equation*} \begin{pmatrix} 1 \amp -1 \amp -1 \\ 0 \amp 1 \amp \frac{R_1 + R_4}{R_2 + R_1 + R_4}\\ 0 \amp 0 \amp 1 \end{pmatrix} \begin{pmatrix} I_1 \\ I_2 \\ I_3 \end{pmatrix} = \begin{pmatrix} 0 \\ \frac{V_b}{R_2 + R_1 + R_4} \\ \frac{V_b R_2}{R_2 + R_1 + R_4}\ \frac{R_3 + R_1 + R_4}{R_3^2+2 R_3\left(R_1 + R_4\right)} \end{pmatrix}\text{.} \end{equation*}
Now, we can read off an expression for \(I_3\) and subsequently calculate \(I_1\) and \(I_2\)
\begin{align*} I_3 \amp = \frac{V_b R_2}{R_2 + R_1 + R_4}\ \frac{R_3 + R_1 + R_4}{R_3^2+2 R_3\left(R_1 + R_4\right)} = 0.92\text{mA}\\ I_2 \amp = \frac{V_b}{R_2 + R_1 + R_4} - \frac{R_1 + R_4}{R_2 + R_1 + R_4}I_3 = 1.85\text{mA}\\ I_1 \amp = I_2 + I_3 = 2.77\text{mA}\text{.} \end{align*}

Subsection 2.4.3 Analysis: Mesh Method

In the mesh method, we perform the following steps:
  1. Draw the circuit.
  2. Define mesh currents. Each current passes around a complete loop. Every component must be in at least one loop. Typically, it is best to use the simplest loops possible. The total current passing through any point in the circuit is the sum of the mesh currents through that point. Choose and clearly indicate each current loop’s direction; the direction chosen doesn’t really matter as long as it is clearly defined.
  3. Write down a KVL equation for each loop. If there are multiple mesh currents passing through a resistor, the voltage change is the sum of voltage changes for each mesh current through that component. The signs for each voltage drop contribution result in voltage drops for the mesh currents aligned with the direction we go around the loop for the loop law, while they result in voltage rises for the mesh currents aligned against the direction we go around the loop when creating the loop law equation.
  4. Solve the system of KVL equations for all unknown mesh currents.
  5. The current through any point in the circuit is the sum of mesh currents through that point. Note that two mesh currents through a point on the circuit will add together with opposite signs.
  6. Use Ohm’s law to find voltage changes through each resistor and use those changes to find the voltage at any point of interest in the circuit.
One of the benefits of the mesh method over the branch method is that there are fewer equations to solve in the resulting system of equations (since there is no KCL equation), though this comes at the cost of having to add multiple mesh currents together to find the total current through any point in the circuit.
The analysis begins with drawing the circuit and defining our mesh currents as demonstrated in Figure 2.4.8.
Figure 2.4.8. Mesh method circuit analysis.
Then, the KVL equations associated with mesh currents \(I_1\) and \(I_2\) are
\begin{align*} 0 \amp =V_b - I_1 R_1 - (I_1 - I_2) R_2 - I_1 R_4\\ 0 \amp = (I_1 - I_2)R_2 - I_2 R_3 \end{align*}
which can be arranged into the form
\begin{align*} 0 \amp = V_b - I_1(R_1 + R_2 + R_4) + I_2 R_2\\ 0 \amp = I_1 R_2 - I_2(R_2 + R_3)\text{.} \end{align*}
Once again, your favorite method for solving systems of equations can be used to find the mesh currents \(I_1=2.77\)mA and \(I_2=0.923\)mA. Therefore, the current passing through \(R_4\text{,}\) \(V_b\text{,}\) and \(R_1\) is \(I_1 = 2.77\)mA clockwise, the current through \(R_3\) is \(I_2=0.923\)mA downward, and the current through \(R_2\) is \(I_1-I_2=1.85\)mA downward. With these current values, we can once again use the same Ohm’s law method from the previous sections to find the voltages at any location in the circuit.
Note that the mesh method leaves us with a system of two equations to solve and compare that to the system of three equations that the branch method provided. This simplification comes at a cost, though. In the branch method, the variables representing currents are the actual currents passing through each part of the circuit. In the mesh method, we instead solve for mesh currents. The real currents can then be calculated as sums and differences of these mesh currents.