PDA

Click to See Complete Forum and Search --> : [RESOLVED] An Engineering Math Question


Code Doc
Jul 6th, 2009, 08:00 PM
I have a regular hexagonal platform of uniform density pictured below. The inscribed circle has a radius of 2.75 units. I which to hang six weights 1 through 6 at points A through F in an optimal arrangement of one weight per point. These points are located at the intersection of the inscribed circle and the diagonals that connect the opposite points of the hexagon:

http://i156.photobucket.com/albums/t29/edwin13022/HexagonalPlatform.gif

The values of the weights (1 - 6) are shown in the table. First, how should I arrange the weights 1-6 on points A-F so that when the platform is suspended at unknown point X, the hexagon (1) hangs dead flat and (2) the distance OX is minimized.

Second, what is the distance and location of point X relative to O, given the optimal arrangement of the weights?

One other variable, at point O, another weight = 30 exists and is fixed at that center location.

jemidiah
Jul 7th, 2009, 07:34 AM
Try all combinations. Since rotations won't matter, assign weight 1 to A. Put the rest in and calculate X each time, along with OX. There are 5*4*3*2*1 = only 120 options, which a computer could burn through like nothing. Calculating X is as easy as a center of mass (http://en.wikipedia.org/wiki/Center_of_mass) calculation--the discrete formula they give at the start would be fine here.

If you want help calculating the radius vectors, I could do that.

Code Doc
Jul 7th, 2009, 10:44 AM
Starting from A, going clockwise this is what I did:
A 185
B 173
C 205
D 193
E 154
F 230

I believe this is the optimal arrangement, but that's highly intuitive. However, where is balancing point X, given that this is optimal?

jemidiah
Jul 8th, 2009, 03:02 AM
I'll implement my previous post.

Total mass of the system: 30+154+173+185+193+205+230 = 1170. The radius of the circle is 2.75 as given in the problem. For each position vector, we have r_i = 2.75*<cos(60*i degrees), sin(60*i degrees)>. Find the center of mass X of the ensemble of 7 masses (those at A-F and the one in the middle) through the center of mass formula I linked,

R = sum over m_i *r_i / sum of m_i.

Assigning the 6 masses to m_i in some arrangement and plugging it in to the formula will give the exact position of the balancing point X. That is, X = R. Try every arrangement--there are only 120 barring rotations--to find an optimal one.


Private Type Point
X As Single
Y As Single
End Type

Private Function GetR(mi() As Long, p As Long, radius As Single) As Point
'Presumes a point of mass p at coordinates (0, 0), and that each mi mass is
' distributed around a hexagon at the given radius away from the origin

Dim i As long
Dim total_mass As Single

'Do numerator sum
For i = LBound(mi) To UBound(mi)
'R = [\sum_i m_i*r_i] / total_mass
'r_i = radius * <cos(60*i degrees), sin(60*i degrees)>
GetR.X = GetR.X + mi(i) * radius * Cos(CRad(60 * i))
GetR.Y = GetR.Y + mi(i) * radius * Sin(CRad(60*i))
Next i
'Note: the point at (0, 0) cancels from the sum (though not from the total mass)

'Find total mass and divide by it
total_mass = p
For i = LBound(mi) To UBound(mi)
total_mass = total_mass + mi(i)
Next i
GetR.X = GetR.X / total_mass
GetR.Y = GetR.Y / total_mass

End Function

Private Function CRad(deg As Single) As Single
'Converts from degrees to radians
CRad = deg * 3.141592 / 180
End Function


Plugging in mi = (185, 173, 205, 193, 154, 230), p=30, and radius=2.75 says your configuration yields X = <0.0270295, 0.0223905>, taking O to be <0, 0>, with the distance from X to O as 0.0350988, by simply applying the distance formula. One thing to note is that I actually rotated your setup for convenience; that is, I plugged in

B = 185
A = 173
F = 205
E = 193
D = 154
C = 230.

But, that's just a rotation and a flip from what you have--they're equivalent. I tried every possible arrangement, and found the following to be optimal:

B = 154
A = 205
F = 193
E = 185
D = 173
C = 230

along with its equivalent version,

B = 154
A = 230
F = 173
E = 185
D = 193
C = 205

and all rotations of these (12 equivalent arrangements, in all). The X generated by B = 154...C = 230 is <0.012927, 0.0020351> with XO = 0.01309. Your intuitive guess is beaten by one other arrangement, (154, 193, 205, 185, 173, 230), and its equivalent cousins. That's not bad at all, considering there are 60 distinct arrangements, barring rotations and flips. The worst arrangement is (154, 185, 205, 230, 193, 173) with OX = 0.2309. This makes sense intuitively, since it weights one half of the hexagon with the three lightest pieces, and the other half with the three heaviest.


*Note: I typed the code above from another computer; forgive any typos.

Code Doc
Jul 9th, 2009, 03:51 PM
Jemediah, that is incredible. Thank you so much for your help. A+ all the way. :cool: :thumb:

I imagine that I can take your function code and then, with looping, find all 120 possible centers of mass and drop the results into sorted list box of strings (or sort them myself).

That's my job now. I need to do that for my own curiosity and practice to prove that your solution is optimal. I have no doubt that it is.

jemidiah
Jul 10th, 2009, 03:07 AM
Yup, what you describe is basically what I did. Since you seem to want to do that bit yourself, I won't tell you how I went about it--though I did find a fascinating number pattern as in my other thread.

Code Doc
Jul 10th, 2009, 06:46 PM
Yup, what you describe is basically what I did. Since you seem to want to do that bit yourself, I won't tell you how I went about it--though I did find a fascinating number pattern as in my other thread.
Just between you and me---nobody elsewhere found the optimal weight arrangement solution that you did. That's because you used the computer to examine all of the possible arrangements. Even though several weight location arrangements are isomers, you still have to examine all of them before you can positively conclude which arrangement (or one of its isomers) locates the balance point as closely as possible to the centroid of the hexagon. :)