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)
==============================================================================