0

Given a triangular prism of infinite length along the X direction. A graph is formed with the set of nodes all the points on an edge of the prism with integer values of X, and the with each node connected to its two nearest neighbors in the X direction and its two neighbors sharing the same value of X.

(Think of this graph as a collection of empty triangles, all lined up, and all connected to their X-direction neighbors at the three corresponding vertices.)

The question is:

If each edge of that graph is a 1 ohm resistor, find the net resistance between two neighboring nodes sharing the same value of X.

The analagous problem for an n-dimensional Cartesian grid becomes easy, by superposing two hypothetical 1-amp currents, one sourced at neighbor A and sinked at infinity, the other sinked at neighbor B and sourced at infinity. The key is the symmetry: Each current will obviously run 1/4 amp through each of the four resistors connected to A or B; then superpose the two situations -- the resistor from A to B carries 1/2 amp. So the voltage difference between A and B is the voltage across that 1 ohm resistor, which is 1/2 volt ($V=IR$). Thus we have a net of 1 amp flowing from A to B driven by 1/2 volt of potential difference, so the effective resistance between neighboring nodes is 1/2 ohm.

(The question of effective resistance between non-neighboring nodes, say a knight's move apart, is much harder but can be attacked successfully using Fourier transform methods.)

The problem I pose should be in between in difficulty: The symmetry argument would work if we somehow could figure out the ratio of X direction currents to shared-X currents in the sink-at-infinity case, but that ratio is not obvious.

Super-experts might be able to solve this using the Fourier transform methods, but I am hoping for a simpler solution.

Mark Fischler
  • 41,743

1 Answers1

0

Here's a simple solution for this version:

Infinite Grid of Resistors - Solution by Simulation

Introduction: In one of the XKCD comics, titled "Nerd Sniping," there is an interesting problem presented as a way to involuntarily distract certain types of people (physicists, mathematicians, etc). Being an electrical engineer, I wanted to try and solve this problem in a more typical engineering way than to use math and symbolic manipulation: Successive Approximation! I'll start with the simplest case (see image below) and add more and more resistors to try and approximate an infinite grid of resistors

Solution Method: I thought it would be interesting to try and use circuit simulation to find the equivalent resistance. While I have experience with the more "graphical" circuit simulation tools such as made by Cadence and Synopsys, I had never before worked with SPICE from the command line, so I thought I would try to do the simulations with HSPICE. In the simplest circuit above, a 1 volt DC power supply is connected to the grid of seven resistors. Both the nodes and resistors are labeled, which will come in handy later when writing the HSPICE input file.

As a software engineer, this method interests me. Is my solution correct?

"""https://math.stackexchange.com/questions/855423/inter-neighbor-resistance-on-triangular-prism

Question: Given a triangular prism of infinite length along the X direction. (Think of this 
graph as a collection of empty triangles, all lined up, and all connected to their X-direction 
neighbours at the three corresponding vertices.) If each edge of that graph is a 1 ohm resistor, 
find the net resistance between two neighbouring nodes sharing the same value of X.

2015-06-24 v1.0a by Cees Timmerman, based on http://www.mbeckler.org/resistor_grid/
"""
            # i(vin) current according to http://www.ngspice.com/index.php
length = 1   # -1.500000000000000e+00
length = 10  # -1.895643923738690e+00
length = 20  # -1.895643923738961e+00
length = 40  # -1.895643923738961e+00
length = 80  # -1.895643923738961e+00

measure_at = 0   # -1.895643923738961e+00
measure_at = 1   # -2.270643923738960e+00
measure_at = 2   # -2.290380765844224e+00
measure_at = 3   # -2.291248319343355e+00
measure_at = 30  # -2.291287847477920e+00

"""
Resistance (R) = voltage (V) / amperage (I)
0.4364357804719848 = -1/-2.291287847477920e+00
Answer: 0.4364 ohm.
"""

print("EXAMPLE Resistor Prism %s long" % length)
for x in range(length):
    n = 3*x
    r = 6*x
    print("R{} {} {} {}".format(r, n, n+1, 1))
    print("R{} {} {} {}".format(r+1, n+1, n+2, 1))
    print("R{} {} {} {}".format(r+2, n+2, n, 1))
    if(x < length - 1):
        print("R{} {} {} {}".format(r+3, n, n+3, 1))
        print("R{} {} {} {}".format(r+4, n+1, n+4, 1))
        print("R{} {} {} {}".format(r+5, n+2, n+5, 1))

print("""VIN {} {} DC 1\n.OP\n.END""".format(3*measure_at, 3*measure_at+1))