How Hard Could Two Springs Be?

In the x y xy -coordinate system, two massless ideal springs are anchored at their respective coordinates shown in the figure. Their other ends are attached to a massive point particle. The figure shows the unstretched spring lengths, spring constants, the particle mass, and the gravitational acceleration (all in standard SI units).

How far from ( 0 , 0 ) (0,0) does the particle reside when it is in equilibrium (to three decimal places)?


The answer is 1.871.

This section requires Javascript.
You are seeing this because something didn't load right. We suggest you, (a) try refreshing the page, (b) enabling javascript if it is disabled on your browser and, finally, (c) loading the non-javascript version of this page . We're sorry about the hassle.

2 solutions

Steven Chase
Mar 7, 2020

I used a hill-climbing algorithm to solve. The net force on the mass is zero when the mass is positioned at ( x , y ) ( 0.733 , 1.721 ) (x,y) \approx (0.733, -1.721) . Simulation code is below, with comments

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
import math
import random

# Simulation params

x1 = 0.0
y1 = 0.0

x2 = 1.0
y2 = 0.0

L1 = 1.0
L2 = 1.0

k1 = 10.0
k2 = 30.0

m = 3.0
g = 10.0

####################################################

# Randomly initialize coordinates of mass

x = 1.0*random.random()
y = -5.0*random.random()

# Mutation size parameter

delta = 0.001

Fmin = 99999999.0

####################################################

for j in range(0,1*10**6):

    xm = x + delta * (-1.0 + 2.0 * random.random())  # Mutate x,y
    ym = y + delta * (-1.0 + 2.0 * random.random())

    v1x = x1 - xm   # vectors from mass to spring anchor points
    v1y = y1 - ym

    v2x = x2 - xm
    v2y = y2 - ym

    v1 = math.hypot(v1x,v1y)   # stretched spring lengths
    v2 = math.hypot(v2x,v2y)

    u1x = v1x/v1                # unit vectors along springs
    u1y = v1y/v1

    u2x = v2x/v2
    u2y = v2y/v2

    s1 = v1 - L1               # spring stretches
    s2 = v2 - L2

    F1s = k1*s1                # spring force magnitudes
    F2s = k2*s2

    F1sx = F1s * u1x           # spring force vectors
    F1sy = F1s * u1y

    F2sx = F2s * u2x
    F2sy = F2s * u2y

    Fgx = 0.0                  # gravity force vector
    Fgy = -m*g

    Fx = F1sx + F2sx + Fgx     # net force vector
    Fy = F1sy + F2sy + Fgy

    F = math.hypot(Fx,Fy)      # net force magnitude

    if F < Fmin:                # accept mutations if net force decreases

        Fmin = F

        x = xm
        y = ym


####################################################

print Fmin
print ""
print x
print y
print ""
print math.hypot(x,y)

print ""
print "###########################"
print ""

#7.86113991781e-06

#0.732966784399
#-1.72114439906

#1.87071599914

Chan Tin Ping
Feb 3, 2018

Can someone post a solution without brute force. Pls~~~

I think this one requires either iteration or search. @Josh Silverman , what do you think?

Steven Chase - 3 years, 4 months ago

Log in to reply

Yes, when I solved this I had to write a minimization routine. I'll look up my notebook when I get to the office next week.

Josh Silverman Staff - 3 years, 4 months ago

@Steven Chase Thanks for posting your solution. I tried to find the discrepancy but was unable to resolve. I got x=1.154, y=-1.333 dist=1.764.

A Former Brilliant Member - 1 year, 3 months ago

Log in to reply

Both springs are pulling leftward on the mass in that case, so how do the horizontal forces balance?

Steven Chase - 1 year, 3 months ago

You're right. I was just checking that and saw that. Which is weird that a FEM program would yield an erroneous solution. Then I tried to minimize the potential energy and got the vertical to balance but not the horizontal again. I have too many variables and not enough equations. Maybe an iterative solution is the only way.

A Former Brilliant Member - 1 year, 3 months ago

Log in to reply

I'm intrigued. How does the FEM solution work?

Steven Chase - 1 year, 3 months ago

Did this by hand and have a difference of 0.15N in the horizontal which I guess is close enough and F1=10.58N, F2=23N. The FEM uses the stiffness method, it had the option to assign the spring constants and for each element. The nodes are just set as coordinates. Then you place a load on a node and fix the nodes at supports - I used a pin connection fixed in x and y. It works fine for trusses with stiffer members. Not sure why it didn't work.

A Former Brilliant Member - 1 year, 3 months ago

Log in to reply

In your new problem, are we supposed to assume that springs 1 and 2 both have natural length L1, and that springs 4 and 5 both have natural length L2?

Steven Chase - 1 year, 2 months ago

Log in to reply

No, spring (1 + 2)=L1 and spring (3+4)=L2.

A Former Brilliant Member - 1 year, 2 months ago

A few questions on the new problem posted today: 1) What is the gravity value? 2) Is there friction underneath the spring?

Steven Chase - 1 year, 2 months ago

Log in to reply

Updated per your questions. Thanks! No friction under spring. g=9.81

A Former Brilliant Member - 1 year, 2 months ago

0 pending reports

×

Problem Loading...

Note Loading...

Set Loading...