Dokumentation | CI | Abdeckung | DOI | Downloads |
---|---|---|---|---|
Wenn Sie Krylov.jl in Ihrer Arbeit verwenden, zitieren Sie es bitte mit den in CITATION.cff
angegebenen Metadaten.
@article{montoison-orban-2023, author = {Montoison, Alexis and Orban, Dominique}, title = {{ Krylov.jl : A Julia basket of hand-picked Krylov methods}}, journal = {Journal of Open Source Software}, volume = {8}, number = {89}, pages = {5187}, year = {2023}, doi = {10.21105/joss.05187} }
Dieses Paket bietet Implementierungen einiger der nützlichsten Krylov-Methoden für eine Vielzahl von Problemen:
Quadratische oder rechteckige Vollrangsysteme
Ax = b
sollte gelöst werden, wenn b im Bereichsraum von A liegt. Diese Situation tritt auf, wenn
A ist quadratisch und nichtsingulär,
A ist hoch und hat den vollen Spaltenrang und b liegt im Bereich von A .
Lineare Probleme der kleinsten Quadrate
minimieren ‖ b - Ax ‖
sollte gelöst werden, wenn b nicht im Bereich von A liegt (inkonsistente Systeme), unabhängig von der Form und dem Rang von A. Diese Situation tritt hauptsächlich auf, wenn
A ist quadratisch und singulär,
A ist groß und dünn.
Unterbestimmte Systeme sind seltener, kommen aber auch vor.
Wenn es unendlich viele solcher x gibt (weil A in der Spalte rangdefizient ist), wird eines mit minimaler Norm identifiziert
minimieren ‖ x ‖ abhängig von x ∈ argmin ‖ b - Ax ‖.
Lineare Probleme der kleinsten Norm
Minimiere ‖ x ‖ unter der Bedingung Ax = b
sollte gelöst werden, wenn A einen Spaltenrangmangel aufweist, b jedoch im Bereich von A liegt (konsistente Systeme), unabhängig von der Form von A . Diese Situation tritt hauptsächlich auf, wenn
A ist quadratisch und singulär,
A ist kurz und breit.
Überbestimmte Systeme sind seltener, kommen aber auch vor.
Adjungierte Systeme
Ax = b und Aᴴy = c
wobei A jede beliebige Form haben kann.
Sattelpunkt- und hermitesche quasidefinite Systeme
[ M A ] [ x ] = [ b ]
[ Aᴴ -N ] [ y ] [ c ]
wobei A jede beliebige Form haben kann.
Verallgemeinerte Sattelpunkt- und nicht-hermitesch-partitionierte Systeme
[ M A ] [ x ] = [ b ]
[ B N ] [ y ] [ c ]
wobei A jede beliebige Form haben kann und B die Form von Aᴴ hat. A , B , b und c müssen alle ungleich Null sein.
Krylov-Löser eignen sich besonders für Situationen, in denen solche Probleme gelöst werden müssen, eine Faktorisierung jedoch nicht möglich ist, weil:
A ist nicht explizit verfügbar,
A wäre dicht oder würde übermäßig viel Speicher verbrauchen, wenn es materialisiert würde.
Faktoren würden übermäßig viel Speicher verbrauchen.
Iterative Methoden werden in den folgenden Situationen empfohlen:
das Problem so groß ist, dass eine Faktorisierung nicht möglich oder langsam wäre,
In Fällen, in denen das Problem eine ungünstige Spektralstruktur aufweist, ist ein wirksamer Vorkonditionierer bekannt.
Der Operator kann effizient als dünn besetzte Matrix dargestellt werden.
Der Operator ist schnell , dh er kann mit größerer Komplexität angewendet werden, als wenn er als Matrix materialisiert wäre. Bestimmte schnelle Operatoren würden sich als dichte Matrizen materialisieren.
Alle Solver in Krylov.jl verfügen über eine In-Place-Version, sind mit der GPU kompatibel und funktionieren in jedem Gleitkomma-Datentyp.
Krylov kann über den Julia-Paketmanager installiert und getestet werden:
Julia> ] pkg> Krylov hinzufügen pkg> Test Krylov
Wenn Sie glauben, einen Fehler gefunden zu haben, können Sie gerne ein Problem eröffnen. Auch gezielte Anregungen und Wünsche können als Issues eröffnet werden. Bevor Sie eine Pull-Anfrage öffnen, starten Sie bitte ein Problem oder eine Diskussion zu diesem Thema.
Wenn Sie eine Frage stellen möchten, die nicht für einen Fehlerbericht geeignet ist, können Sie hier gerne eine Diskussion beginnen. Dieses Forum dient der allgemeinen Diskussion über dieses Repository und die JuliaSmoothOptimizers-Organisation, daher sind Fragen zu unseren Paketen willkommen.