Finding effective resistance between 2 nodes in an electric circuit network with resistors.

WBahn

Joined Mar 31, 2012
33,076
If also never seen a "popular" problem like this, particularly one where the goal is to find ALL of the resistances as seen between ANY pair of points. The "popular" problems always seem to be aimed at exploiting symmetry or infinite series in one way or another.
 
I'm using R to do it. Its for my course project where i am analyzing a huge network with edges.. im planning to use effective conductance as a measure of how connected two nodes are.
13rajendra,
Those of us who help people on the forum get enjoyment out of knowing that the effort we make to help is successful. Please tell us if your project was a success; give us a few details. :)
 

MrAl

Joined Jun 17, 2014
13,769
Hello everyone, I am new to this forum.
I have a very simple problem that I am not able to solve.

I have a very simple electrical network. There are 10000 nodes. Each node is connected to few other nodes with resistors. On average one node is connected to about 20 other nodes or so.

I have this network represented as a 10000*10000 matrix where rows and columns are basically those 10000 nodes. Each element in the matrix is the resistance values between two nodes. Diagonal elements are zero which means the resistance between a node to itself is zero. Most of the non diagonal elements are infinite which means these nodes pairs are not connected with each other, thus infinite resistance.

All I want is to find the effective resistance between each pair of node. Basically I want a 10000*10000 matrix where each element is the effective resistance between 2 nodes.


I would be glad if anyone knows how to do it or can tell me where should I seek help to solve this.

Thank you so much.
Hi,

I am just seeing this thread so not sure if you found a way to do it yourself or not.

The typical way is to apply a current and measure the resulting voltage. You then use Ohm's Law to solve for the resistance.

For a huge network like this though, it could be very hard to set up the equations and then solve them all in the usual linear fashion.
Another way that is used is to borrow methods for solving partial differential equations numerically that involve two or more dimensions. This works on huge networks.
Here instead of solving for derivatives we just solve for currents and voltages.

The method is actually very simple for this, but you have to realize that if all the resistors are of a different value with no macro sets then you will have an AWFUL lot of data entry to do, and you would have to do it all flawlessly. That means if you had a million resistors all of different values and there was no pattern to the values, you would have to enter each and every value into what would look something like a regular matrix. The matrix would be a topology matrix.

I can illustrate the method here because it is so simple. For a large number of resistors it could take some time to complete though. I've done very large grids and they could take several minutes to solve.
Starting with a regular resistive voltage divider, which is the most basic resistor circuit where we do not know the middle node voltage yet. We have a 10vdc power source, and two resistors we know the value of, let's keep it simple, 1k resistors forming a voltage divider from the 10vdc source to ground. We want to know the middle node voltage.
First, we know the voltage has to be between 10 and 0 volts, so we start with one-half of the power supply voltage. That is 5 volts.
Next, we check the current through the two resistors and the voltage drops. If the current through both resistors works out with the voltage across each one according to Ohm's Law, then we are done. If not, we increment the central node voltage and try again. Once we get close, we divide the increment in half and start again.
For the two 1k resistors we get the right current and voltage for each resistors, so we would be done. Since networks are never that simple, let's try a 1k on top and 3k on the bottom. Now when we start with 5 volts for the central node, we see we get:
1k: 5 volts and 0.005 amps
3k: 5 volts and 0.00167 amps
These two are in series, yet one current is not the same as the other so that violates the series circuit rule of having the same current for each element in a series circuit.
Since 0.005 is larger than 0.00167 we know we have to step up. Let's say we start the increment at 1 volt.
Now we have:
1k: 4 volts and 0.004 amps
3k: 6 volts and 0.002 amps.
From this we can see that the two currents got closer to being equal, so we are headed in the right direction. It's still not the same current, so take another step of 1 volt. Then we have:
1k: 3 volts and 0.003 amps
3k: 7 volts and 0.00233 amps.
The two currents are more equal now, but still not the same, so take another step of 1 volt. Now:
1k: 2 volts and 0.002 amps
3k: 8 volts and 0.00267 amps.
A this point the current levels became opposite by comparison to what we had to start with. This means we have to step i the other direction now. Before we do that though we divide the step by 2. That gives us a step of 0.5 volts now, and it's the other way so it's -0.5 volts.
Taking that new step we then have:
1k: 2.5 volts and 0.0025 amps
3k: 7.5 volts and 0.0025 amps
Now the two currents are equal, so we are done with that node.

This takes several iterations in most cases, and then we have to return to that node once we solve the other nodes because they will affect the terminal voltages across these two resistors when they are part of a larger network.

As time consuming as this sounds it actually works. You can solve the Laplace Equation using this method on a very, very, large network of resistors. 1 million resistors would fairly easy, except for the fact that if there is no pattern to the resistors you have to enter or scan each one into the program.
Oh BTW you use a program you'd never do that many by hand.
 
Top