Subbagian 1.3.2 Sage dan matriks
Ketika menjumpai suatu matriks,
Teorema 1.2.6 menyatakan bahwa terdapat tepat satu matriks eselon baris tereduksi yang ekuivalen baris dengannya.
Sebenarnya, ketunggalan matriks eselon baris tereduksi inilah yang memotivasi kita mendefinisikan bentuk khusus tersebut. Ketika menyelesaikan sistem persamaan linear dengan eliminasi Gauss, terdapat matriks-matriks ekuivalen baris lain yang memperlihatkan struktur ruang solusi. Matriks eselon baris tereduksi merupakan suatu kemudahan karena kita sepakat untuk mencari matriks yang sama.
Manfaat lainnya adalah kita dapat meminta program komputer seperti Sage untuk menemukan matriks eselon baris tereduksi. Setelah sedikit mengenal Sage, kini kita akan mempelajari cara melakukannya.
Pertama, perhatikan bahwa suatu matriks memiliki jumlah baris dan kolom tertentu. Sebagai contoh, matriks
\begin{equation*}
\left[
\begin{array}{rrrrr}
* \amp * \amp * \amp * \amp * \\
* \amp * \amp * \amp * \amp * \\
* \amp * \amp * \amp * \amp * \\
\end{array}
\right]
\end{equation*}
memiliki tiga baris dan lima kolom. Oleh karena itu, kita menyebutnya matriks \(3\times 5\text{.}\)
Kita dapat meminta Sage membuat matriks berukuran \(2\times4\) berikut
\begin{equation*}
\left[
\begin{array}{rrrr}
-1 \amp 0 \amp 2 \amp 7 \\
2 \amp 1 \amp -3 \amp -1 \\
\end{array}
\right]
\end{equation*}
dengan memasukkan
Ketika dijalankan, Sage akan mengonfirmasi matriks tersebut dengan menuliskan baris-barisnya, masing-masing di dalam tanda kurung siku.
Perhatikan bahwa terdapat tiga unsur terpisah (yang kita sebut
argumen) di dalam tanda kurung: jumlah baris, jumlah kolom, dan entri matriks yang didaftarkan menurut baris di dalam tanda kurung siku. Ketiga argumen ini dipisahkan oleh koma. Perhatikan bahwa tidak ada cara untuk menentukan apakah matriks ini merupakan matriks diperbesar atau matriks koefisien, sehingga kita sendiri harus menafsirkan hasilnya dengan tepat.
Sintaks Sage.
Beberapa kesalahan yang umum terjadi adalah
-
melupakan tanda kurung siku yang mengapit daftar entri,
-
menghilangkan suatu entri dari daftar atau menambahkan entri berlebih,
-
lupa memisahkan baris, kolom, dan entri dengan koma, serta
-
menghilangkan tanda kurung yang mengapit argumen setelah
matrix.
Jika Anda melihat pesan galat, periksa kembali masukan Anda dengan cermat, lalu coba lagi.
Sebagai alternatif, Anda dapat membuat matriks hanya dengan mendaftarkan baris-barisnya, seperti berikut
matrix([ [-1, 0, 2, 7],
[ 2, 1,-3,-1] ])
Kegiatan 1.3.2. Menggunakan Sage untuk menemukan matriks eselon baris tereduksi.
-
Masukkan matriks berikut ke dalam Sage.
\begin{equation*}
\left[
\begin{array}{rrrr}
-1 \amp -2 \amp 2 \amp -1 \\
2 \amp 4 \amp -1 \amp 5 \\
1 \amp 2 \amp 0 \amp 3
\end{array}
\right]
\end{equation*}
-
Beri matriks tersebut nama \(A\) dengan memasukkan
A = matrix( ..., ..., [ ... ])
Selanjutnya, kita dapat menemukan bentuk eselon baris tereduksinya dengan memasukkan
A = matrix( ..., ..., [ ... ])
A.rref()
Kesalahan yang umum terjadi adalah melupakan tanda kurung setelah rref.
Gunakan Sage untuk menemukan bentuk eselon baris tereduksi matriks dari
Butir a dalam kegiatan ini.
-
Gunakan Sage untuk mendeskripsikan ruang solusi sistem persamaan linear
\begin{equation*}
\begin{alignedat}{5}
-x_1 \amp \amp \amp \amp \amp {}+{} \amp 2x_4 \amp
{}={} \amp 4 \\
\amp \amp 3x_2 \amp {}+{} \amp x_3 \amp {}+{} \amp 2x_4
\amp {}={} \amp 3 \\
4x_1 \amp {}-{} \amp 3x_2 \amp \amp \amp {}+{} \amp
x_4 \amp {}={} \amp 14 \\
\amp \amp 2x_2 \amp {}+{} \amp 2x_3 \amp {}+{} \amp x_4
\amp {}={} \amp 1 \\
\end{alignedat}
\end{equation*}
-
Perhatikan kedua matriks berikut:
\begin{equation*}
\begin{array}{rcl}
A \amp = \amp \left[
\begin{array}{rrrr}
1 \amp -2 \amp 1 \amp -3 \\
-2 \amp 4 \amp 1 \amp 1 \\
-4 \amp 8 \amp -1 \amp 7 \\
\end{array}\right] \\
B \amp = \amp \left[
\begin{array}{rrrrrr}
1 \amp -2 \amp 1 \amp -3 \amp 0 \amp 3 \\
-2 \amp 4 \amp 1 \amp 1 \amp 1 \amp -1 \\
-4 \amp 8 \amp -1 \amp 7 \amp 3 \amp 2 \\
\end{array}\right] \\
\end{array}
\end{equation*}
Kita mengatakan bahwa \(B\) merupakan perluasan dari \(A\) karena diperoleh dari \(A\) dengan menambahkan beberapa kolom.
Dengan Sage, definisikan kedua matriks dan bandingkan bentuk eselon baris tereduksinya. Apa yang Anda perhatikan mengenai hubungan antara kedua bentuk eselon baris tereduksi tersebut?
-
Dengan menggunakan sistem persamaan pada
Butir c, tuliskan matriks diperbesar yang bersesuaian dengan sistem persamaan tersebut. Bentuk eselon baris tereduksi apakah yang Anda peroleh untuk matriks diperbesar itu?
Sekarang tuliskan matriks koefisien sistem persamaan ini. Apa yang dinyatakan
Butir d dalam kegiatan ini mengenai bentuk eselon baris tereduksinya?
Praktik penggunaan Sage.
Berikut beberapa praktik yang mungkin berguna ketika bekerja dengan matriks dalam Sage.
-
Agar lebih mudah dibaca, pisahkan entri matriks ke beberapa baris, satu baris untuk setiap baris matriks, dengan menekan Enter di antara baris-baris tersebut.
A = matrix(2, 4, [ 1, 2, -1, 0,
-3, 0, 4, 3 ])
-
Tampilkan matriks semula untuk memeriksa apakah Anda telah memasukkannya dengan benar. Anda mungkin juga ingin menampilkan garis pemisah untuk memisahkan matriks-matriks.
A = matrix(2, 2, [ 1, 2,
2, 2])
print (A)
print ("---------")
A.rref()
Bagian terakhir kegiatan sebelumnya,
Butir d, memperlihatkan sesuatu yang akan berguna bagi kita kelak. Dalam kegiatan tersebut, kita memulai dengan matriks
\(A\text{,}\) yang kita perluas dengan menambahkan beberapa kolom untuk memperoleh matriks
\(B\text{.}\) Kemudian, kita memperhatikan bahwa bentuk eselon baris tereduksi
\(B\) juga merupakan perluasan dari bentuk eselon baris tereduksi
\(A\text{.}\)
Sebagai ilustrasi, kita dapat memperhatikan bentuk eselon baris tereduksi matriks diperbesar berikut:
\begin{equation*}
\left[
\begin{array}{ccc|c}
-2 \amp 3 \amp 0 \amp 2 \\
-1 \amp 4 \amp 1 \amp 3 \\
3 \amp 0 \amp 2 \amp 2 \\
1 \amp 5 \amp 3 \amp 7 \\
\end{array}
\right]
\sim
\left[
\begin{array}{ccc|c}
1 \amp 0 \amp 0 \amp -4 \\
0 \amp 1 \amp 0 \amp -2 \\
0 \amp 0 \amp 1 \amp 7 \\
0 \amp 0 \amp 0 \amp 0 \\
\end{array}
\right]
\end{equation*}
Selanjutnya, kita dapat menentukan bentuk eselon baris tereduksi matriks koefisien dengan melihat bagian dalam matriks diperbesar.
\begin{equation*}
\left[
\begin{array}{ccc}
-2 \amp 3 \amp 0 \\
-1 \amp 4 \amp 1 \\
3 \amp 0 \amp 2 \\
1 \amp 5 \amp 3 \\
\end{array}
\right]
\sim
\left[
\begin{array}{ccc}
1 \amp 0 \amp 0 \\
0 \amp 1 \amp 0 \\
0 \amp 0 \amp 1 \\
0 \amp 0 \amp 0 \\
\end{array}
\right]
\end{equation*}
Jika kita menelusuri langkah-langkah algoritma eliminasi Gauss dengan cermat, kita melihat bahwa hal ini merupakan prinsip umum, yang sekarang kita nyatakan.
Proposisi 1.3.1. Prinsip Perluasan.
Jika matriks
\(B\) merupakan perluasan dari matriks
\(A\text{,}\) maka bentuk eselon baris tereduksi
\(B\) merupakan perluasan dari bentuk eselon baris tereduksi
\(A\text{.}\)
Subbagian 1.3.3 Beban komputasi
Pada awal bagian ini, kita menyatakan bahwa aljabar linear menjadi semakin penting seiring meningkatnya kemampuan komputer. Namun, komputer tetap memiliki keterbatasan. Mari kita perhatikan seberapa besar beban yang diperlukan ketika kita meminta komputer menemukan bentuk eselon baris tereduksi suatu matriks. Secara sangat kasar, kita akan mengukur beban tersebut berdasarkan berapa kali algoritma mengharuskan kita mengalikan atau menjumlahkan dua bilangan.
Kita akan mengasumsikan bahwa matriks memiliki jumlah baris dan kolom yang sama, yang kita nyatakan dengan
\(n\text{.}\) Kita terutama tertarik pada kasus ketika
\(n\) sangat besar, yaitu saat kita perlu mempertimbangkan besarnya beban yang diperlukan.
Pertama, mari kita perhatikan beban yang diperlukan untuk setiap operasi baris.
-
Penskalaan suatu baris mengalikan masing-masing dari
\(n\) entri pada baris tersebut dengan suatu bilangan, sehingga memerlukan
\(n\) operasi.
-
Pertukaran dua baris tidak memerlukan perkalian atau penjumlahan, sehingga kita tidak akan memperhitungkan beban pertukaran.
-
Penggantian mengharuskan kita mengalikan setiap entri pada suatu baris dengan suatu bilangan, yang memerlukan
\(n\) operasi, lalu menambahkan entri-entri hasilnya ke baris lain, yang memerlukan
\(n\) operasi lagi. Jumlah keseluruhannya adalah
\(2n\) operasi.
Tujuan kita adalah mengubah suatu matriks ke bentuk eselon baris tereduksinya, yang tampak kurang lebih seperti berikut:
\begin{equation*}
\left[
\begin{array}{cccc}
1 \amp 0 \amp \ldots \amp 0 \\
0 \amp 1 \amp \ldots \amp 0 \\
\vdots \amp \vdots \amp \ddots \amp 0 \\
0 \amp 0 \amp \ldots \amp 1 \\
\end{array}
\right]\text{.}
\end{equation*}
Secara kasar, kita melakukan satu operasi penggantian untuk setiap entri 0 dalam matriks eselon baris tereduksi. Ketika \(n\) sangat besar, sebagian besar dari \(n^2\) entri dalam bentuk eselon baris tereduksi bernilai 0, sehingga kita memerlukan sekitar \(n^2\) operasi penggantian. Karena setiap operasi penggantian memerlukan \(2n\) operasi, jumlah operasi yang dihasilkan oleh penggantian yang diperlukan kira-kira \(n^2(2n) =
2n^3\text{.}\)
Setiap baris diskalakan kira-kira satu kali sehingga terdapat sekitar
\(n\) operasi penskalaan, yang masing-masing memerlukan
\(n\) operasi. Jumlah operasi akibat penskalaan kira-kira
\(n^2\text{.}\)
Oleh karena itu, jumlah keseluruhan operasi kira-kira
\begin{equation*}
2n^3 + n^2\text{.}
\end{equation*}
Ketika \(n\) sangat besar, suku \(n^2\) jauh lebih kecil daripada suku \(n^3\text{.}\) Karena itu, kita menyatakan bahwa
Ini merupakan ukuran yang sangat kasar bagi beban yang diperlukan untuk menemukan bentuk eselon baris tereduksi. Perhitungan yang lebih teliti untuk eliminasi Gauss yang berhenti pada bentuk eselon baris menghasilkan kira-kira
\(\frac23
n^3\) operasi aritmetika. Untuk memperoleh bentuk eselon baris tereduksi diperlukan pula eliminasi ke atas; jumlah operasinya tetap berorde
\(n^3\text{,}\) dengan konstanta utama yang bergantung pada algoritma. Seperti yang telah kita lihat, beberapa matriks memerlukan beban lebih besar daripada yang lain. Kita dapat memahaminya sebagai berikut: jika ukuran matriks bertambah dengan faktor 10, beban yang diperlukan bertambah dengan faktor
\(10^3 = 1000\text{.}\)
Meskipun komputer masa kini sangat kuat, komputer tidak dapat menangani setiap masalah yang kita berikan. Pada akhirnya, kita ingin dapat mempelajari matriks yang memiliki
\(n=10^{12}\) (satu triliun) baris dan kolom. Secara garis besar, menemukan matriks eselon baris tereduksi tersebut akan memerlukan sekitar
\((10^{12})^3 = 10^{36}\) operasi.
Sebagai perbandingan, bayangkan kita perlu menyelesaikan sistem linear dengan satu triliun persamaan dan satu triliun variabel, serta memiliki komputer yang mampu melakukan satu triliun,
\(10^{12}\text{,}\) operasi setiap detik. Menemukan bentuk eselon baris tereduksi akan memerlukan sekitar
\(10^{16}\) tahun. Saat ini, usia alam semesta diperkirakan sekitar
\(10^{10}\) tahun. Jika perhitungan dimulai ketika alam semesta lahir, kita baru akan menyelesaikan sekitar sepersejuta bagian.
Situasi ini mungkin tampak tidak masuk akal, tetapi dalam
Subbagian 4.5.4 kita akan melihat bagaimana kita menggunakan hasil komputasi semacam itu setiap hari. Jelas bahwa kita memerlukan alat yang lebih baik untuk menangani masalah yang
sangat besar seperti ini.