Valery,
Well, solve() can kind of deal with these equations so long as they're
linear in the unknown tensor, and moreover, so long as the unknown tensor
only appears with the same combination of indices.
I say "kind of" because all solve() does is that it puts the tensor
expression that is to be inverted into the denominator. It doesn't actually
invert it.
And if the same tensor appears with different index combinations, you're out
of luck, because you need to give solve() the explicit combination of
indexes in the tensor that you wish to solve for.
So I'd certainly not recommend using solve() with itensor, even though it
kind of works, in some very simple cases.
Viktor
-----Original Message-----
From: maxima-bounces at math.utexas.edu [mailto:maxima-bounces at math.utexas.edu]
On Behalf Of Valery Pipin
Sent: Thursday, September 02, 2010 7:33 AM
To: maxima at math.utexas.edu
Subject: Re: [Maxima] How to solve equation using itensor
I'm not sure if there is a general algorithm to solve, the "real" tensor
equation, e.g., like
(g([i,n],[])+S([])*levi_civita([i,m,n],[])*k([],[m]))*u([],[n])=rhs([i],[])
to solve about vector u, where g is metric S - arbitrary scalar and k -
arbitrary vector. If g is an Euclidean like metric (Kronneker symbol) then
the
inverse operator will be
(g([i,n],[])-S([])*levi_civita([i,m,n],[])*k([],[m]))/(1+S([])^2)
Situation become already more complicated if we multiple the orginal
operator look like this
(S([])*delta([i,n],[])+O([],[j])*k([j],[])*levi_civita([i,m,n],[])*k([],[m])
)
The inverse operator will look similar as before but with complicatier
denominator. Such things appears in analytical work on the
magnetohydrodinamical turbulence.
If somebody on the list aware about the algorithms to solve tensorial
equation, it would be intersting to hear about
Thanks
Valery
> Although solve() is not really designed to deal with itensor expressions,
> it can be used, so long as you avoid reusing the same dummy index in your
> equation. I.e., try
>
> solve(X([],[i])*F([i,j],[])*X([],[j]) + a*
> X([],[u])*F([u,v],[])*Y([],[v]),a );
>
> (Note also that I corrected the position of the index in the second
> occurrence of X in the numerator and in Y in the denominator; as you
> originally wrote it, the same index occurred twice in a covariant
position,
> which is not correct.)
>
>
> Viktor
>
>
>
>
> -----Original Message-----
> From: maxima-bounces at math.utexas.edu
> [mailto:maxima-bounces at math.utexas.edu] On Behalf Of Niitsuma Hirotaka
> Sent: Thursday, September 02, 2010 12:50 AM
> To: maxima at math.utexas.edu
> Subject: How to solve equation using itensor
>
> solve(x.F.x+a*x.F.y,a)
> /*=> a=x.F.x/x.F.y*/
>
> can write as the following using itensor
>
> solve(X([],[i])*F([i,j],[])*X([j],[]) + a*
> X([],[i])*F([i,j],[])*Y([j],[]),a )
> /*=> a=X([j], [])/ Y([j], [])*/
>
> But, result is not same.
>
> How to solve equations which use itensor?
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
_______________________________________________
Maxima mailing list
Maxima at math.utexas.edu
http://www.math.utexas.edu/mailman/listinfo/maxima