From: "Theodore Chronis" To: "Dave Rusin" Subject: Re: Simplex Volume , Inradius, Circumradius Date: Fri, 31 Oct 1997 17:58:49 +0200 Thanks a lot Dave , Do you know where i can find the formula for the volum of a simplex ? (In n-dimension) Thanks again Theodore Chronis tchronis@egnatia.ee.auth.gr ---------- > From: Dave Rusin > To: tchronis@egnatia.ee.auth.gr > Subject: Re: Simplex Volume , Inradius, Circumradius > Date: Παρασκευή, Οκτώβριος 31, 1997 7:41 AM > > An old post: > > From: edgar@math.ohio-state.edu (G. A. Edgar) > Newsgroups: sci.math.num-analysis,sci.math.research > Subject: Re: Stable formula for tetrahedron volume > Date: Thu, 24 Jul 1997 08:58:32 -0400 [No sense in repeating the old post I had emailed! -- djr] ============================================================================== Date: Fri, 31 Oct 1997 10:44:24 -0600 (CST) From: Dave Rusin To: tchronis@ath.forthnet.gr Subject: Re: Simplex Volume , Inradius, Circumradius Sure: given the coordinates of the vertices, subtract off one of them from the other so that one of the points is at the origin. Put the remaining points in the columns of a matrix, take the determinant, divide by n!. Now if you want the volume in terms of the _lengths of the sides_, that's harder. I suppose you'd have to take those lengths and determine the coordinates, then apply the previous paragraph. Surely there's an elegant way to do this (rather like the cases n=2 and n=3), but you could do this: put vertex V1 at the origin; put V2 at (a, 0, 0, 0, ..., 0) where a=dist(V1,V2); put V3 at (b,c,0,0,0,0,0,...) where b^2+c^2=dist(V1,V3)^2 and (a-b)^2+c^2=dist(V2,V3)^2; these give linear equations in b and let you take c=sqrt(something); choose c>=0. Likewise put each V_(i+1) at (x_1, ..., x_i, 0, ...0) where the i variables are selected to match the i distances dist(V_(i+1), V_j) (j=1, 2, ..., i); these equations are linear in all but one variable and then we compute x_i=sqrt(something), choosing x_i > 0. When all V_i are known, we take the determinant as before, which will clearly be a * c * x_3 * ... (the products of the last nonzero coordinates of the V_i's.) Since this amounts to solving a lot of linear equations, I suspect there's a determinantal condition which relates the volume to the distances, but I don't want to work it out. Sorry, no reference available. dave ============================================================================== [I don't know what I was thinking: this is easy. Given the (n+1 choose 2) interpoint distances, the above procedure amounts to computing the Cholesky decomposition of a symmetric matrix D: D = M^t*M, where the columns of M are the coordinates of the points V2, V3, ... In particular, the volume in question is (1/n!) times the product of the "last nonzero coordinates", which is the determinant of M, which is the square root of the determinant of D. For example, Suppose we have a triangle whose side lengths are A, B, and C. We place vertex V1 at the origin (0,0) in the plane, then need to place the other at positions V2=(x,0) and V3=(y,z) so that V2*V2 = dist(V1, V2)^2 = A^2 V3*V3 = dist(V1, V3)^2 = B^2 V2*V3 = (1/2)[(V2-V3)*(V2-V3)-V2*V2-V3*V3] = (1/2)(C^2-A^2-B^2) Thus the matrix M = [ x y ] [ 0 z ] is sought with M^t * M = D, where D = [ A^2 (C^2-A^2-B^2)/2 ] [ (C^2-A^2-B^2)/2 B^2 ] We don't actually require M but rather its determinant, since area(triangle) = (1/2!)*x*z = (1/2!)*det(M) = (1/2!)*det(D)^(1/2) This works out to Heron's formula -- see references in http://www.math.niu.edu/~rusin/known-math/index/51M04.html The corresponding formula for tetrahedra is http://www.math.niu.edu/~rusin/known-math/97/herons.tetrahed and may be deduced in the same way. (that's in section 52A55). The Cholesky factorization is mentioned for just this purpose in http://www.math.niu.edu/~rusin/known-math/97/cholesky (that's in section 15-XX) ==============================================================================