Kita tahu bahwa simetris dan pasti-positif. Kita tahu bahwa B itu ortogonal:
Pertanyaan: apakah simetris dan pasti-positif? Jawab: Ya.
Pertanyaan: Bisakah komputer memberi tahu kami tentang hal ini? Jawab: Mungkin.
Apakah ada sistem aljabar simbolis (seperti Mathematica) yang menangani dan menyebarkan fakta yang diketahui tentang matriks?
Sunting: Untuk lebih jelas saya menanyakan pertanyaan ini tentang matriks yang didefinisikan secara abstrak. Yaitu saya tidak memiliki entri eksplisit untuk dan B , saya hanya tahu bahwa mereka berdua matriks dan memiliki atribut khusus seperti simetris, pasti positif, dll ....
matrix
symbolic-computation
MRocklin
sumber
sumber
Jawaban:
Sunting: Ini sekarang di SymPy
Jawaban yang lebih lama yang menunjukkan pekerjaan lain
Jadi setelah melihat ini sebentar, inilah yang saya temukan.
Jawaban saat ini untuk pertanyaan spesifik saya adalah "Tidak, tidak ada sistem saat ini yang dapat menjawab pertanyaan ini." Namun ada beberapa hal yang tampaknya mendekati.
Pertama, Matt Knepley dan Lagerbaer sama-sama menunjuk karya Diego Fabregat dan Paolo Bientinesi . Karya ini menunjukkan kepentingan potensial dan kelayakan masalah ini. Ini bacaan yang bagus. Sayangnya saya tidak yakin persis bagaimana sistemnya bekerja atau apa yang mampu dilakukannya (jika ada yang tahu materi publik lainnya tentang topik ini, beri tahu saya).
Kedua, ada perpustakaan aljabar tensor yang ditulis untuk Mathematica yang disebut xAct yang menangani simetri dan semacam itu secara simbolis. Itu melakukan beberapa hal dengan sangat baik tetapi tidak disesuaikan dengan kasus khusus aljabar linier.
Ketiga, aturan-aturan ini ditulis secara formal di beberapa perpustakaan untuk Coq , asisten pembuktian teorema otomatis (pencarian Google untuk aljabar linear / aljabar matriks untuk menemukan beberapa). Ini adalah sistem yang kuat yang sayangnya tampaknya membutuhkan interaksi manusia.
Setelah berbicara dengan beberapa teorema orang yang mereka sarankan melihat ke pemrograman logika (yaitu Prolog, yang Lagerbaer juga menyarankan) untuk hal semacam ini. Setahu saya ini belum dilakukan - saya bisa bermain dengannya di masa depan.
Pembaruan: Saya sudah menerapkan ini menggunakan sistem Maude . Kode saya dihosting di github
sumber
SymPy
menyimpulkan penyederhanaan multiplikasi dan inversi matriks?Beberapa perhitungan matriks simbolik (misalnya, penyelesaian matriks blok) dapat dilakukan dengan paket NCAlgebra http://www.math.ucsd.edu/~ncalg/ (yang berjalan di bawah mathematica).
Bergman http://servus.math.su.se/bergman/ adalah paket dalam Lisp dengan kemampuan serupa.
Beberapa makalah yang relevan:
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
sumber
CAS
2x2
3x3
Pertanyaannya kemudian, bagaimana dengan
N
matriks dimensi? Mungkin Anda dapat datang dengan skema induktif di mana untukN-1 x N-1
dianggap benar dan kemudian membangun matriks blok baru dengan ukuran keseluruhanN x N
untuk membuktikan bahwa positif pasti dan simetris.Jadi pertanyaan terakhir, perangkat lunak mana yang lebih cocok untuk tugas (jika ada), pengalaman saya telah dengan
MATLAB/MuPad
danDerive
(masih menggunakannya) dan tak satu pun dari mereka menangani vektor dan matriks dengan sangat baik.MATLAB
memecah semuanya menjadi komponen, danDerive
dapat mendeklarasikanNon-scalars
tetapi tidak menerapkan aturan penyederhanaan apa pun untuknya.sumber
Sudah lama sejak saya terakhir menggunakan salah satu dari paket ini, tapi saya pikir Anda bisa melakukan ini dalam bahasa seperti Mathematica melalui penggunaan pernyataan. Sesuatu seperti Assert [A, Symmetric] memberi tahu Mathematica bahwa A adalah matriks simetris, dan sebagainya. Saya tidak memiliki akses ke keduanya saat ini, jadi ini adalah sesuatu yang harus diperiksa.
sumber
Assuming
bukanAssert
.Assuming
akan menerapkan asumsi-asumsi ini ketika menyederhanakan atau mengintegrasikan ekspresi, tetapi dokumentasi tidak jelas tentang apakah properti matriks diperbanyak. Dugaan saya adalah bahwa properti seperti itu tidak dibawa melalui perhitungan simbolik.Maple 15 tidak dapat melakukannya. Ini tidak memiliki properti "Orthogonal" untuk matriks (meskipun memiliki Symmetric and PositiveDefinite).
sumber
Dalam Mathematica Anda setidaknya dapat memeriksa properti ini untuk matriks tertentu. Misalnya, matriks
A
seperti yang Anda gambarkan:Untuk matriks
B
:Kemudian:
Matriks Mathematica dan Dokumentasi Aljabar Linier
sumber