If you're seeing this message, it means we're having trouble loading external resources on our website.

If you're behind a web filter, please make sure that the domains *.kastatic.org and *.kasandbox.org are unblocked.

# Node voltage method

The Node Voltage Method solves circuits with the minimum number of KCL equations. Written by Willy McAllister.
The Node Voltage Method is an organized methods of analyzing a circuit. The Node Voltage Method is based on Kirchhoff's Current Law. This technique is embedded inside the popular circuit simulator, $\text{SPICE}$.
What is the circuit analysis challenge? Solving any circuit means creating and solving $2E$ independent equations, where $E$ is the number of elements (components and sources). Half of the equations come from the individual element laws (like Ohm's Law), and the other half come from the connections between elements.
No matter what procedure we use to solve the circuit, there is no getting around the requirement to solve $2E$ equations. Even for simple circuits, managing $2E$ equations can be a lot of work. But, there are ways to organize the effort to make it very efficient. The Node Voltage Method is one of two very efficient procedures we have for solving circuits. (The other one is the Mesh Current Method.)
The Node Voltage Method is not new science. It processes the same amount of information contained in $2E$ equations, but it is quite clever and efficient in how it organizes that information.
We will demonstrate the Node Voltage Method with the same circuit we solved using the fundamental laws:

## Definition: node voltage

We need to define a new term: node voltage. Up to now, we've talked about the element voltage that appears across the terminals of a single element (also called a branch voltage). When we use the term node voltage, we are referring to the potential difference between two nodes of a circuit.
We select one of the nodes in our circuit to be the reference node. All the other node voltages are measured with respect to this one reference node. If node $c$ is assigned as the reference node, we establish two node voltages at nodes $a$ and $b$.
The reference node is almost always called the ground node, and it gets a ground symbol in the schematic, as shown above. The potential of the ground node is defined to be $0\phantom{\rule{0.167em}{0ex}}\text{V}$. The potentials of all the other nodes are measured relative to ground.

## Node Voltage Method

The Node Voltage Method breaks down circuit analysis into this sequence of steps,
• Assign a reference node (ground).
• Assign node voltage names to the remaining nodes.
• Solve the easy nodes first, the ones with a voltage source connected to the reference node.
• Write Kirchhoff's Current Law for each node. Do Ohm's Law in your head.
• Solve the resulting system of equations for all node voltages.
• Solve for any currents you want to know using Ohm's Law.

### Assign a reference node and node voltages

We already did this above, but let's do it again. Our example circuit has three nodes, $a$, $b$, and $c$, so $N=3$. Node $c$ has a lot of connections, $4$, and it connects directly to both sources. This makes it a good candidate to play the role of reference node. Node $c$ has been marked with the ground symbol to let everyone know our choice for reference node.
We also call out $N-1=2$ node voltages on the schematic, labeled in orange as ${v}_{a}$ and ${v}_{b}$.
(There is an obvious opportunity here to simplify the two parallel resistors, $6\phantom{\rule{0.167em}{0ex}}\mathrm{\Omega }$ with $5\phantom{\rule{0.167em}{0ex}}\mathrm{\Omega }$. We will not do that, because we want to study the Node Voltage Method procedure.)

### Node voltages control the current arrow

Notice something missing from the schematic. There is no orange label on the voltage across the $20\phantom{\rule{0.167em}{0ex}}\mathrm{\Omega }$ resistor. When we need to know that voltage, we express it in terms of the node voltages.
${v}_{\text{R}}={v}_{a}-{v}_{b}\phantom{\rule{2em}{0ex}}$ or $\phantom{\rule{2em}{0ex}}{v}_{\text{R}}={v}_{b}-{v}_{a}$

#### First important Node Voltage skill - control the current arrow

The node voltages control the direction of the current arrow!
We can express the voltage across the $20\phantom{\rule{0.167em}{0ex}}\mathrm{\Omega }$ resistor as the difference between the two node voltages. This can be done two ways, with either ${v}_{a}$ or ${v}_{b}$ in the first position in the voltage difference equation. The first term in the equation is the one we consider the more positive of the two. Since we use the sign convention for passive components, the choice we make for voltage polarity determines the direction of the current arrow. The current arrow points into the positive sign on the resistor voltage.
Above left, ${v}_{a}$ is the more positive voltage compared to ${v}_{b}$. The orange arrow representing ${v}_{\text{R}}$ points in the direction of node $a$, and the current arrow points into the resistor from left to right.
Above right, ${v}_{b}$ is now defined as the more positive voltage compared to ${v}_{a}$. The orange arrow representing ${v}_{\text{R}}$ points towards node $b$, and the current arrow points into the positive end of the resistor.
We are going to use our new skill immediately, to control the direction of the current arrow in the first term of the KCL equation coming up next.

### Solve the easy nodes

The voltage ${v}_{a}$ is easy to figure out. Node $a$ connects to a voltage source that connects to reference node $c$. That makes it an easy node. The voltage at node $a$ is ${v}_{a}=140\phantom{\rule{0.167em}{0ex}}\text{V}$.

### Kirchhoff's Current Law at the remaining node

#### Second important Node Voltage skill - scribble on the schematic

The challenging part of circuit analysis is getting the signs right. Scribble on the schematic all you want. Drawing voltage signs and current arrows helps you get the signs in the KCL equation correct.
##### Third important Node Voltage skill - do Ohm's Law in your head as you write KCL
As you write each term in the KCL equation, do Ohm's Law in your head and immediately write the current in terms of node voltages divided by resistance.
We now write a KCL equation for the remaining unsolved node, $b$. Node voltage ${v}_{b}$ is the independent variable.
The current (blue arrow) flowing into node $b$ from the $20\phantom{\rule{0.167em}{0ex}}\mathrm{\Omega }$ resistor can be written as $+\frac{\left(140-{v}_{b}\right)}{20}$.
The current in the $6\phantom{\rule{0.167em}{0ex}}\mathrm{\Omega }$ and $5\phantom{\rule{0.167em}{0ex}}\mathrm{\Omega }$ resistors instantly goes into the equation as $-\frac{{v}_{b}}{6}$ and $-\frac{{v}_{b}}{5}$.
We have just one node to deal with, node $b$. KCL says the sum of the currents flowing into node $b=0$.
$+\frac{\left(140-{v}_{b}\right)}{20}-\frac{{v}_{b}}{6}-\frac{{v}_{b}}{5}+18=0$
This is pretty cool. Without too much effort, we have one equation with one unknown. When we did this in a previous article using just the fundamental laws, we had to manage $10$ equations with $10$ unknowns.

### Find the node voltages

Our system of equations happens to be just one equation. Let's solve it to find the node voltage.
$+\frac{140}{20}-\frac{{v}_{b}}{20}-\frac{{v}_{b}}{6}-\frac{{v}_{b}}{5}=-18$
$-\frac{{v}_{b}}{20}-\frac{{v}_{b}}{6}-\frac{{v}_{b}}{5}=-18-7$
$\left(-\frac{3}{60}-\frac{10}{60}-\frac{12}{60}\right)\cdot {v}_{b}=-25$
${v}_{b}=-25\cdot \left(-\frac{60}{25}\right)$
${v}_{b}=60\phantom{\rule{0.167em}{0ex}}\text{V}$

### Solve for unknown currents using Ohm's Law

Now we have both node voltages, and we can solve for all the unknown currents using Ohm's Law.
${i}_{20\phantom{\rule{0.167em}{0ex}}\mathrm{\Omega }}=\frac{\left({v}_{a}-{v}_{b}\right)}{20}=\frac{\left(140-60\right)}{20}=4\phantom{\rule{0.167em}{0ex}}\text{A}$
${i}_{6\phantom{\rule{0.167em}{0ex}}\mathrm{\Omega }}=\frac{{v}_{b}}{6}=\frac{60}{6}=10\phantom{\rule{0.167em}{0ex}}\text{A}$
${i}_{5\phantom{\rule{0.167em}{0ex}}\mathrm{\Omega }}=\frac{{v}_{b}}{5}=\frac{60}{5}=12\phantom{\rule{0.167em}{0ex}}\text{A}$
Ta daaa! Done. The circuit is analyzed.

## Steps in the Node Voltage Method

• Assign a reference node (ground).
• Assign node voltage names to the remaining nodes.
• Solve the easy nodes first, the ones with a voltage source connected to the reference node.
• Write Kirchhoff's Current Law for each node. Do Ohm's Law in your head.
• Solve the resulting system of equations for all node voltages.
• Solve for any currents you want to know using Ohm's Law.

### Reflection: Is the Node Voltage Method magic?

The Node Voltage Method seems like a lot less work than creating, managing, and solving a system of $2E$ independent equations with $2E$ unknown voltages and currents. Is the Node Voltage Method magic?
No, there is no magic. The Node Voltage Method is simply a cleverly organized way to approach the same $2E$ equations. The main innovations are,
• We convinced ourselves we can do Ohm's Law in our heads. We did this while writing the KCL equations. And as we finished up, we used Ohm's Law again to find element currents, which didn't seem like much of a chore. Telling ourselves Ohm's Law is simple makes half of the independent equations seem like not such a big deal.
• Using the concept of node voltage instead of element voltage is a brilliant move that basically annotates the KVL equations right on the schematic, so we don't have to write KVL equations.
• We recognize that a few node voltages have trivial solutions, the ones connected to a voltage source whose other terminal is ground. This knocks out one or two equations.
• What remains is the few KCL equations at the non-trivial nodes.

#### How did the Node Voltage Method get the KVL equations to "go away"?

With the Node Voltage Method, we don't even bother to write down the KVL equations. Let's write them anyway and see why.
Our circuit has three meshes, in the left, middle, and right 'windows' of the schematic.
KVL for the left mesh:
$+140-\left(140-{v}_{b}\right)-{v}_{b}=0$
This left mesh equation really illustrates the point of node voltages. We express the voltage across the $20\phantom{\rule{0.167em}{0ex}}\mathrm{\Omega }$ resistor in terms of node voltages instead of its own element voltage. With this notation, the equation collapses to $0=0$.
KVL for the middle mesh:
$+{v}_{b}-{v}_{b}=0$
KVL for the right mesh:
$+{v}_{b}-{v}_{b}=0$
All three mesh equations reduce to $0=0$ and basically drop out of the procedure. This is what your textbook means if it says something like, "With the Node Voltage Method, the KVL equations are written implicitly on the schematic."

## Guided example

Solve this circuit using the Node Voltage Method.
If you want to work this problem on your own, go for it!. Copy this schematic and work through the steps of the Node Voltage Method listed above. Even if you don't intend to carry the computation all the way through, I encourage you to do the steps up to writing KCL. That will really help you understand the Node Voltage Method.
Assign a reference node.
Assign node voltage names to the remaining nodes.
Solve the easy nodes first.
Write Kirchhoff's Current Law for each node. Do Ohm's Law in your head.
Solve the resulting system of equations for all node voltages.
Solve for any currents you want to know using Ohm's Law.

## A twist - floating voltage source

Sometimes you come across a circuit where a voltage source does not have either of its terminals connected to the ground node. We say the voltage source is floating. A floating source is a problem for the Node Voltage Method, but it is not too big of a challenge.
In this circuit, battery ${\text{V}}_{2}$ is floating. Let's use the Node Voltage Method and see what happens.
• The reference node has been selected and marked with the ground symbol.
• The other three nodes have been named and assigned node voltages, ${v}_{a}$, ${v}_{b}$ and ${v}_{c}$.
• The first analysis step is to solve the easy node, ${v}_{a}$. Since this node is connected to a voltage source that goes to ground, we immediately know ${v}_{a}={\text{V}}_{1}$. One node down, two to go.
Next, let's write a KCL equation at node $b$,
${i}_{\text{R}2}+{i}_{{\text{R}}_{3}}+{i}_{{\text{V}}_{2}}=0$
$\frac{\left({v}_{a}-{v}_{b}\right)}{\text{R}2}-\frac{{v}_{b}}{\text{R}3}+{i}_{{\text{V}}_{2}}?=0$
Oops, what should we put in for the current in the floating battery, ${i}_{\text{V}2}$? The defining equation for the battery does not talk about current. Its defining equation is $v={\text{V}}_{2}$, and there is no $i$ term involved. Batteries don't tell us what their current is. That's up to the rest of the circuit. So what do we write for this term in the KVL equation if we don't know $i$ in the battery?
At this point we break away from the standard script for Node Voltage Method, and resort to our own cleverness. It is okay to do this. Remember the Node Voltage script nothing more than an efficient way to create and solve simultaneous equations. The floating battery is giving us a little bit of trouble, but we have not forgotten the point is to create a set of independent equations.
Looking at the circuit, we can make two observations,
• The voltage at node $c$ has a rigid relationship to the voltage at node $b$. Namely, ${v}_{c}={v}_{b}+{\text{V}}_{2}$. We can add this to our system of equations, and it makes up for not knowing the current in battery ${\text{V}}_{2}$.
• We also see that the current in battery ${\text{V}}_{2}$ is the same as the current in resistor $\text{R}1$.
We can express the battery current in the Node Voltage style as $\frac{{\text{V}}_{1}-{v}_{c}}{\text{R}1}$.
Even better, we can write the battery current in terms of ${v}_{b}$ as $\frac{{\text{V}}_{1}-\left({v}_{b}+{\text{V}}_{2}\right)}{\text{R}1}$.
Now we can complete the KCL equation at node $b$.
$\frac{\left({\text{V}}_{1}-{v}_{b}\right)}{\text{R}2}-\frac{{v}_{b}}{\text{R}3}+\frac{{\text{V}}_{1}-\left({v}_{b}+{\text{V}}_{2}\right)}{\text{R}1}=0$
This equation is a little more complicated than usual, but it is still a solvable one equation in one unknown, ${v}_{b}$.
Once we solve for ${v}_{b}$, we use our extra equation to immediately get ${v}_{c}$.
${v}_{c}={v}_{b}+{\text{V}}_{2}$
Done! We have all three node voltages. If you want to find currents, proceed with Ohm's Law as we did earlier.
The floating voltage source is a favorite for teachers to put on tests, to see how you respond to an unexpected circuit configuration. We got through the difficulty by being observant and remembering that it is alright to add an extra equation to the system if needed.

### Supernode

We used the rigid relationship between the two nodes of the floating battery to generate a term to put in the KVL equation, plus an extra equation. Some textbooks call this a supernode. In the preceding discussion, we could have used that word, but we just resorted to our creativity to work through the puzzle.

## Node Voltage Method summary

The Node Voltage Method is one of two well-ordered methods of solving a circuit. This technique is embedded inside the popular circuit simulator, $\text{SPICE}$. The sequence of steps can be summarized as,
• Assign a reference node (ground).
• Assign node voltage names to the remaining nodes.
• Solve the easy nodes first, the ones with a voltage source connected to the reference node.
• Write Kirchhoff's Current Law for each node. Do Ohm's Law in your head.
• Solve the resulting system of equations for all node voltages.
• Solve for any currents you want to know using Ohm's Law.
If the circuit includes a floating source, add extra equations to account for otherwise missing current or voltage variables.

## Want to join the conversation?

• If super node could have been explained a little bit more, it would be really helpful!!
I didn't get that part clearly.
• Hello Mahbuba,

The supernode is a construct we use to simplify the circuit analysis. We could make a supernode anywhere we choose but we usually do so around a floating voltage source when using nodal analysis. When we do this so we don't have to calculate the current flow through the voltage source...

For any circle we then evoke KCL and state that the sum of the currents equals zero. For example, if there are 7 wires penetrating the surface of the circle then:

sum of currents = 0 or we could say currents in = currents out

Regards,

APD
• In the Vb node equation of the floating voltage example, Why the current through the battery is positive even though the current will be entering to the node ?
• All the current that's entering to the node is positive and all the current going out the node have a - sign. As the current in R1 and R2 is entering to the node and the current in R3 is going out of the node so: Ir1 + Ir2=Ir3 or Ir2 - Ir3 +Ir1=0. By the Ohm's law we can write this equation in terms of V, then we have: ​​(V​1​​−v​b​​)/R2 ​​−​ v​b/R3​ ​​​+​ ​​(V​1​​−(v​b​​+V​2​​))/R1​​ = 0
(1 vote)
• If current flows from higher(+) terminal to lower (-)terminal, then how come the direction of current in upper mesh (mesh with floating voltage source) is in anticlockwise direction? How does it satisfy the current flow from higher to lower potential concept?
• When you assign the direction of current arrows at the beginning of a problem (before you know the actual current directions), you can choose either direction. When you do this, you are counting on the subsequent analysis steps to produce the correct sign of the current by the time you get to the end. I did not assign resistor values in the Floating Voltage Source circuit, but if I did the current will probably end up with a negative sign. That means it is actually flowing in the opposite direction of the arrow. Given my confidence in the methods of analysis, I'm not going to worry at the beginning if I've assigned the current arrows "right". It all comes out correct at the end.
• In the guided example under Write KCL for each node, for the 10 Ohm resistor while considering Node B you pick voltage as (Vc - Vb) and for the same resistor while considering node C you pick voltage as (Vb - Vc). How does that not cause a discrepancy in calculations? Shouldn't the voltage through the resistor be the same regardless of which node is in question? And had I used the current arrows in the same direction for either side how would've that affected the equations?
• Hello Yash,

I have a challenge for you. Please solve this problem two different ways:

1) Assume all currents leave a node e.g.,

0 = (B-A)/25 + (B-0)/50 + (B-C)/10

2) Solve the problem with all currents entering a node.

If you do this very carefully you will find that it does not matter! It's all about KCL: 0 = Σ currents.

My recommendation is to keep thing as simple as possible. Be consistent and assume every current is leaving the node.

Regards,

APD
(1 vote)
• Floating voltage source example - what if we remove the R1 resistor?
I assume we then eliminate node C. How do we determine the branch (V2) current? I'm guessing we can calculate it, but when trying to do so, I get somewhat counterintuitive results.
If someone bothers to check: Let A be the ref. node.
Why is there no current flowing through R3 (and subsequently V1) if V1=V2? What does that mean? Why is it so?
(1 vote)
• Congratulations on imagining a really goofy circuit. Last question first... If V1 = V2, the voltage across R3 is 0 volts. The two batteries combine to go up by V volts and down by the same V volts. So the top of R3 is at 0 volts, just like the bottom of R3.

That also means the current in R3, by Ohm's Law, is i = v/R = 0/R = 0. No current flows in R3.

That in turn means no current can flow in source V1.

Which then tells us the current in R2 ALL comes from source V2.

Here's a simulation. Copy and paste this entire URL into a browser.

http://spinningnumbers.org/circuit-sandbox/index.html?value=[["v",[232,24,1],{"name":"V2","value":"dc(1)","json":0},["2","1"]],["r",[128,104,0],{"name":"R3","r":"1000","json":1},["1","0"]],["v",[288,104,0],{"name":"V1","value":"dc(1)","json":2},["2","0"]],["r",[232,88,1],{"name":"R2","r":"100","json":3},["2","1"]],["g",[288,152,0],{"json":4},["0"]],["w",[128,152,288,152]],["w",[128,104,128,88]],["w",[128,88,184,88]],["w",[232,88,288,88]],["w",[288,88,288,104]],["w",[232,24,288,24]],["w",[288,24,288,88]],["w",[184,24,128,24]],["w",[128,24,128,88]],["view",47.66,-5.207999999999998,2.44140625,"50","10","1G",null,"100","0.01","1000"]]
• Stupid questionI am sure, but why do you multiply the first equation (node b) by 15/10 to get rid of Vc?
• I'm able to find where in the article you are seeing this. Perhaps give me a nearby text string to help locate the equation.
• Can someone please explain me the equations in Floating voltage source problem:

I understand that in the node b according to KCL:

i(r2) + i(r3) + i(v2) = 0 as we don't know the signs of our currents yet

but in the next equation shouldn't it be as follows:
- the current from R3 enters node b thus (+)ve sign
- the current from R2 enters node b thus (+)ve sign
- the current leaves node b into V2 and into node c thus
(-)ve sign so the equations should be:

(Va-Vb)/R2 + Vb/R3 - i(V2) = 0

At the moment I find it a bit confusing and inconsistent how the directions of currents are determined. I just don't understand where I get it wrong.

Why is it we treat current i(r3) as leaving the node b (thus -Vb/R3)? It leaves the reference node, goes through R3 and enters node b, doesn't it?

P.S. Is there some kind of a rule that states that a current will leave a node and travel into a reference node if these nodes are linked together through an element (resistor R3 in this problem)?
Then why doesn't current travel into V2 and into node C ? In other words - current travels from node a into node b through R2 and then splits into two currents: one goes from node b into reference node and another current travels into V2 and then into node c (if it makes sense)? hence giving us Vc = Vb + V2

Thank you.
(1 vote)
• In general I thought I understood the node method but then I was looking at the text book Agarwal and Lang 2005 Foundations of Analog and Digital, Figure 3.41 where they show this example. I drew it below. There is just a current source.

ei----2ohm-------| |1ohm I ^ 1 amp| || |-----------------_|_
There is a statement in the text:
" Then, since the 1-A current flows through each of the resistors, the voltage across the 1-ohm􏱼 resistor is equal to ei. In other words ei = 1amp * 1ohm = 1"

That statement confuses me. If the current flows through each resistor, then ei is also equal to 2*1 isn't it?

Can't I use the node method for this circuit? With the node method, (I always assume the current flows away from the node, and the sign usually works itself out) I get:

ei/1 + ei/2 - 1 = 0
3/2 * ei = 1 => ei = ⅔ v, which of course is wrong, but I'm not sure why.
I am missing something, there is something I am not intuitively seeing. How would you write the node equation for this trivial circuit.
• Lucky for me I have this exact text. The circuit in words is a single loop, with 1ohm on the left side, 2ohm across the top, and a 1A current source pointing up on the right side. Node voltage "ei" is the upper left corner, between the two resistors. The bottom edge of the circuit is ground.

Finding voltage ei is actually very easy. The current everywhere in the loop is 1A. The 1ohm resistor is connected between ei and ground. It has 1A flowing through it. Therefore the voltage at ei is 1V.

You want to apply Kirchhoff's Current Law at node ei, but you didn't get it quite right.

The currents flowing out of node ea are
- Down through the 1ohm resistor = 1A.
- Right through the 2ohm resistor = -1A.

The KCL equation at node ea is
+1A + (-1A) = 0

It is a common error to use the current of the current source (1A) as the voltage across the current source (which is not 1V). You don't know the voltage across a current source until you consider everything connected to it.

If you want to draw schematics, try this... https://spinningnumbers.org/circuit-sandbox/index.html
Draw what you want. Click on the link icon and copy/paste a text version of the circuit. Try out this huge URL,

https://spinningnumbers.org/circuit-sandbox/index.html?value=%5B%5B%22i%22%2C%5B256%2C128%2C2%5D%2C%7B%22value%22%3A%22dc(1)%22%2C%22_json_%22%3A0%7D%2C%5B%220%22%2C%222%22%5D%5D%2C%5B%22r%22%2C%5B144%2C80%2C0%5D%2C%7B%22r%22%3A%221%22%2C%22_json_%22%3A1%7D%2C%5B%221%22%2C%220%22%5D%5D%2C%5B%22r%22%2C%5B224%2C64%2C1%5D%2C%7B%22name%22%3A%22%22%2C%22r%22%3A%222%22%2C%22_json_%22%3A2%7D%2C%5B%222%22%2C%221%22%5D%5D%2C%5B%22w%22%2C%5B144%2C80%2C144%2C64%5D%5D%2C%5B%22w%22%2C%5B144%2C64%2C176%2C64%5D%5D%2C%5B%22w%22%2C%5B224%2C64%2C256%2C64%5D%5D%2C%5B%22w%22%2C%5B256%2C64%2C256%2C80%5D%5D%2C%5B%22g%22%2C%5B200%2C128%2C0%5D%2C%7B%22_json_%22%3A7%7D%2C%5B%220%22%5D%5D%2C%5B%22w%22%2C%5B144%2C128%2C200%2C128%5D%5D%2C%5B%22w%22%2C%5B256%2C128%2C200%2C128%5D%5D%2C%5B%22view%22%2C98.6424%2C40.20688%2C3.814697265625%2C%2250%22%2C%2210%22%2C%221G%22%2Cnull%2C%22100%22%2C%220.01%22%2C%221000%22%5D%5D