|
|
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] = TrueSomit 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! |