Test: abeliangr

by Rolf Sulanke

email: sulanke@mathematik.hu-berlin.de
Date:  December 11,  2010

The notebooks shows a comparatively  simple Simplify process leading to  a shutting down the kernel with the failure message "No more memory...".

We define two 5x5-matrices which generate an abelian Lie algebra, depending on the parameters k, h:

cc[k_, h_] := 
  {{0, k, 1, 0, 0}, 
   {1, 0, 0, 0, k}, 
   {0, 0, 0, -h, 1}, 
   {0, 0, h, 0, 0}, 
   {0, 1, 0, 0, 0}}

cca[k_, h_] := {{0, 1, -h^2 - k, 0, 0}, 
   {0, 0, 0, -h, 1}, {1, 0, 0, h^3 + 2*h*k, 
    -h^2 - k}, {0, h, (-h)*(h^2 + 2*k), 0, 0}, 
   {0, 0, 1, 0, 0}}

The matrices commute:

Simplify[cc[k,h].cca[k,h]-cca[k,h].cc[k,h]]

Here is a parameter representation of the abelian Lie algebra

abelian2D[k_, h_][u_, v_] := cc[k,h]*u +cca[k,h]*v

abelian2D::usage="abelian2D[k,h][u,v] is a parameter representation of the 2-dimensional maximal Abelian Lie subalgebra of the pseudo-orthogonal Lie algebra o(1,4) generated by the element cc[k,h], written in isotropic-orthonormal coordinates.";

The corresponding abelian subgroup is

abeliangr2D[k_,h_][u_,v_] := MatrixExp[abelian2D[k,h][u,v]]

We shall test the commutativity of this subgroup. Up to now the memory used is

MaxMemoryUsed[]

14262296/1024

N[%/1024]

These are MB. My computer has 16 GB RAM. No other applications are running.

kk=Random[]; hh = Random[]; 
Simplify[abeliangr2D[kk,hh][u,v].abeliangr2D[kk,hh][u1,v1] -
abeliangr2D[kk,hh][u+u1,v+v1]]

After two minutes, how can this happen?
The running bash program top shows that mathkernel used nearly 90 % of the memory before shutting down.

abeliangr2D[k, h][0,0]//MatrixForm

Simplify[abeliangr2D[kk,hh][u,v].abeliangr2D[kk,hh][u1,v1] -
abeliangr2D[kk,hh][u+u1,v+v1]]

Symbolically, also with respect to the parameters only, Mathematica may not control the commutativity of the group in a reasonable time. Numerically we get the expected result:

kk=Random[]; hh = Random[]; u=Random[]; u1=Random[]; v=Random[]; v1=Random[];
Chop[Simplify[abeliangr2D[kk,hh][u,v].abeliangr2D[kk,hh][u1,v1] -
abeliangr2D[kk,hh][u+u1,v+v1]]]

testtt=Table[kk=Random[]; hh = Random[]; u=Random[]; u1=Random[]; v=Random[]; v1=Random[];
Chop[Simplify[abeliangr2D[kk,hh][u,v].abeliangr2D[kk,hh][u1,v1] -
abeliangr2D[kk,hh][u+u1,v+v1]]],{1000}];

Sum[testtt[[i]],{i,1,1000}]

Clear[kk,hh,u,u1,v,v1]

Dates of the computer:  

Prozessor (CPU):   Intel(R) Core(TM) i7 CPU 870 @ 2.93GHz
  Geschwindigkeit:  1 199,00 MHz
  Kerne:  8
  
  Arbeitsspeicher
Gesamter Arbeitsspeicher:  15,7 GiB
  Freier Arbeitsspeicher:  14,6 GiB (+ 593,1 MiB Zwischenspeicher)
  Freier Auslagerungsspeicher (Swap):  2,0 GiB

Betriebssystem
Kernel:  Linux 2.6.34.7-0.5-desktop x86_64
  Aktueller Benutzer:  rolf@EDCON
  Distribution:  openSUSE 11.3 (x86_64)
  KDE:  4.4.4 (KDE 4.4.4) "release 3"

  Grafikkarte
Hersteller:  nVidia Corporation
  Modell:  GeForce GTX 465
  2D-Treiber:  nvidia
  3D-Treiber:  NVIDIA 256.53


2 Hard disks each 500 GB, Raid 1-system,  250GB Windows 7, 250GB Linux.