AW: Gauß-Verfahren - Matrix lösen
Wenn es nur:-D darum geht, schnelle Langzahlarithmetik einzusetzen, kannst Du auch meine MPArith-Bibliothek verwenden (die ca 150 Mio Dezimalstellen sollten ja ausreichen). Eine Schwierigkeit bei Problemen wie Deinem ist halt, das es kein fertige Lösung gibt, man es selbst programmieren und sich erstmal einarbeiten muß. Aber wenn Du Deine Stringroutinen durch mp_xxx-Routinen ersetzt, sollte es möglich sein.
|
AW: Gauß-Verfahren - Matrix lösen
Was kriegst denn raus, wenn du (bei Floats) die Probe machst, also z.B. so. Da kann doch nix nennenswertes rauskommen?
Delphi-Quellcode:
function TGauss.GetMaxInversError: Extended; // E = A x A^-1;
var I, J, K: integer; Value: Extended; begin Result := 0; SetLength(FTemp, Count, Count); try for I := 0 to Count - 1 do for J := 0 to Count - 1 do begin Value := 0; for K := 0 to Count - 1 do Value := Value + FA[I, K] * FI[K, J]; FTemp[I, J] := Value; end; for I := 0 to Count - 1 do for J := 0 to Count - 1 do begin if I = J then Value := 1 else Value := 0; Result := Max(Result, Abs(Value - FTemp[I, J])); end; finally SetLength(FTemp, 0); end; end; |
AW: Gauß-Verfahren - Matrix lösen
Mal ein wenig zurück zur Ursprungsfrage...
Das Verfahren hat der olle Gaus entwickelt, um Rundungsfehler zu minimieren. Wenn ich nun durch die Rechnungen gar keine Rundungsfehler habe, brauche ich die auch nicht zu minimieren und kann ganz geradeaus a) Die Dreiecksform berechnen b) Rückwärtseinsetzen c) fertig sein was das genaue Rechnen betrifft, wäre es doch ganz easy sich eine Klasse zu schreiben, die von Haus aus Natürliche Zahlen bis 2^256 unterstützt. Wird durch eine Operation eine größere Zahl erforderlich, holt sich diese Klasse einen weiteren 256-Bit-Integer dazu ... Die Klasse implementiert dann Addition Subtraktion und Multiplikation (alles relativ einfach). Eine weitere Klasse besorgt das Zusammenfassen von Zähler und Nenner und am Ende der Berechnung die Division. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz