Re: Curl
- To: mathgroup at smc.vnet.net
- Subject: [mg30470] Re: Curl
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Thu, 23 Aug 2001 02:15:34 -0400 (EDT)
- Organization: Universitaet Leipzig
- References: <9lvh0j$4o5$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
curl include a cross product.
The cross product is
written with the epsilon[] tensor,
Sum[epsilon[i,j,k] D[f[j],x[k]],j,k]
The epsilon tensor is 1 for an
even permutation of {i,j,k} and -1 for an odd permutation
of {i,j,k} and zero otherwise. In three dimensions this
gives just a three dimensional vector. In higher dimensions
you get tensors of higher rank.
In Mathematica you can define
epsilon[index__Integer] := Signature[{index}]
dpos[i_, n_] := Table[If[k == i, 1, 0], {k, n}]
CurlN[f_, x_, n_Integer] :=
Module[{index, run},
index = {Sequence @@ Table[Unique[], {n - 2}], j, k};
run = {#, n} & /@ Drop[index, -2];
Table[
Sum[epsilon[Sequence @@ index]Derivative[f[j]][Sequence @@
dpos[k, n]][
x], {j, n}, {k, n}], Evaluate[Sequence @@ run]]
]
that gives for n=3 the usual curl but for higher dimensions n you
get a tensor of rank n-2.
Regards
Jens
Carlo Gabrieli wrote:
>
> Hi,
> I found on Roman Maeder "Computer Science with Mathematica" elegant
> implementations of Grad, Div, Laplacian, Jacobian but not of Curl. I
> know that the Mathematica package VectorAnalysis has a Curl function
> but I'd like to learn how to implement a Curl function for an
> arbitrary number of Cartesian coordinates
>
> Thanks in advance to all
> Best Regards
> Carlo Gabrieli