Results 1 to 7 of 7

Thread: [RESOLVED] An Engineering Math Question

  1. #1

    Thread Starter
    PowerPoster Code Doc's Avatar
    Join Date
    Mar 2007
    Location
    Omaha, Nebraska
    Posts
    2,354

    Resolved [RESOLVED] An Engineering Math Question

    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:



    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.
    Last edited by Code Doc; Jul 6th, 2009 at 10:07 PM.
    Doctor Ed

  2. #2
    Only Slightly Obsessive jemidiah's Avatar
    Join Date
    Apr 2002
    Posts
    2,431

    Re: An Engineering Math Question

    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 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.
    Last edited by jemidiah; Jul 7th, 2009 at 07:39 AM.
    The time you enjoy wasting is not wasted time.
    Bertrand Russell

    <- Remember to rate posts you find helpful.

  3. #3

    Thread Starter
    PowerPoster Code Doc's Avatar
    Join Date
    Mar 2007
    Location
    Omaha, Nebraska
    Posts
    2,354

    Re: An Engineering Math Question

    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?
    Doctor Ed

  4. #4
    Only Slightly Obsessive jemidiah's Avatar
    Join Date
    Apr 2002
    Posts
    2,431

    Re: An Engineering Math Question

    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.

    Code:
    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.
    The time you enjoy wasting is not wasted time.
    Bertrand Russell

    <- Remember to rate posts you find helpful.

  5. #5

    Thread Starter
    PowerPoster Code Doc's Avatar
    Join Date
    Mar 2007
    Location
    Omaha, Nebraska
    Posts
    2,354

    Re: An Engineering Math Question

    Jemediah, that is incredible. Thank you so much for your help. A+ all the way.

    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.
    Last edited by Code Doc; Jul 10th, 2009 at 06:38 PM.
    Doctor Ed

  6. #6
    Only Slightly Obsessive jemidiah's Avatar
    Join Date
    Apr 2002
    Posts
    2,431

    Re: [RESOLVED] An Engineering Math Question

    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.
    The time you enjoy wasting is not wasted time.
    Bertrand Russell

    <- Remember to rate posts you find helpful.

  7. #7

    Thread Starter
    PowerPoster Code Doc's Avatar
    Join Date
    Mar 2007
    Location
    Omaha, Nebraska
    Posts
    2,354

    Re: [RESOLVED] An Engineering Math Question

    Quote Originally Posted by jemidiah View Post
    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.
    Doctor Ed

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width