Wir wissen, dass symmetrisch und positiv definit ist. Wir wissen, dass orthogonal ist:B
Frage: symmetrisch und positiv-definit? Antwort: ja
Frage: Könnte uns ein Computer das gesagt haben? Antwort: Vermutlich.
Gibt es symbolische Algebrasysteme (wie Mathematica), die bekannte Fakten über Matrizen verarbeiten und verbreiten?
Edit: Um klar zu sein, stelle ich diese Frage zu abstrakt definierten Matrizen. Dh ich habe keine expliziten Einträge für und , ich weiß nur, dass sie beide Matrizen sind und bestimmte Attribute wie symetrisch, positiv definit, usw. haben.B
matrix
symbolic-computation
MRocklin
quelle
quelle
Antworten:
Bearbeiten: Dies ist jetzt in SymPy
Ältere Antwort, die andere Arbeit zeigt
Nach einer Weile habe ich das gefunden.
Die aktuelle Antwort auf meine spezielle Frage lautet "Nein, es gibt kein aktuelles System, das diese Frage beantworten kann." Es gibt jedoch ein paar Dinge, die nahe zu kommen scheinen.
Zunächst wiesen Matt Knepley und Lagerbaer beide auf Arbeiten von Diego Fabregat und Paolo Bientinesi hin . Diese Arbeit zeigt sowohl die potenzielle Bedeutung als auch die Machbarkeit dieses Problems. Es ist eine gute Lektüre. Leider weiß ich nicht genau, wie sein System funktioniert oder wozu es in der Lage ist (falls jemand anderes öffentliches Material zu diesem Thema kennt, lass es mich wissen).
Zweitens gibt es eine für Mathematica geschriebene Tensor-Algebra-Bibliothek namens xAct, die Symmetrien und dergleichen symbolisch handhabt. Es macht einige Dinge sehr gut, ist aber nicht auf den Spezialfall der linearen Algebra zugeschnitten.
Drittens werden diese Regeln in einigen Bibliotheken für Coq formell niedergeschrieben , einen Assistenten zur Prüfung von Theoremen (Google-Suche nach coq linear / matrix algebra, um einige zu finden). Dies ist ein mächtiges System, das leider menschliche Interaktion zu erfordern scheint.
Nach einem Gespräch mit einigen Theorembeweisern schlagen sie vor, sich mit Logikprogrammierung (dh Prolog, das auch Lagerbaer vorschlug) für diese Art von Dingen zu befassen. Soweit ich weiß, ist dies noch nicht geschehen - ich werde vielleicht in Zukunft damit spielen.
Update: Ich habe dies mit dem Maude-System implementiert . Mein Code wird auf Github gehostet
quelle
Einige symbolische Matrixberechnungen (z. B. Blockmatrix-Vervollständigung) können mit dem Paket NCAlgebra http://www.math.ucsd.edu/~ncalg/ (das unter mathematica ausgeführt wird) durchgeführt werden.
Bergman http://servus.math.su.se/bergman/ ist ein Paket in Lisp mit ähnlichen Funktionen.
Einige relevante Artikel:
http://math.ucsd.edu/~helton/osiris/COMPALG2000/ohRevisIJC.pdf
http://math.ucsd.edu/~thesis/thesis/dkronewitter/dkronewitter.pdf
http: // www. tandfonline.com/doi/abs/10.1080/00207170600882346
quelle
CAS
2x2
3x3
Die Frage wird dann, was ist mit einer
N
dimensionalen Matrix? Vielleicht können Sie ein induktives Schema entwickeln, bei demN-1 x N-1
angenommen wird, dass für wahr ist, und dann eine neue Blockmatrix mit der Gesamtgröße erstellen, umN x N
zu beweisen, dass dies positiv, eindeutig und symmetrisch ist.Die letzte Frage, welche Software für die Aufgabe besser geeignet ist (falls vorhanden), ist meine Erfahrung mit
MATLAB/MuPad
undDerive
(benutze sie immer noch), und keiner von beiden kann sehr gut mit Vektoren und Matrizen umgehen.MATLAB
Zerlegt alles in Komponenten undDerive
kann deklarierenNon-scalars
, wendet jedoch keine Vereinfachungsregeln auf sie an.quelle
Es ist schon eine Weile her, dass ich eines dieser Pakete zum letzten Mal verwendet habe, aber ich dachte, dass Sie dies in Sprachen wie Mathematica mithilfe von Behauptungen tun könnten. So etwas wie Assert [A, Symmetric] sagt Mathematica, dass A eine symmetrische Matrix ist und so weiter. Im Moment habe ich keinen Zugriff auf eines der beiden Handys, daher muss dies überprüft werden.
quelle
Assuming
stattAssert
.Assuming
Diese Annahmen werden angewendet, wenn ein Ausdruck vereinfacht oder integriert wird. In der Dokumentation ist jedoch nicht klar, ob Matrixeigenschaften weitergegeben werden. Ich vermute, dass solche Eigenschaften nicht durch symbolische Berechnungen übertragen werden.Maple 15 kann das nicht. Es hat keine Eigenschaft "Orthogonal" für Matrizen (obwohl es Symmetric und PositiveDefinite hat).
quelle
In Mathematica können Sie diese Eigenschaften zumindest für bestimmte Matrizen überprüfen. Zum Beispiel die
A
von Ihnen beschriebene Matrix :Für die Matrix
B
:Dann:
Mathematica-Matrizen und lineare Algebra-Dokumentation
quelle