On Tue, May 27, 2008 at 11:42:21AM +0200, Ondrej Certik wrote:
> Hi,
>
> I have a disk in the (x,y) plane rotating with the angular velocity
> omega. Now I'd like to play with differential geomtry on the disk, so
> I start with the Euclidean metrics in my laboratory system and
> transform it to the disk, I get this:
>
> In [1]: var("t omega")
> Out[1]: (t, ω)
>
> In [2]: g_dd = Matrix([(-1+omega*(x**2+y**2),2*omega*y,-2*omega*x,0),
> (2*omega*y, 1, 0, 0), (-2*omega*x, 0, 1, 0), (0, 0, 0, 1)])
>
> In [4]: g_dd
> Out[4]:
> ⎡       ⎛ 2    2⎞                                                   ⎤
> ⎢-1 + ω*⎝x  + y ⎠            2*ω*y           -2*ω*x                0⎥
> ⎢                                                                   ⎥
> ⎢           2*ω*y                1                0                0⎥
> ⎢                                                                   ⎥
> ⎢          -2*ω*x                0                1                0⎥
> ⎢                                                                   ⎥
> ⎣               0                0                0                1⎦
>
>
> The g_dd stands for g_\mu_\nu (i.e. both indices down). Now I want to
> calculate the Christoffel symbols from this metrics. For this, I need
> to calculate the g^\mu^\nu, which is just the matrix
> inversion:

I dont know about this stuff I am a engiener :-)

> In [3]: g_uu = g_dd.inv()
>
> However, try to display this:
>
> In [6]: g_uu
> [many pages of output]
>
> So let's just try to look at [0,0]:
>
> In [9]: g_uu[0, 0]
> [still too long]
>
> In [9]: print g_uu[0, 0]
> -1/(1 - 4*omega**2*x**2/(-1 + omega*(x**2 + y**2)) -
> 16*omega**4*x**2*y**2*(-1 + omega*(x**2 + y**2))**(-2)/(1 -
> 4*omega**2*y**2/(-1 + omega*(x**2 + y**2))))*(2*omega*x/(-1 +
> omega*(x**2 + y**2)) + 8*x*omega**3*y**2*(-1 + omega*(x**2 +
> y**2))**(-2)/(1 - 4*omega**2*y**2/(-1 + omega*(x**2 +
> y**2))))*(-2*omega*x/(-1 + omega*(x**2 + y**2)) -
> 8*x*omega**3*y**2*(-1 + omega*(x**2 + y**2))**(-2)/(1 -
> 4*omega**2*y**2/(-1 + omega*(x**2 + y**2)))) + 1/(-1 + omega*(x**2 +
> y**2)) + 4*omega**2*y**2*(-1 + omega*(x**2 + y**2))**(-2)/(1 -
> 4*omega**2*y**2/(-1 + omega*(x**2 + y**2)))
>
>
> Any try to simplify this has failed (I mean simply that it didn't
> simplify much). Is there any way to get this simplified, or is it just
> so complex by nature? Maybe that's the reason to use polar
> coordinates.

I guess the matrix inversion is done by the gauss algorithm. But my
experience is that the gauss isnt so good for symbolic calculation.

Try to calc the matrix inverse with the determiants

  M^-1 = 1/det(M) * (M_adj).T

  with

  M_adj := (-1)^(i+j) * det(M_ij)

  M_ij  := Matrix M without row i and without column j

and the evaluations of the determinat of your matrix is easy. This is
also (shortly) discribed in

  http://en.wikipedia.org/wiki/Inverse_matrix#Analytic_solution

I hope that works.


By,  Friedrich

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sympy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to