Command Palette

Search for a command to run...

Metode Linear AI

QR Dekomposisi

Teorema Eksistensi QR Dekomposisi

Kita ingin mengubah matriks menjadi bentuk segitiga atas, tetapi bukan melalui operasi baris elementer, melainkan melalui transformasi ortogonal yang lebih baik kondisinya. Bayangkan seperti memutar dan memantulkan ruang geometris untuk menyederhanakan matriks, tanpa mengubah sifat fundamentalnya.

Misalkan ARm×nA \in \mathbb{R}^{m \times n} adalah matriks persegi panjang dengan mnm \geq n dan PeringkatA=n\text{Peringkat}A = n. Maka terdapat matriks ortogonal QRm×mQ \in \mathbb{R}^{m \times m} dengan QTQ=IQ^T Q = I dan matriks segitiga atas RRm×nR \in \mathbb{R}^{m \times n} dengan elemen diagonal rii>0r_{ii} > 0 untuk i=1,,ni = 1, \ldots, n, sehingga:

A=QRA = Q \cdot R

Representasi ini disebut QR dekomposisi dari AA.

Pembuktian dengan Gram-Schmidt

Kolom-kolom aja_j untuk j=1,,nj = 1, \ldots, n dari matriks AA dapat diorthonormalisasi menggunakan proses Gram-Schmidt:

q~j:=ajk=1j1aj,qkqk\tilde{q}_j := a_j - \sum_{k=1}^{j-1} \langle a_j, q_k \rangle \cdot q_k
qj:=q~jq~j2q_j := \frac{\tilde{q}_j}{\|\tilde{q}_j\|_2}

Kita memperoleh vektor ortonormal qjq_j untuk j=1,,nj = 1, \ldots, n sebagai kolom dari matriks ortogonal Q1Rm×nQ_1 \in \mathbb{R}^{m \times n}. Sebaliknya:

aj=k=1j1aj,qkqk+q~ja_j = \sum_{k=1}^{j-1} \langle a_j, q_k \rangle \cdot q_k + \tilde{q}_j
=k=1j1aj,qkqk+q~j2qj= \sum_{k=1}^{j-1} \langle a_j, q_k \rangle \cdot q_k + \|\tilde{q}_j\|_2 \cdot q_j
=k=1j1qkrkj+qjrjj= \sum_{k=1}^{j-1} q_k \cdot r_{kj} + q_j \cdot r_{jj}

Jadi A=Q1R1A = Q_1 R_1 dengan matriks segitiga atas R1Rn×nR_1 \in \mathbb{R}^{n \times n} yang elemen diagonalnya rii=q~i2>0r_{ii} = \|\tilde{q}_i\|_2 > 0.

Jika Q1Q_1 dilengkapi dengan mnm - n kolom tambahan menjadi matriks ortogonal Q=(Q1Q2)Rm×mQ = (Q_1 \quad Q_2) \in \mathbb{R}^{m \times m} dan R1R_1 menjadi R=(R10)Rm×nR = \begin{pmatrix} R_1 \\ 0 \end{pmatrix} \in \mathbb{R}^{m \times n}, maka A=Q1R1=QRA = Q_1 R_1 = QR.

QR Dekomposisi Penuh dan Ekonomis

Ketika kita memiliki matriks ARm×nA \in \mathbb{R}^{m \times n} dengan mnm \geq n, ada dua cara untuk merepresentasikan QR dekomposisi. Perbedaannya terletak pada ukuran matriks yang digunakan.

QR Dekomposisi Penuh

QR dekomposisi penuh menggunakan matriks berukuran penuh:

A=QRA = Q \cdot R

dengan QRm×mQ \in \mathbb{R}^{m \times m} adalah matriks ortogonal berukuran penuh dan RRm×nR \in \mathbb{R}^{m \times n} adalah matriks segitiga atas.

QR Dekomposisi Ekonomis

Karena bagian bawah matriks RR hanya berisi nol, kita bisa menghemat penyimpanan dan komputasi. QR dekomposisi ekonomis hanya menggunakan bagian yang benar-benar diperlukan:

A=QR=(Q1Q2)(R10)=Q1R1A = Q \cdot R = (Q_1 \quad Q_2) \cdot \begin{pmatrix} R_1 \\ 0 \end{pmatrix} = Q_1 \cdot R_1

Di sini Q1Rm×nQ_1 \in \mathbb{R}^{m \times n} hanya mengambil kolom pertama sampai ke-nn dari QQ, dan R1Rn×nR_1 \in \mathbb{R}^{n \times n} adalah matriks segitiga atas persegi.

Mengapa disebut ekonomis? Karena kita menghemat ruang penyimpanan dan waktu komputasi. Alih-alih menyimpan matriks QQ berukuran m×mm \times m yang bisa sangat besar, kita hanya perlu Q1Q_1 berukuran m×nm \times n.

Kolom-kolom matriks Q2Rm×(mn)Q_2 \in \mathbb{R}^{m \times (m-n)} yang tidak kita pakai membentuk basis ortonormal dari kernel (ruang nol) KernelAT\text{Kernel}A^T:

ATQ2=R1TQ1TQ2=0A^T Q_2 = R_1^T Q_1^T Q_2 = 0

Di sini kernel dari ATA^T adalah himpunan semua vektor xx yang memenuhi ATx=0A^T x = 0.

Sifat Keunikan

QR dekomposisi ekonomis A=Q1R1A = Q_1 \cdot R_1 dengan kondisi rii>0r_{ii} > 0 untuk semua i=1,,ni = 1, \ldots, n adalah unik untuk matriks AA yang memiliki peringkat penuh.

Metode Householder untuk QR Dekomposisi

Meskipun proses Gram-Schmidt memberikan cara teoretis yang elegan untuk memperoleh QR dekomposisi, metode ini tidak cocok untuk perhitungan praktis. Masalah utamanya adalah ketidakstabilan numerik akibat pembatalan, ortogonalitas kolom-kolom cepat hilang selama komputasi.

Untuk mengatasi masalah ini, kita memerlukan metode yang lebih stabil secara numerik. Salah satu pendekatan yang paling berhasil adalah prosedur Householder, yang menggunakan transformasi refleksi ortogonal. Alternatif lain adalah prosedur Givens dengan transformasi rotasi.

Transformasi Householder

Untuk vektor vRmv \in \mathbb{R}^m dengan v2=1\|v\|_2 = 1, kita dapat mendefinisikan matriks transformasi Householder:

S=I2vvTRm×mS = I - 2vv^T \in \mathbb{R}^{m \times m}

Perhatikan bahwa vvTvv^T adalah produk diadik (outer product), yaitu perkalian vektor kolom vRm×1v \in \mathbb{R}^{m \times 1} dengan vektor baris vTR1×mv^T \in \mathbb{R}^{1 \times m}. Hasil perkalian ini adalah matriks m×mm \times m dengan peringkat 1 untuk v0v \neq 0. Jangan sampai tertukar dengan perkalian skalar vTvRv^T v \in \mathbb{R} yang menghasilkan bilangan tunggal.

Sifat-sifat Transformasi Householder

Misalkan S=I2vvTRm×mS = I - 2vv^T \in \mathbb{R}^{m \times m} adalah matriks transformasi Householder untuk vektor vRmv \in \mathbb{R}^m dengan v2=1\|v\|_2 = 1. Maka berlaku:

  1. SS adalah simetri: ST=SS^T = S

  2. SS adalah matriks ortogonal: STS=IS^T S = I

  3. Perkalian SxS \cdot x dari SS dari kiri dengan vektor xRnx \in \mathbb{R}^n menyebabkan refleksi xx pada subruang rentang(v)\text{rentang}(v)^{\perp}, yaitu pada hiperplane (bidang datar berdimensi tinggi) dengan vektor normal vv

  4. cond2(S)=1\text{cond}_2(S) = 1

Prosedur Householder

Diberikan matriks ARm×nA \in \mathbb{R}^{m \times n} dengan mnm \geq n dan PeringkatA=n\text{Peringkat}A = n. Untuk perhitungan QR dekomposisi, matriks AA ditransformasi kolom demi kolom melalui refleksi Householder menjadi bentuk segitiga atas.

Mulai dengan A1=AA_1 = A dan refleksikan kolom pertama dari A1A_1 terhadap vektor menggunakan bidang refleksi dengan:

a~1 kolom pertama dari A1\tilde{a}_1 \text{ kolom pertama dari } A_1
±a~12e1Rm vektor target\pm\|\tilde{a}_1\|_2 \cdot e_1 \in \mathbb{R}^m \text{ vektor target}
v1=u1/u12 dengan rentang(v1)v_1 = u_1/\|u_1\|_2 \text{ dengan } \text{rentang}(v_1)^{\perp}
u1=a~1a~12e1u_1 = \tilde{a}_1 \mp \|\tilde{a}_1\|_2 \cdot e_1

Proses Iteratif Transformasi

Matriks transformasi Householder S1=Im2v1v1TRm×mS_1 = I_m - 2v_1v_1^T \in \mathbb{R}^{m \times m}. Diperoleh:

A2=S1A1=(r110A~2)A_2 = S_1 \cdot A_1 = \begin{pmatrix} r_{11} & * \\ 0 & \tilde{A}_2 \end{pmatrix}

dengan r11=±a~12r_{11} = \pm\|\tilde{a}_1\|_2 dan A~2Rm1×n1\tilde{A}_2 \in \mathbb{R}^{m-1 \times n-1}.

Lanjutkan dengan refleksi kolom pertama dari submatriks dengan bidang refleksi:

a~2 kolom pertama dari A~2\tilde{a}_2 \text{ kolom pertama dari } \tilde{A}_2
±a~22e~1Rm1\pm\|\tilde{a}_2\|_2 \cdot \tilde{e}_1 \in \mathbb{R}^{m-1}
v2=u2/u22v_2 = u_2/\|u_2\|_2
u2=a~2a~22e~1u_2 = \tilde{a}_2 \mp \|\tilde{a}_2\|_2 \cdot \tilde{e}_1

Dengan matriks transformasi:

S~2=Im12v2v2TRm1×m1\tilde{S}_2 = I_{m-1} - 2v_2v_2^T \in \mathbb{R}^{m-1 \times m-1}
S2=(I100S~2)Rm×mS_2 = \begin{pmatrix} I_1 & 0 \\ 0 & \tilde{S}_2 \end{pmatrix} \in \mathbb{R}^{m \times m}

Diperoleh:

A3=S2A2=(r110r2200A~3)A_3 = S_2 \cdot A_2 = \begin{pmatrix} r_{11} & * & * \\ 0 & r_{22} & * \\ 0 & 0 & \tilde{A}_3 \end{pmatrix}

dengan r22=±a~22r_{22} = \pm\|\tilde{a}_2\|_2 dan A~3Rm2×n2\tilde{A}_3 \in \mathbb{R}^{m-2 \times n-2}, dan seterusnya hingga:

A~n=(a~nna~mn)Rm(n1)×1\tilde{A}_n = \begin{pmatrix} \tilde{a}_{nn} \\ \vdots \\ \tilde{a}_{mn} \end{pmatrix} \in \mathbb{R}^{m-(n-1) \times 1}

Pada akhirnya diperoleh matriks segitiga atas:

An+1=R=(r110rnn0000)=SnS1A=QTAA_{n+1} = R = \begin{pmatrix} r_{11} & & * \\ & \ddots & \\ 0 & & r_{nn} \\ 0 & \cdots & 0 \\ \vdots & & \vdots \\ 0 & \cdots & 0 \end{pmatrix} = S_n \cdot \ldots \cdot S_1 \cdot A = Q^T \cdot A

Jadi diperoleh faktorisasi:

A=QRA = Q \cdot R
Q=(SnS1)T=S1SnQ = (S_n \cdot \ldots \cdot S_1)^T = S_1 \cdot \ldots \cdot S_n

dengan QQ adalah matriks ortogonal.

Algoritma Implementasi Householder

Implementasi prosedur Householder:

Mulai dengan:

A1:=AA_1 := A
Q1:=IQ_1 := I

Untuk i=1,,ni = 1, \ldots, n:

a~i=(aiiami):=((Ai)ii(Ai)mi)Rmi+1\tilde{a}_i = \begin{pmatrix} a_{ii} \\ \vdots \\ a_{mi} \end{pmatrix} := \begin{pmatrix} (A_i)_{ii} \\ \vdots \\ (A_i)_{mi} \end{pmatrix} \in \mathbb{R}^{m-i+1}

Hitung:

σ:=a~i2\sigma := \|\tilde{a}_i\|_2
ui:=a~i+(σ00)Rmi+1u_i := \tilde{a}_i + \begin{pmatrix} \mp\sigma \\ 0 \\ \vdots \\ 0 \end{pmatrix} \in \mathbb{R}^{m-i+1}
u^i:=(00ui)Rm\hat{u}_i := \begin{pmatrix} 0 \\ \vdots \\ 0 \\ u_i \end{pmatrix} \in \mathbb{R}^m

dan:

β:=1/(σ(σ+a~ii))\beta := 1/(\sigma(\sigma + |\tilde{a}_{ii}|))

Kemudian:

vi=a~ia~i2e1a~ia~i2e12=uiui2v_i = \frac{\tilde{a}_i \mp \|\tilde{a}_i\|_2 \cdot e_1}{\|\tilde{a}_i \mp \|\tilde{a}_i\|_2 \cdot e_1\|_2} = \frac{u_i}{\|u_i\|_2}
S~i=Imi+12viviT=Imi+1βuiuiT\tilde{S}_i = I_{m-i+1} - 2v_i v_i^T = I_{m-i+1} - \beta u_i u_i^T
Si=Imβu^iu^iTS_i = I_m - \beta \hat{u}_i \hat{u}_i^T

Sehingga diperoleh:

Ai+1:=SiAi=(Imβu^iu^iT)Ai=Aiu^i(βu^iTAi)A_{i+1} := S_i A_i = (I_m - \beta \hat{u}_i \hat{u}_i^T) A_i = A_i - \hat{u}_i (\beta \hat{u}_i^T A_i)
Qi+1:=QiSi=Qi(Imβu^iu^iT)=Qi(Qiu^i)βu^iTQ_{i+1} := Q_i S_i = Q_i (I_m - \beta \hat{u}_i \hat{u}_i^T) = Q_i - (Q_i \hat{u}_i) \beta \hat{u}_i^T

Akhirnya diperoleh:

R:=An+1R := A_{n+1}
Q:=Qn+1Q := Q_{n+1}

Aspek Numerik dan Kompleksitas Householder

Kompleksitas Komputasi

Kompleksitas numerik untuk perhitungan QR dekomposisi matriks ARm×nA \in \mathbb{R}^{m \times n} dengan prosedur Householder pada dasarnya adalah:

n2m operasi aritmetika untuk mnn^2 \cdot m \text{ operasi aritmetika untuk } m \gg n
23n3 operasi aritmetika untuk mn\frac{2}{3}n^3 \text{ operasi aritmetika untuk } m \approx n

Sifat Numerik

  1. Karena transformasi ortogonal, berlaku cond2(R)=cond2(A)\text{cond}_2(R) = \text{cond}_2(A)

  2. Elemen diagonal RR adalah bilangan ±a~i2\pm\|\tilde{a}_i\|_2 dari langkah ke-ii. Memilih transformasi sehingga semuanya positif memberikan QR dekomposisi. Jika a~i2=0\|\tilde{a}_i\|_2 = 0, AA tidak memiliki peringkat penuh dan algoritma berhenti.

    Untuk alasan numerik memilih tanda sehingga pembatalan dihindari:

    ui=a~ia~i2e1 (bentuk umum)u_i = \tilde{a}_i \mp \|\tilde{a}_i\|_2 \cdot e_1 \text{ (bentuk umum)}
    ui=a~i+sgn(a~i)a~i2e1 (pilihan tanda optimal)u_i = \tilde{a}_i + \text{sgn}(\tilde{a}_i) \cdot \|\tilde{a}_i\|_2 \cdot e_1 \text{ (pilihan tanda optimal)}
  3. Sebagai pengganti membangun QQ, dalam penyimpanan kompak juga dapat menyimpan hanya informasi yang diperlukan untuk transformasi:

    Simpan vektor a~ia~i2e1\text{Simpan vektor } \tilde{a}_i \mp \|\tilde{a}_i\|_2 \cdot e_1

    di tempat bebas dari AA di bawah diagonal dan elemen diagonal dalam vektor tambahan.

  4. Jika hanya ingin menghitung QR dekomposisi ekonomis, hapus kolom QQ dan baris RR yang sesuai.