SymPy - Matriks
Dalam Matematika, matriks adalah larik dua dimensi dari angka, simbol, atau ekspresi. Teori manipulasi matriks berkaitan dengan melakukan operasi aritmatika pada objek matriks, tunduk pada aturan tertentu.
Transformasi linier adalah salah satu aplikasi penting dari matriks. Banyak bidang keilmuan, khususnya yang berkaitan dengan Fisika menggunakan aplikasi terkait matriks.
Paket SymPy memiliki modul matriks yang menangani penanganan matriks. Ini termasuk kelas Matrix yang objeknya mewakili matriks.
Note: If you want to execute all the snippets in this chapter individually, you need to import the matrix module as shown below −
>>> from sympy.matrices import Matrix
Example
>>> from sympy.matrices import Matrix
>>> m=Matrix([[1,2,3],[2,3,1]])
>>> m
$\displaystyle \left[\begin{matrix}1 & 2 & 3\\2 & 3 & 1\end{matrix}\right]$
Saat menjalankan perintah di atas di shell python, output berikut akan dihasilkan -
[1 2 3 2 3 1]
Matriks dibuat dari objek List dengan ukuran yang sesuai. Anda juga bisa mendapatkan matriks dengan mendistribusikan item daftar dalam jumlah baris dan kolom yang ditentukan.
>>> M=Matrix(2,3,[10,40,30,2,6,9])
>>> M
$\displaystyle \left[\begin{matrix}10 & 40 & 30\\2 & 6 & 9\end{matrix}\right]$
Saat menjalankan perintah di atas di shell python, output berikut akan dihasilkan -
[10 40 30 2 6 9]
Matriks adalah objek yang bisa berubah. Modul matriks juga menyediakan kelas ImmutableMatrix untuk mendapatkan matriks yang tidak dapat diubah.
Manipulasi dasar
Itu shape properti objek Matrix mengembalikan ukurannya.
>>> M.shape
Output untuk kode di atas adalah sebagai berikut -
(2,3)
Metode row () dan col () masing-masing mengembalikan baris atau kolom dari nomor yang ditentukan.
>>> M.row(0)
$\displaystyle \left[\begin{matrix}10 & 40 & 30\end{matrix}\right]$
Output untuk kode di atas adalah sebagai berikut -
[10 40 30]
>>> M.col(1)
$\displaystyle \left[\begin{matrix}40\\6\end{matrix}\right]$
Output untuk kode di atas adalah sebagai berikut -
[40 6]
Gunakan operator slice Python untuk mengambil satu atau lebih item milik baris atau kolom.
>>> M.row(1)[1:3]
[6, 9]
Kelas matriks memiliki metode row_del () dan col_del () yang menghapus baris / kolom tertentu dari matriks yang diberikan -
>>> M=Matrix(2,3,[10,40,30,2,6,9])
>>> M.col_del(1)
>>> M
Saat menjalankan perintah di atas di shell python, output berikut akan dihasilkan -
Matrix([[10, 30],[ 2, 9]])
Anda dapat menerapkan gaya ke output menggunakan perintah berikut -
$\displaystyle \left[\begin{matrix}10 & 30\\2 & 9\end{matrix}\right]$
Anda mendapatkan output berikut setelah menjalankan cuplikan kode di atas -
[10 30 2 9]
>>> M.row_del(0)
>>> M
$\displaystyle \left[\begin{matrix}2 & 9\end{matrix}\right]$
Anda mendapatkan output berikut setelah menjalankan cuplikan kode di atas -
[2 9]
Demikian pula, metode row_insert () dan col_insert () menambahkan baris atau kolom pada indeks baris atau kolom tertentu
>>> M1=Matrix([[10,30]])
>>> M=M.row_insert(0,M1)
>>> M
$\displaystyle \left[\begin{matrix}10 & 30\\2 & 9\end{matrix}\right]$
Anda mendapatkan output berikut setelah menjalankan cuplikan kode di atas -
[10 40 30 2 9]
>>> M2=Matrix([40,6])
>>> M=M.col_insert(1,M2)
>>> M
$\displaystyle \left[\begin{matrix}10 & 40 & 30\\2 & 6 & 9\end{matrix}\right]$
Anda mendapatkan output berikut setelah menjalankan cuplikan kode di atas -
[10 40 30 6 9]
Operasi Aritmatika
Operator biasa +, - dan * ditentukan untuk melakukan penjumlahan, pengurangan, dan perkalian.
>>> M1=Matrix([[1,2,3],[3,2,1]])
>>> M2=Matrix([[4,5,6],[6,5,4]])
>>> M1+M2
$\displaystyle \left[\begin{matrix}5 & 7 & 9\\9 & 7 & 5\end{matrix}\right]$
Anda mendapatkan output berikut setelah menjalankan cuplikan kode di atas -
[5 7 9 9 7 5]
>>> M1-M2
$\displaystyle \left[\begin{matrix}-3 & -3 & -3\\-3 & -3 & -3\end{matrix}\right]$
Anda mendapatkan output berikut setelah menjalankan cuplikan kode di atas -
[- 3 -3 -3 -3 -3 -3]
Perkalian matriks hanya dimungkinkan jika - Jumlah kolom dari matriks ke-1 harus sama dengan jumlah baris dari matriks ke-2. - Dan hasilnya akan memiliki jumlah baris yang sama dengan matriks pertama, dan jumlah kolom yang sama dengan matriks ke-2.
>>> M1=Matrix([[1,2,3],[3,2,1]])
>>> M2=Matrix([[4,5],[6,6],[5,4]])
>>> M1*M2
$\displaystyle \left[\begin{matrix}31 & 29\\29 & 31\end{matrix}\right]$
Output untuk kode di atas adalah sebagai berikut -
[31 29 29 31]
>>> M1.T
$\displaystyle \left[\begin{matrix}1 & 3\\2 & 2\\3 & 1\end{matrix}\right]$
Output berikut diperoleh setelah menjalankan kode -
[1 3 2 2 3 1]
Untuk menghitung determinan matriks, gunakan metode det (). Determinan adalah nilai skalar yang dapat dihitung dari elemen-elemen matriks persegi
>>> M=Matrix(3,3,[10,20,30,5,8,12,9,6,15])
>>> M
$\displaystyle \left[\begin{matrix}10 & 20 & 30\\5 & 8 & 12\\9 & 6 & 15\end{matrix}\right]$
Output untuk kode di atas adalah sebagai berikut -
[10 20 30 5 8 12 9 6 15]
>>> M.det()
Output untuk kode di atas adalah sebagai berikut -
-120
Pembangun Matriks
SymPy menyediakan banyak jenis kelas matriks khusus. Misalnya, matriks Identitas, matriks dari semua nol dan satu, dll. Kelas-kelas ini masing-masing dinamai mata, nol, dan satu. Matriks identitas adalah matriks bujur sangkar dengan elemen-elemen yang jatuh pada diagonal diatur ke 1, elemen lainnya adalah 0.
Example
from sympy.matrices import eye eye(3)
Output
Matrix([[1, 0, 0], [0, 1, 0], [0, 0, 1]])
$\displaystyle \left[\begin{matrix}1 & 0 & 0\\0 & 1 & 0\\0 & 0 & 1\end{matrix}\right]$
Output untuk kode di atas adalah sebagai berikut -
[1 0 0 0 1 0 0 0 1]
Dalam matriks diag, elemen pada diagonal diinisialisasi sesuai argumen yang diberikan.
>>> from sympy.matrices import diag
>>> diag(1,2,3)
$\displaystyle \left[\begin{matrix}1 & 0 & 0\\0 & 2 & 0\\0 & 0 & 3\end{matrix}\right]$
Output untuk kode di atas adalah sebagai berikut -
[1 0 0 0 2 0 0 0 3]
Semua elemen dalam matriks nol diinisialisasi ke 0.
>>> from sympy.matrices import zeros
>>> zeros(2,3)
$\displaystyle \left[\begin{matrix}0 & 0 & 0\\0 & 0 & 0\end{matrix}\right]$
Output untuk kode di atas adalah sebagai berikut -
[0 0 0 0 0 0]
Demikian pula, satuan adalah matriks dengan semua elemen disetel ke 1.
>>> from sympy.matrices import ones
>>> ones(2,3)
$\displaystyle \left[\begin{matrix}1 & 1 & 1\\1 & 1 & 1\end{matrix}\right]$
Output untuk kode di atas adalah sebagai berikut -
[1 1 1 1 1 1]