DMUG-Archiv 2003

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: Fehler von Det[] in Mathematica 5.0 ?

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


Antworten:
Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html