So,
so also auch Mathematica 4.2 ...
abgesehen davon das 4.2 das korrekt berechnet
die Behauptung also nicht stimmt
In[]:=$Version
Out[]="4.2 for SGI IRIX (August 23, 2002)"
In[]:=Det[{{1 + I, 0}, {0, 1. - I}}]
Out[]=2. + 0. I
ist der Fehler in 5.0 dem Umschreiben der Matrixfunktionen
auf BLAS & LAPACK Funktionen geschuldet und *das*
gab es 4.2 halt noch nicht. Der Fehler liegt
auch definitiv an Mathematica, denn das Ersetzen der
Intel MathKernel Bibliotheken mit den aktuellen
Versionen hilft nichts.
Ansonsten hat Rolf ja bereits den Vorschlag gemacht,
die Determinate symbolisch zu berechnen, denn sein
Det[x /. Complex[a_, b_] :> Hold[Complex][a, b]] ..
macht ja nix weiter als den Aufruf der numerischen
Funktionen zu unterbinden, denn der Fehler tritt beim
Umbau der komplexen Matrix auf.
Ausserdem kann man auch einfach
Unprotect[Det]
Det[a_]/; !FreeQ[a,Complex]:=Times @@ Eigenvalues[a]
Protect[Det]
nehmen. Was in den meisten F"allen f"ur eine
Determinaten garnicht so schlecht ist, und die
Numerik nicht v"ollig unterbindet.
Gruss
Jens
Spwelke@XXXXXXX.com wrote:
>
> Hallo,
>
> ich kann den Fehler auch für MMA 4.2 bestätigen. Auch die Substitution
> mit anderen Zahlenwerten führt zu ähnlichen Ergebnissen. Der Fehler
> liegt nicht bei der Multiplikationsfunktion, denn (1- + I)(1. -I)
> liefert das korrekte Ergebnis 2. + 0. I.
> An der Substitution liegt es auch nicht, denn Det[{{1- +I,0},{0,1. -
> I}}] ergibt auch das falsche Ergebnis. Das ist ein schlimmer Bug!
>
> Ein nicht immer gangbarer Ausweg ist: Det[A]/.a->1.
> Doch wenn A symbolisch und sehr groß ist, ist der praktische Nutzen
> gering.
>
> MfG
>
> Stefan Welke