Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Balance point of a solid

  • To: mathgroup at smc.vnet.net
  • Subject: [mg113812] Re: Balance point of a solid
  • From: Ray Koopman <koopman at sfu.ca>
  • Date: Sun, 14 Nov 2010 06:08:16 -0500 (EST)
  • References: <iam332$jvn$1@smc.vnet.net> <ibgj10$ec3$1@smc.vnet.net> <ibj4pb$fik$1@smc.vnet.net>

On Nov 12, 2:26 am, Ray Koopman <koop... at sfu.ca> wrote:
> On Nov 11, 3:11 am, Andreas <aa... at ix.netcom.com> wrote:
>
>> Daniel, Ray, Clifford -- Many thanks for the thought provoking
>> contributions.
>>
>> Ray and others have found using integration on this problem takes
>> inordinately long to calculate once you get to 5 dimensions.
>>
>> Could one attack this problem in another way?  It occurred to me
>> that given that we know the lengths of the base simplex and heights
>> of the trapezoids as well as the right angles of the heights to the
>> base simplex one could then calculate the length of the top lines and
>> solve the entire thing geometrically without needing to integrate.
>> Not necessarily pretty or elegant but it might give give a solution
>> that calculates fast.
>>
>> Anyone think this could work?
>
> The solution I found, rewritten here in the notation of my Nov 5
> post as  ((h/Tr@h + 1)/(1 + Length@h)).A ,  is fast and agrees
> with the results given by integrating. What's missing is a proof.

Here's a different approach to integrating. 'h' does not need to be
ordered. Perhaps it will suggest a proof of the 'fastcmass' formula.

In[1]:=
h = {1,2,3,4}
n = Length@h;
A = Transpose[Prepend[#,0]& /@
    CholeskyDecomposition[(IdentityMatrix[n-1]+1)/2]]
fastcmass = Simplify[((h/Tr@h + 1)/(1 + n)).A]

Out[1]= {1,2,3,4}
Out[3]= {{0,0,0},
         {1,0,0},
         {1/2,Sqrt[3]/2,0},
         {1/2,1/(2 Sqrt[3]),Sqrt[2/3]}}
Out[4]= {51/100,53/(100 Sqrt[3]),(7 Sqrt[2/3])/25}

In[5]:=
vars = Append[Array[x,n-1],1]
w = Simplify@LinearSolve[Append[Transpose@A,Table[1,{n}]], vars]

Out[5]= {x[1],x[2],x[3],1}
Out[6]= {1-x[1]-x[2]/Sqrt[3]-x[3]/Sqrt[6],
         x[1]-x[2]/Sqrt[3]-x[3]/Sqrt[6],
         (2 x[2])/Sqrt[3]-x[3]/Sqrt[6],
         Sqrt[3/2] x[3]}
In[7]:=
cmass = Most@#/Last@#& @ Integrate[Boole[And@@Thread[w >= 0]] *
        w.h * vars, Sequence@@Array[{x[#],0,Max@A[[All,#]]}&,n-1]]

Out[7]= {51/100,53/(100 Sqrt[3]),(7 Sqrt[2/3])/25}


  • Prev by Date: Re: Constructing matrix out of submatrices
  • Next by Date: how about removing some of the restriction on the free player input?
  • Previous by thread: Re: Balance point of a solid
  • Next by thread: Re: Balance point of a solid