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 A∈Rm×n adalah matriks persegi panjang dengan m≥n dan . Maka terdapat matriks ortogonal dengan dan matriks segitiga atas dengan elemen diagonal untuk , sehingga:
Ketika kita memiliki matriks A∈Rm×n dengan m≥n,
ada dua cara untuk merepresentasikan QR dekomposisi. Perbedaannya terletak pada ukuran matriks yang digunakan.
Karena bagian bawah matriks R hanya berisi nol, kita bisa menghemat penyimpanan dan komputasi.
QR dekomposisi ekonomis hanya menggunakan bagian yang benar-benar diperlukan:
A=Q⋅R=(Q1Q2)⋅(R10)=Q1⋅R1
Di sini Q1∈Rm×n hanya mengambil kolom pertama sampai ke-n
dari Q, dan R1∈Rn×n adalah matriks segitiga atas persegi.
Mengapa disebut ekonomis? Karena kita menghemat ruang penyimpanan dan waktu komputasi.
Alih-alih menyimpan matriks Q berukuran m×m yang bisa sangat besar,
kita hanya perlu Q1 berukuran m×n.
Kolom-kolom matriks Q2∈Rm×(m−n) yang tidak kita pakai membentuk
basis ortonormal dari kernel (ruang nol) KernelAT:
ATQ2=R1TQ1TQ2=0
Di sini kernel dari AT adalah himpunan semua vektor x yang memenuhi ATx=0.
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.
Untuk vektor v∈Rm dengan ∥v∥2=1,
kita dapat mendefinisikan matriks transformasi Householder:
S=I−2vvT∈Rm×m
Perhatikan bahwa vvT adalah produk diadik (outer product), yaitu perkalian vektor kolom
v∈Rm×1 dengan vektor baris vT∈R1×m.
Hasil perkalian ini adalah matriks m×m dengan peringkat 1 untuk v=0.
Jangan sampai tertukar dengan perkalian skalar vTv∈R yang menghasilkan bilangan tunggal.
Misalkan S=I−2vvT∈Rm×m adalah matriks transformasi Householder
untuk vektor v∈Rm dengan ∥v∥2=1. Maka berlaku:
S adalah simetri: ST=S
S adalah matriks ortogonal: STS=I
Perkalian S⋅x dari S dari kiri dengan vektor x∈Rn
menyebabkan refleksi x pada subruang rentang(v)⊥,
yaitu pada hiperplane (bidang datar berdimensi tinggi) dengan vektor normal
Diberikan matriks A∈Rm×n dengan m≥n
dan PeringkatA=n. Untuk perhitungan QR dekomposisi,
matriks A ditransformasi kolom demi kolom melalui refleksi Householder
menjadi bentuk segitiga atas.
Mulai dengan A1=A dan refleksikan kolom pertama dari A1
terhadap vektor menggunakan bidang refleksi dengan:
Karena transformasi ortogonal, berlaku cond2(R)=cond2(A)
Elemen diagonal R adalah bilangan ±∥a~i∥2
dari langkah ke-i. Memilih transformasi sehingga semuanya positif memberikan QR dekomposisi.
Jika ∥a~i∥2=0, A tidak memiliki peringkat penuh
dan algoritma berhenti.
Untuk alasan numerik memilih tanda sehingga pembatalan dihindari:
ui=a~i∓∥a~i∥2⋅e1 (bentuk umum)
Sebagai pengganti membangun Q, dalam penyimpanan kompak juga dapat menyimpan
hanya informasi yang diperlukan untuk transformasi:
Simpan vektor a~i∓∥a~i∥2⋅e1
Jika hanya ingin menghitung QR dekomposisi ekonomis, hapus kolom Q dan baris R yang sesuai.