Guten Morgen Ioana,
Sie koennen die beiden unteren Matrizen mit Mma 4.2 und 512 MB
Hauptspeicher invertieren. Ihr eigener brute force trial und die
Abschaetzungen der Kollegen haben ergeben, dass man nicht den Befehl
Inverse[] verwenden sollte. Wie dann?
Die Definition der inversen Matrix m . Inverse[m] ==
IdentityMatrix[Length[m]] ist eine abgekuerzte Schreibweise fuer
Length[m] lineare Gleichungssysteme m . v_n =
IdentityMatrix[Length[m]][[n]]. Die inverse Matrix ist die Sammlung
dieser einzelnen Loesungsvektoren v_1, v_2, ..., v_n, ..., v_Length[m].
Also machen wir doch das etwa fuer quadratische Matrizen:
In[77] := Remove[lucaInverseM];
(* no regularity checks on m done *)
lucaInverseM[m_?MatrixQ] :=
Module[{resM, rk = Length[m], o, v},
resM = {};
For[o = 1, o <= rk, o++,
v = LinearSolve[m, IdentityMatrix[rk][[o]]];
resM = Append[resM, v]
];
Transpose[resM]
] /; TensorRank[m] == 2 && Dimensions[m] == Dimensions[Transpose[m]]
Die Probe gibt
In[85] := Inverse[{{x, y,
z}, {z, x, y}, {y, z, x}}] == lucaInverseM[{{
x, y, z}, {z, x, y}, {y, z, x}}]
Out[85] = True
Somit ist die Aufgabe von der Berechnung des Inversen auf die Loesung
von 7 (heatflux) bzw. 10 (stress) linearen Glgsystemen reduziert.
Allerdings muss auch dafuer der Rechner wenigstens die Determinante der
zu invertierenden Matrix ausrechnen koennen. Das ist moeglich:
In[20] := LeafCount[Det[stress]]
Out[20] = 815748323
In[21] := LeafCount[Det[heatflux]]
Out[21] = 1816756
Und auch eine der linearen Gleichungen - etwa die dritte - wird geloest:
In[82] := LeafCount[LinearSolve[stress,
IdentityMatrix[Length[stress]][[3]]]]
Out[82] = 1820265380
Wahrscheinlich bedeutet diese Unmenge von Ausdruecken das Ende des
Verstaendnisses. Rechnerisch koennen Sie es im Ernstfall so packen, dass
Sie die 7 bzw. 10 linearen Gleichungssystemen einzeln loesen und den
jeweiligen Loesungsvektor herausschreiben und dann die Loesungsvektoren
einlesen und die inverse Matrix daraus zusammensetzen (vgl.
lucaInverseM). Wenn es eine Aufgabe aus der Physik ist, lohnt sich das
Suchen nach Symmetrien in den Materialgesetzen, anstatt auf den
allgemeinsten, symmetriefreien Fall loszugehen.
Mit den besten Gruessen
Udo.
luca wrote:
Hallo!
Ich kann nicht die beiden unteren Matrizen mit Mathematica 4.1.2
(Lynux, SUSE 8.0) invertieren. (No memory available. Mathematica kernel
has shut down.) Ob es um Mathematica oder um den Computer Leistungen
geht, weiß ich nicht. Kann jemand antworten?
Grüße!
Ioana
stress = {{2*(1 - alpha15)*(eta1^3/9 - (2*eta1*eta2)/3 + eta3) - ...
heatflux =
{{eta9*gamma10 + eta10*gamma11 + eta11*gamma13 + eta12*gamma14 - ...