Bab IV
Faktorisasi QR
4.1 Pendahuluan
Faktorisasi QR dari matrik A berukuran m x n adalah penguraian matrik A menjadi
A = Q R
dimana Q ∈ Rm x m adalah orthogonal dan R ∈ Rm x n segitiga atas. Faktorisasi ini
sering juga disebut faktorisasi orthogonal (orthogonal factorization). Ada beberapa cara yang digunakan untuk menghitung faktorisasi QR ini, antara lain: Householder Reflection, Givens Rotation, Schmidt dan Modified Gram-Schmidt.
4.2 Faktorisasi QR Sebagai Suatu Masalah Transformasi
Faktorisasi A = QR dapat ditulis sebagai QTA = R, karena Q adalah matrik
orthogonal. Bentuk QTA = R ini dapat dilihat sebagai suatu transformasi dengan
matrik transformasi QT. Sehingga, persoalan faktorisasi QR dapat juga dilihat
sebagai suatu persoalan transformasi, yaitu mencari matrik transformasi yang orthogonal (Q) sedemikian sehingga QTA = R, dimana R adalah matrik segitiga
atas. Contoh 1: = 0 0 0 0 0 0 x x x x x x x x x x x x x x x x x x QT
Ada beberapa cara untuk mencari matrik transformasi QT, antara lain: (1)
menggunakan prinsip pencerminan (reflection), disebut Householder reflection, dan (2) Menggunakan prinsip rotasi (rotation), disebut Given rotation.
Pencerminan dan Rotasi Pada R
2Matrik standar untuk suatu pencerminan pada garis yang memiliki sudut θ
berlawanan jarum jam terhadap sumbu x adalah (lihat lat. 4.2 no 23 buku aljabar linear elementer, Howard Anton):
− = θ θ θ θ 2 cos 2 sin 2 sin 2 cos T Q
dan matrik standar untuk rotasi sebesar θ0 berlawanan arah jarum jam adalah
− = θ θ θ θ cos sin sin cos T Q
Kedua matrik diatas adalah orthogonal dan dapat digunakan untuk membuat nol nilai-nilai pada suatu vektor dengan memilih garis pencerminan dan sudut rotasi yang sesuai.
Contoh 2:
Misal x = (1, 3)T.
1)
Jika kita pilih garis dengan sudut 15o terhadap sumbu x sebagai garispencerminan, maka matrik transformasi dari pencerminan ini adalah: − = − = 2 / 3 2 / 1 2 / 1 2 / 3 30 cos 30 sin 30 sin 30 cos 0 0 0 0 T Q
Maka QTx = (2, 0)T, atau QT akan mentransformasikan x menjadi
2)
Jika kita pilih sudut rotasinya adalah –60o, maka matrik transformasidari rotasi ini adalah:
− = − − − − − = 2 / 1 2 / 3 2 / 3 2 / 1 ) 60 ( cos ) 60 sin( ) 60 ( sin ) 60 ( cos 0 0 0 0 T Q
Maka QTx = (2, 0)T, atau QT akan mentransformasikan x menjadi
vektor dengan komponen nol pada nilai keduanya.
Dua fenomena diatas menjadi dasar ide pengembangan metode Householder reflection dan Given rotation dalam mencari matrik Q dari faktorisasi QR. Yaitu matrik Q dimana QT dapat mentransformasikan
masing-masing vektor kolom A menjadi vektor kolom matrik R yang bernilai nol dibawah diagonal utamanya.
4.3 Householder Reflection
Definisi. Misal v ∈ Rn adalah vektor tidak nol. Matrik P berukuran n x n
dalam bentuk
P = I - 2vvT / vTv
disebut matrik Householder dan vektor v disebut vektor Householder.
Theorema. Matrik Householder P adalah matrik yang simetri dan orthogonal. Sehingga invers dari matrik tersebut adalah dirinya sendiri.
Bukti. Misal w = v/||v|| yaitu suatu vektor satuan. Maka P bisa ditulis sebagai P = I - 2wwT. Dari sini terlihat bahwa P simetri. Kemudian
karena w adalah vektor satuan (||w|| = 1) maka P orthogonal, karena PTP = (I - 2wwT) (I - 2wwT) = I - 4wwT + 4wwTwwT = I
Theorema. Misal e1 adalah vektor yang bernilai nol semua kecuali komponen
pertama yang bernilai 1. Maka matrik Householder P = I - 2vvT/vTv
dimana vektor v = x ± ||x||e1, akan mentransformasikan x menjadi
suatu vektor yang bernilai nol semua kecuali komponen pertamanya.
Bukti. Misal diberikan x ∈ Rn maka kita inginkan bahwa Px = αe
1. Untuk
sembarang x ∈ Rn kita dapatkan
v v v x v x x v v vv I Px 2T T = − 2TT − =
sehingga Px ∈ span{e1} (= direntang e1) dan berimplikasi v ∈ span{x, e1}.
Dari kondisi itu jika kiat buat v = x + αe1 maka
vTx = xTx + αx 1 dan vTv = xTx + 2αx1 + α2 sehingga, 1 2 1 1 2 2 2 1 e v v x v x x x x x x x Px T T T T α α α α − + + + − =
Agar supaya koefisien x bernilai nol, ini tujuannya supaya hanya nilai ke-1 saja yang tidak bernilai nol, maka kita buat α = ±||x||, sehingga v = x
Contoh 3:
Misal x = (3, 4)T, selanjutnya untuk membentuk matrik Householder yang
akan mentransformasikan x menjadi suatu vektor dengan semua komponen bernilai nol kecuali komponen pertamanya adalah sbb:
(1)
Menggunakan tanda positip, yaitu = + = + 501 = 48 4 3 1 e x x v , dan − − − = − = − = − = 6 . 0 8 . 0 8 . 0 6 . 0 4 . 0 8 . 0 8 . 0 6 . 1 1 0 0 1 16 32 32 64 80 2 1 0 0 1 2 v v vv I P T T sehingga Px = (-5, 0)T(2)
Menggunakan tanda negatip, yaitu = − = − 510 = − 42 4 3 1 e x x v , dan − = − − − = − − − = − = 4 . 0 8 . 0 8 . 0 6 . 0 4 . 1 8 . 0 8 . 0 4 . 0 1 0 0 1 16 8 8 4 20 2 1 0 0 1 2 v v vv I P T T sehingga Px = (5, 0)T Contoh 4: 1. Jika x = (21, 5, 4)T maka = + = + = 4 5 9545 . 42 0 0 1 9545 . 21 4 5 21 1 e x x v dan = − = 0.9830 0.0212 0.1822 -0.0212 0.9735 0.2277 -0.1822 0.2277 0.9565 -v v vv I P T T 2 1 sehingga P1x = (-21.9545, 0, 0)T2.
Jika x = (21, 5, 4)T merupakan kolom pertama dari suatu matrik, misal: A = − 4 4 7 5 7 21Maka perkalian P1 dan A akan membuat nol nilai-nilai dibawah diagonal
utama pada kolom pertama, yaitu: P1A = − − − 3560 . 5 0000 . 0 3051 . 5 0000 . 0 5611 . 7 9545 . 21
Algoritma Faktorisasi QR Dengan Householder Reflection
Algoritma. Jika diberikan matrik A ∈ Rm x n maka prosedur berikut akan
membentuk faktorisasi QR dari A, yaitu A = QR.
Tahap 1: Tentukan t buah matrik Householder (Pi) yang akan
mentransformasikan matrik A menjadi matrik segitiga atas (R), yaitu:
Pt … P2 P1 A = R
Ilustrasi untuk matrik A berukuran 5 x 3:
→ → → = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 2 1 x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x A P P P
Tahap 2: Karena Pi adalah matrik simetri dan orthogonal maka
A = P1 P2 … Pt R. Selanjutnya, kita dapat membentuk
faktorisasi A = QR, dimana Q = P1 P2 … Pt ∈ Rm x m adalah
matrik orthogonal dan R ∈ Rm x n adalah matrik segitiga
atas yang berukuran sama dengan matrik A. Contoh 5:
Tentukan faktorisasi QR dari matrik: A = − 4 4 7 5 7 21 Jawab:
Tahap 1: Menentukan 2 buah matrik Householder (1) Dari contoh 4 diperoleh P1 =
0.9830 0.0212 0.1822 - 0.0212 0.9735 0.2277 - 0.1822 0.2277 0.9565 - Sehingga P1A = − − − 3560 . 5 0000 . 0 3051 . 5 0000 . 0 5611 . 7 9545 . 21
(3)
Untuk membuat P1A menjadi segitiga atas maka kita harusmembuat nol elemen (3,2). Karena matrik Householder akan mentransformasikan suatu vektor menjadi vektor yang bernilai nol kecuali komponen pertamanya, maka untuk membuat nol elemen (3,2) dari matrik P1A diatas, kita pilih vektor x = (5.3051, -5.3560)T.
Selanjutnya lakukan prosedur seperti Contoh 3, no 1, untuk menentukan vektor dan matrik Householder, yaitu:
− = + − = + = 3560 . 5 8437 . 12 0 1 5386 . 7 3560 . 5 3051 . 5 1 e x x v
Supaya matrik Householder yang dibentuk akan membuat nol nilai dibawah diagonal utama dari kolom dua, maka kita buat v = (0.0000, 12.8437, -5.3560)T
Selanjutnya kita peroleh
= − = 0.7037 0.7105 0.0000 0.7105 0.7037 0.0000 0.0000 0.0000 1.0000 2 2 v v vv I P T T Sehingga P2P1A = − − − 0000 . 0 0000 . 0 5386 . 7 0000 . 0 5611 . 7 9545 . 21
Tahap 2: Menentukan matrik Q dan R
-
Q = P1P2 = 0.6767 0.7133 0.1822 -0.6767 0.7001 0.2277 -0.2900 0.0308 0.9565--
R = − − − 0000 . 0 0000 . 0 5386 . 7 0000 . 0 5611 . 7 9545 . 21Teknik Implementasi Vektor Householder
Algoritma. Dalam implementasi ke program komputer, untuk menghidari saling meniadakan maka tanda ± pada formula vektor Householder v dipilih sama dengan tanda dari komponen ke-1 dari x, sehingga v menjadi berbentuk
v = x + sign(x1) ||x|| e1
selanjutnya, untuk efisiensi space memori maka v dinormalkan sehingga komponen pertama v bernilai 1 atau v(1) = 1. Algoritma berikut ini akan menghitung vektor v :
Langkah 1: n = panjang(x), µ = ||x|| = 2 2 2
2
1 x xn
x + + ⋯+ Langkah 2: Jika µ≠ 0 maka
β = x(1) + sign(x(1)) µ, v(2:n) = x(2:n)/β Langkah 3: v(1) = 1 Contoh 6: Jika x = (21, 5, 4)T maka Langkah 1: n = 3, µ = ||x|| = 21.9545 Langkah 2: β = x(1) + sign(x(1)) µ = 21 + 21.9545 = 42.9545 v(2) = x(2)/ β = 5/42.9545 = 0.1164 v(3) = x(3)/ β = 4/42.9545 = 0.0931 Langkah 3: v(1) = 1 Sehingga v = (1.0000, 0.1164, 0.0931)T
4.4 Givens Rotation
Matrik Given, disebut juga Given rotation atau Given transformation, adalah matrik yang berbentuk:
G(i, k, θ) = k i k i c s s c − 1 0 0 0 0 0 0 0 0 0 0 1 ⋯ ⋯ ⋯ ⋮ ⋱ ⋮ ⋮ ⋮ ⋯ ⋯ ⋯ ⋮ ⋮ ⋱ ⋮ ⋮ ⋯ ⋯ ⋯ ⋮ ⋮ ⋮ ⋱ ⋮ ⋯ ⋯ ⋯
dimana c= cos θ dan s = sin θ. Matrik Given jelas orthogonal karena GTG = I.
Perkalian suatu vektor x dengan G(i, k, θ)T, yaitu G(i, k, θ)Tx, adalah suatu
rotasi dengan sudut θ berlawanan arah jarum jam pada bidang koordinat (i,k). Contoh 7:
Matrik Given berukuran 2 x 2 akan berbentuk:
G(1, 2, θ) = − = − θ θ θ θ cos sin sin cos c s s c dan G(1, 2, θ)T = − θ θ θ θ cos sin sin cos . Sehingga G(1, 2, θ)Tx = − 2 1 cos sin sin cos x x θ θ θ θ
merupakan suatu rotasi dengan sudut θ berlawanan arah jarum jam pada bidang koordinat (x1,
Misal x ∈ Rn, maka perkalian x dengan matrik Given G(i, k, θ)T adalah: + − = − = n k i k i n k i n k i x cx sx sx cx x x x x x c s s c y y y y ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋯ ⋯ ⋯ ⋮ ⋱ ⋮ ⋮ ⋮ ⋯ ⋯ ⋯ ⋮ ⋮ ⋱ ⋮ ⋮ ⋯ ⋯ ⋯ ⋮ ⋮ ⋮ ⋱ ⋮ ⋯ ⋯ ⋯ ⋮ ⋮ ⋮ 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 atau ≠ = + = − = k i j jika x k j jika cx sx i j jika sx cx y j k i k i j ,
Dari formula diatas, kita dapat membuat nilai yk menjadi nol yaitu dengan
cara membuat nilai
2 2 2 2 k i k k i i x x x s dan x x x c + − = + = Contoh 8:
Jika x = (1, 2, 3, 4)T dan kita ingin membuat nol elemen terakhir. Jika kita
pilih i = 3 dan k = 4, maka
5 4 16 9 4 5 3 16 9 3 2 4 2 3 4 2 4 2 3 3 = − + − = + − = = + = + = x x x s dan x x x c sehingga G(3, 4)T = − 4/5 3/5 0 0 5 / 4 5 / 3 0 0 0 0 1 0 0 0 0 1 , dan G(3, 4)Tx = = − 0 5 2 1 4 3 2 1 5 / 3 5 / 4 0 0 5 / 4 5 / 3 0 0 0 0 1 0 0 0 0 1
Algoritma Faktorisasi QR Dengan Given Rotation
Algoritma. Jika diberikan matrik A ∈ Rm x n maka prosedur berikut akan
membentuk faktorisasi QR dari A, yaitu A = QR.
Tahap 1: Tentukan t buah matrik Given (Gi) yang akan membuat
matrik A menjadi segitiga atas (R), yaitu: R A G G GT T T t ⋯ 2 1 =
Ilustrasi untuk matrik A berukuran 4 x 3:
R x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x A T T T T T T G G G G G G = → → → → → → = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ) 4 , 3 ( ) 3 , 2 ( ) 4 , 3 ( ) 2 , 1 ( ) 3 , 2 ( ) 4 , 3 (
Tahap 2: Karena Gi adalah matrik orthogonal maka A =
R G G
G1⋯ t 1− t . Selanjutnya, kita dapat membentuk
faktorisasi A = QR, dimana Q = G1 ⋯Gt−1Gt ∈ Rm x m adalah matrik orthogonal dan R ∈ Rm x n adalah matrik
Contoh 9:
Tentukan faktorisasi QR dari matrik: A = − 4 4 7 5 7 21 Jawab:
Tahap 1: Menentukan 3 buah matrik Given
(1)
Misal x = (21, 5, 4)T, untuk membuat nol komponen ketiga ambil i = 2dan j = 3, sehingga: 6247 . 0 16 25 4 7809 . 0 16 25 5 2 3 2 2 3 2 3 2 2 2 = − + − = + − = = + = + = x x x s dan x x x c
-
Matrik Given G1(2,3)T = − = − 7809 . 0 6247 . 0 0 6247 . 0 7809 . 0 0 0 0 1 0 0 0 0 1 c s s c-
Kemudian G1TA = − 7.4963 0 9673 . 2 4031 . 6 7 21(2)
Misal x = (21, 6.4031, 0)T, untuk membuat nol komponen kedua ambili = 1 dan j = 2, sehingga: 2917 . 0 9545 . 21 4031 . 6 9565 . 0 9545 . 21 21 2 2 2 1 2 2 2 2 1 1 = − = − + − = = = + = x x x s dan x x x c
-
Matrik Given G2(1,2)T = − = − 1 0 0 0 9565 . 0 2917 . 0 0 2917 . 0 9565 . 0 1 0 0 0 0 c s s c-
Kemudian G2TG1TA = − 7.4963 0 7967 . 0 0 5611 . 7 9545 . 21(3)
Misal x = (7.5611, 0.7967, -7.4963)T, untuk membuat nol komponenketiga ambil i = 2 dan j = 3, sehingga:
9944 . 0 5385 . 7 4963 . 7 1057 . 0 5385 . 7 7967 . 0 2 3 2 2 3 2 3 2 2 2 = = + − = = = + = x x x s dan x x x c
-
Matrik Given G3(2,3)T = − = − 1057 . 0 9944 . 0 0 9944 . 0 1057 . 0 0 0 0 1 0 0 0 0 1 c s s c-
Kemudian G3TG2TG1TA = 0 0 5386 . 7 0 5611 . 7 9545 . 21Tahap 2: Menentukan matrik Q dan R
-
Q = G1G2G3 = 0.6767 0.7134 0.1822 0.6767 0.7002 0.2278 0.2901 0.0308 0.9565-
R = 0 0 5386 . 7 0 5611 . 7 9545 . 21 Catatan:Given rotation memerlukan waktu komputasi kurang lebih dua kali lebih banyak dari Householder reflection. Akan tetapi, untuk kasus dimana hanya sedikit elemen matrik yang akan dinolkan, Given rotation adalah metode yang dipilih. Karena Given rotation dapat menentukan posisi yang akan di nolkan.
Teknik Implementasi Nilai c dan s
Algoritma. Dalam implementasi ke program komputer, untuk menghidari overflow maka proses perhitungan nilai c dan s dapat dilakukan dengan cara berikut:
Diberikan skalar a dan b, algoritma berikut akan menghitung nilai c dan s
sehingga = − 0 t b a c s s c T : if b = 0 then c = 1; s = 0; else
if |b| > |a| then k = -a/b; s = 1/(1+k2)0.5; c = sk;
else k = -b/a; c = 1/(1+k2)0.5; s = ck
end Contoh 10:
Jika x = (1, 2, 3, 4)T dan kita ingin membuat nol elemen terakhir. Jika kita
pilih i = 3 dan k = 4, maka a = 3, b = 4 dan
( )
5 3 4 3 5 4 5 4 4 3 1 1 1 1 ; 4 3 2 2 = − − = = = − + = + = − = − = dan c sk k s b a k Sehingga G(3, 4)T = − − − 5 / 3 5 / 4 0 0 5 / 4 5 / 3 0 0 0 0 1 0 0 0 0 1 , dan G(3, 4)Tx = − = − − − 0 5 2 1 4 3 2 1 5 / 3 5 / 4 0 0 5 / 4 5 / 3 0 0 0 0 1 0 0 0 0 14.5 Metode Gram-Schmidt
Metode lain yang dapat digunakan untuk mencari faktorisasi QR adalah metode Gram-Schmidt. Pada metode ini, matrik Q yang dihasilkan bukan matrik bujursangkar sehingga bukan merupakan matrik orthogonal. Matrik Q yang dihasilkan adalah matrik dengan vektor kolom yang orthonormal.
Definisi. Misal A ∈ Rm x n, maka faktorisasi QR "skinny'' dari A adalah
A = Q1 R1
dimana Q1 ∈ Rm x n memiliki kolom-kolom yang orthonormal dan R1 ∈
Rn x n adalah matrik segitiga atas dengan entri pada diagonalnya
positip. Untuk membedakan dengan faktorisasi sebelumnya, faktorisasi QR “skinny” ditulis dengan menggunakan indeks 1, yaitu A = Q1R1
4.5.1 Classical Gram-Schmidt
Metode Gram-Schmidt pertama yang digunakan untuk menghitung faktorisasi QR "skinny" dikenal dengan nama Classical Gram-Schmidt (CGS). Metode ini didasarkan ide bahwa setiap matrik dapat dibuat menjadi matrik yang memiliki vektor kolom yang orthonormal dan disebut matrik Q1. Selanjutnya
matrik R1 didapat dari matode langsung berdasarkan hubungan A = Q1R1.
Berikut ini adalah metode faktorisasi QR dengan menggunakan CGS:
Misal A = [a1 | a2 | ….. | an], dimana ai ∈ Rm adalah vektor kolom ke-i dari A
Penentuan Matrik Q: Langkah 1: v1 = a1; ⇒ q1 = v1/ v1 Langkah 2: v2 = a2 − a2,q1 q1; ⇒ q2 = v2/ v2 Langkah 3: v3 = a3 − a3,q1 q1− a3,q2 q2; ⇒ q3 = v3/ v3 …. Langkah n: i n n n n i i n n n a a q q q v v v , ; / 1 1 = ⇒ − =
∑
− = Penentuan Matrik R:Karena q1, q2, …, qn adalah vektor yang orthonormal, maka:
n n n n n n n n n n q q a q q a q q a a q q a q q a q q a a q q a q q a q q a a , , , , , , , , , 2 2 1 1 2 2 2 2 1 1 2 2 1 2 2 1 1 1 1 1 + + + = + + + = + + + = ⋯ ⋮ ⋯ ⋯ atau
[
] [
]
= n n n n n n n n q a q a q a q a q a q a q a q a q a q q q a a a , , , , , , , , , 2 1 2 2 2 2 1 1 1 2 1 1 2 1 2 1 ⋯ ⋮ ⋮ ⋮ ⋯ ⋯ ⋯ ⋯Karena untuk j ≥ 2, vektor qj orthogonal terhadap a1, a2, …., aj-1, maka
semua entri dibawah diagonal adalah nol dan matrik tersebut menjadi matrik segitiga atas dan disebut matrik R1, yaitu:
R1 = n n n n q a q a q a q a q a q a , 0 0 , , 0 , , , 2 2 2 1 1 2 1 1 ⋯ ⋮ ⋮ ⋮ ⋯ ⋯
Algoritma Faktorisasi QR Dengan Classical Gram-Schmidt
Algoritma. Jika diberikan matrik A ∈ Rm x n dengan vektor kolom yang bebas
linear maka prosedur berikut akan membentuk faktorisasi QR dari A, yaitu A = QR.
Tahap 1: Lakukan n kali proses Gram-Schmidt terhadap masing-masing vektor kolom A = [a1, a2, .., an] untuk membentuk
vektor-vektor kolom yang orthonormal dari Q = [q1,
q2, .., qn]
Tahap 2: Tentukan nilai-nilai diatas diagonal utama dari matrik R
Contoh 11:
Tentukan faktorisasi QR dari matrik: A = − 4 4 7 5 7 21 Jawab:
Tahap 1: Penentuan matrik Q - = = 4 5 21 1 1 a v = = 1822 . 0 2277 . 0 9565 . 0 1 1 1 v v q - − − = − − = − = 3776 . 5 2780 . 5 2324 . 0 3776 . 1 7220 . 1 2324 . 7 4 7 7 , 1 1 2 2 2 a a q q v − − = = 7133 . 0 7001 . 0 0308 . 0 2 2 1 v v q Sehingga − − = 7133 . 0 1822 . 0 7001 . 0 2277 . 0 0308 . 0 9565 . 0 Q
Tahap 2: Penentuan matrik R = = 5386 . 7 0 5611 . 7 9545 . 21 , 0 , , 2 2 1 2 1 1 q a q a q a R
Teknik Implementasi Algoritma Classical Gram-Schmidt
Algoritma. Dalam implementasi ke program komputer, kolom ke-k dari matrik Rn x n dan Qm x n dapat dibangun serentak pada langkah ke-k, sbb:
k = 1 v = A(1:m, k) R(k,k) = ||v|| Q(1:m,k) = v/R(k,k) for k = 2 to n R(1:k-1, k) = Q(1:m, 1:k-1)T A(1:m, k) v = A(1:m, k) - Q(1:m, 1:k-1) R(1:k-1, k) R(k, k) = ||v|| Q(1:m, k) = v / R(k, k) end Contoh 12:
Untuk Contoh 11, proses yang dilakukan oleh algoritma CGS sbb:
Langkah 1 (k = 1): − − − = − − = 1822 . 0 2277 . 0 9565 . 0 0 9545 . 21 Q R Langkah 2 (k = 2): − − = = 7133 . 0 1822 . 0 7001 . 0 2277 . 0 0308 . 0 9565 . 0 5386 . 7 0 5611 . 7 9545 . 21 Q R
4.5.2 Modified Gram-Schmidt
Dalam perhitungannya, ternyata metode CGS sering kehilangan sifat orthogonalitas dari vektor-vektor kolom Q. Untuk mengatasi ini, dilakukan perbaikan urutan/prosedur pengerjaan dalam membangun matrik Q dan R. Algoritma ini disebut modified Gram-Schmidt (MGS).
Teknik Implementasi Algoritma Modified Gram-Schmidt
Algoritma. Algoritma MGS membangun secara serentak baris ke-k dari R dan kolom ke-k dari Q pada langkah ke-k, sbb:
for k = 1 to n R(k, k) = ||A(1:m, k)|| Q(1:m, k) = A(1:m, k) / R(k, k) for j = k+1 to n R(k, j) = Q(1:m, k)T A(1:m, j) A(1:m, j) = A(1:m, j) - Q(1:m, k) R(k, j) end end Contoh 13:
Untuk Contoh 11, proses yang dilakukan oleh algoritma MGS sbb:
Langkah 1 (k = 1): − − − = − = 1822 . 0 2277 . 0 9565 . 0 0 5611 . 7 9545 . 21 Q R Langkah 2 (k = 2): − − = = 7133 . 0 1822 . 0 7001 . 0 2277 . 0 0308 . 0 9565 . 0 5386 . 7 0 5611 . 7 9545 . 21 Q R
4.6 Aplikasi Faktorisasi QR
Ada beberapa aplikasi dari faktorisasi QR yang sering digunakan, antara lain:
1.
Bersama dengan metode kuadrat terkecil (least square), disebut juga orthogonal least squares (OLS), umum digunakan untuk memecahkan sistem persamaan linear (Amxn x = b) yang overdetermined (m ≥ n).Misal A ϵ Rm x n dengan m ≥ n, dan b ϵ Rm diberikana dan misal bahwa suatu
matrik ortogonal Q ϵ Rm x m telah dihitung sedemikian sehingga QTA = R =
[
R10
]
n m−n adalah suatu matrik segitiga atas. Jika
QTb =
[
c d]
n m−n maka ∥Ax−b∥22 = ∥QT Ax − QTb∥ 2 2 = ∥R1x − c∥22 ∥d∥22 untuk sembarang x ϵ Rn. Jelaslah bahwa jika rank(A) = rank(R1) = n, maka
solusi kuadra terkecil xLS didefiniskan oleh sistem segitiga atas R1 xLS = c.
Catat bahwa nilai minimum residual adalah
2.
Digunakan untuk mengaproksimasi nilai eigen3. Digunakan untuk mencari himpunan basis orthonormal dari suatu himpunan vektor. Misal: jika A adalah matrik berukuran m x n dengan vektor kolom yang bebas linear, maka n buah vektor kolom pertama dari Q adalah merupakan himpunan basis yang orthonormal yang akan merentang ruang yang sama dengan ruang yang direntang oleh vektor kolom A.