Electric Circuits – How to Calculate Resistance Between Two Points in an Arbitrary Resistor Grid

electric-circuitselectrical-resistance

I need to calculate resistance in an electrical grid.
Grid is a graph. Edges of a graph are resistors. How calculate resistance between any two vertexes for arbitrary graph?
I know Kirchoff law and Ohm law. I can calculate resistance between any points for given grid, but not for arbitrary.
Is there programs to solve this problem?
Actually, my goal is to write algorithm that calculate resistance for arbitrary graph.
Any help is appreciated.

Best Answer

While mmc's answer is correct, the result of applying Kirchhoff's laws is that you get the Graph Laplacian problem.

Given a graph $G$ with each edge $E_i$ given a resistance $R_i$, the weighted graph Laplacian is given by considering the operation on functions which takes $\phi(V)$ to

$$ \nabla^2 \phi = \sum_{<W,V>} {1\over R_i} (\phi(W)-\phi(V)) $$

Where the sum extends over all $W$ which are graph neighbors of $V$. This graph Laplacian then can be solved with discrete delta-function (kronecker delta) sources. The interpretation of the Laplacian is that $\phi$ is the voltage at each point, the Laplacian is summing the currents entering each node (with sign) and setting it to zero.

If you force a certain current into one node and extract the same current at another node, you are solving the equation

$$ \nabla^2 \phi = \delta_{V,V_1} - \delta_{V,V_2} $$

The solution gives the electrostatic potential configuration for all the nerd-sniping problems. For finite graphs, this is a matrix inversion. For infinite homogenous graphs with a translation symmetry, you can reduce the translation invariant directions by Fourier transforms, which allows you to solve any homognenous grid. For general graphs, you study the graph Laplacian, which is related to the random walk on the same graph, which has many bounds on the eigenvalues, which give you the asymptotic behavior of the potential in nearly all the cases of interest.