> Now, with respect to J, the interesting fact is that,
> although  A,B,:C  is of shape 3 2, the expression
>   det A,B,:C
> correctly computes the same oriented area of ABC.
> I discovered for myself this behaviour of J several
> years ago.  To my knowledge, it is not documented.
> Apparently J computes `determinants' of matrices of
> any shape.  At least it does not object to.  :)

The dictionary entry says:
http://www.jsoftware.com/books/help/dictionary/d300.htm

 The phrases -/ . * and +/ . * are the determinant
 and permanent of square matrix arguments. More 
 generally, the phrase u . v is defined in terms of 
 a recursive expansion by minors along the first 
 column, as discussed below. 

And two of the examples that follow are not on
square matrices.  Given that, it would take a perverse interpretation to 
conclude that the monad 
u . v  does NOT work on non-square matrices.



----- Original Message -----
From: Boyko Bantchev <[EMAIL PROTECTED]>
Date: Wednesday, August 9, 2006 7:43 am
Subject: Re: [Jgeneral] on you left

> On 8/9/06, Brian Schott <[EMAIL PROTECTED]> wrote:
> > I did not know that the determinant had such an
> > interpretation (signed area of a triangle).
> > ...
> >         I was not aware that a determinant was defined for a
> > nonsquare matrix, which Boyko defines. With that in mind I
> > redefined Boyko's formula to omit the third (0 0) point and
> > think I get the same result as the original forumla.
> > ...
> >         But the more important question regarding Boyko's
> > solution is, how can we make the leap from my original
> > problem definition to the signed area of a triangle?
> 
> Brian,
> 
> In my yesterday's posts I was too busy doing other things,
> and probably too terse to be clear.  Meanwhile others
> pointed to some related facts, but maybe I should still
> explain in detail what I meant.  Here it is.
> 
> As you noticed, if
>   det =. -/ . *
> and you omit 0 0 and only compute  det B,:A , you would
> get the same result.  And indeed determinant in mathematics
> only makes sense for square matrices.  For the above case,
> we are computing the doubled oriented area of the triangle
> OAB.  (To be precise, that is actually the *negated* area
> -- that of OBA -- because I wanted `positive' to mean `A is
> left'.)
> 
> On the other hand, the presence of 0 0 in what I wrote
> was to suggest that you can actually take any point, say
> X, instead of O(0,0), and you will still be computing the
> oriented area of a triangle.  Namely, consider three planar
> points
>   'A B C' =. Ax Ay; Bx By; Cx Cy
> >From linear algebra, the determinant of the matrix
> Ax Ay 1, Bx By 1,: Cx Cy 1  (of shape 3 3), or
> equivalently that of  (B-A),:C-A  (of shape 2 2)
> is twice the oriented area of the triangle ABC.
> (See a note at the end about why it is so.)
> 
> So if the determinant is positive, A, B, and C are
> counterclockwise and thus, if you are looking from
> A, then B is to the right of C (and C is to the right
> of A from B, and A is to the right of B from C.)
> 
> Now, with respect to J, the interesting fact is that,
> although  A,B,:C  is of shape 3 2, the expression
>   det A,B,:C
> correctly computes the same oriented area of ABC.
> I discovered for myself this behaviour of J several
> years ago.  To my knowledge, it is not documented.
> Apparently J computes `determinants' of matrices of
> any shape.  At least it does not object to.  :)
> 
> So, e.g.:
>   'A B C'=. 1 0; 2 1; 2 5
>   det A,B,:C
> 4
> 
> It is somewhat curious that the area of a quadrangle
> ABCD can be computed with a formula as simple as for
> a triangle, namely  -:(C-A),:D-B  (that easily follows
> from the triangle formula).
> 
> How about higher dimensions?  For spacial points:
>   'A B C D'=. 9 8 7; 3 2 1; 4 5 6; 10 2 3
>   det A,B,C,:D
> 108
> (a det of a (4 3)-shaped matrix).
> 
> The obtained value is 6 times the oriented volume of the
> tetrahedron ABCD.  The value is positive when, looking
> from, say D, the (spacial) triangle ABC is a *negative*,
> i.e. clockwise-oriented triple (and similarly if you look
> from another apex).
> 
> Similar facts hold for higher dimensions (if that is
> of interest): the hypervolumes that det gives should
> be divided by !n, where n is the number of dimensions
> of the hyperspace.
> 
> We can go to a lower dimension, too.
>   'A B'=. 2; 5
>   det A,:B
> _3
> is an example of expensively computing a difference between
> two numbers (or the oriented length of the segment between
> two points in an one-dimensional space).
> 
>  ~~~~~~
> 
> P.S.: Why does  -: det (B-A),:C-A  equal the oriented area
> of the triangle ABC?
> B-A and C-A are two of the sides of ABC.  Let their lengths
> be c and b, respectively, and let
>   'x1 y1'=. B-A
>   'x2 y2'=. C-A
> The determinant equals  (x1*y2)-x2*y1 , which is the scalar
> product of  -y1 x1  and  x2 y2 .
> -y1 x1  is a vector of the same length as  B-A  and
> rotated at 90 degrees w.r.t. the latter.  Because the
> scalar product also equals b*c*COS, where COS is the cosine
> between  -y1 x1  and  x2 y2 , it also equals b*c*SIN where
> SIN is the sine of the complementary to 90 degrees angle.
> However, b*SIN equals h -- the distance from C to AB, and
> so, finally,  -: det (B-A),:C-A  equals  -:c*h, which,
> as known from school geometry, is the area of ABC.
> 
> Well, I have brushed under the carpet the sign of COS (and
> SIN), but it is not difficult to figure out that the cosine
> (hence the area) is positive when the corresponding angle
> is within 90 degrees, which means B-A is to the right of C-A.


----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to