Bab 4 - Faktorisasi QR

July 22, 2017 | Author: adhiarman | Category: N/A
Share Embed Donate


Short Description

Download Bab 4 - Faktorisasi QR...

Description

Bab IV Faktorisasi QR 4.1 Pendahuluan Faktorisasi QR dari matrik A berukuran m x n adalah penguraian matrik A menjadi A=QR 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, Gram-Schmidt dan Modified GramSchmidt.

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: x  T x Q x  x HM, Rev. November, 2011

x x x x

x  x x   0 = x  0   x  0

x x 0 0

x x  x  0 Bab IV - 1

Ada beberapa cara untuk mencari matrik transformasi Q T, antara lain: (1) menggunakan prinsip pencerminan (reflection), disebut Householder reflection, dan (2) Menggunakan prinsip rotasi (rotation), disebut Given rotation.

Pencerminan dan Rotasi Pada R2 Matrik 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): QT

 cos 2θ  sin 2θ 

=

sin 2θ  − cos 2θ 

dan matrik standar untuk rotasi sebesar θ0 berlawanan arah jarum jam adalah QT

=

 cosθ  sin θ 

− sin θ  cosθ 

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 garis pencerminan, maka matrik transformasi dari pencerminan ini adalah: QT

=

 cos 30 0  0  sin 30

sin 30 0   3 / 2 1/ 2  =   0 − cos 30   1 / 2 − 3 / 2

Maka QTx = (2, 0)T, atau QT akan mentransformasikan x menjadi vektor dengan komponen nol pada nilai keduanya.

HM, Rev. November, 2011

Bab IV - 2

2) Jika kita pilih sudut rotasinya adalah –60o, maka matrik transformasi dari rotasi ini adalah: Q

T

=

 cos (− 60 0 ) − sin (− 60 0 )  1 / 2 =   0 0   sin( − 60 ) cos (− 60 )   − 3 / 2

3 / 2  1/ 2 

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 masingmasing 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.

HM, Rev. November, 2011

Bab IV - 3

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 = αe1. Untuk sembarang x ∈ Rn kita dapatkan Px =

 2vv T  I − T v v 

 2v T x  x = x − T v v v 

sehingga Px ∈ span{e1} (= direntang e1) dan berimplikasi v ∈ span{x, e1}. Dari kondisi itu jika kiat buat v = x + αe1 maka vTx = xTx + αx1

dan

vTv = xTx + 2αx1 + α2

sehingga, Px =

 x T x + α x1  1 − 2 T x x + 2α x1 + α 

2

 vT x  x − 2α T e1 v v 

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 ± ||x|| e1

HM, Rev. November, 2011

Bab IV - 4

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:  3

 1

 8

Menggunakan tanda positip, yaitu v = x + x e1 =   + 5  =   ,  4  0  4

(1)

dan 2vv T  1 0 2  64 32  1 0  1.6 0.8  − 0.6 − 0.8 P = I− T =  −   =  −   =   v v  0 1 80  32 16   0 1  0.8 0.4  − 0.8 0.6 

sehingga Px = (-5, 0)T  3

 − 2

 1

Menggunakan tanda negatip, yaitu v = x − x e1 =   − 5  =   ,  4  0  4 

(2)

dan P = I−

2vv T  1 0 2  4 − 8  1 0  0.4 − 0.8  0.6 0.8  =  −   =  −   =   v T v  0 1 20  − 8 16   0 1  − 0.8 1.4   0.8 − 0.4

sehingga Px = (5, 0)T

Contoh 4:  21  1   42.9545        5  1. Jika x = (21, 5, 4)T maka v = x + x e1 =  5  + 21.9545 0  =   4  0  4      

dan P1

 - 0.9565 - 0.2277 - 0.1822 2vv T  = I − T =  - 0.2277 0.9735 - 0.0212 v v  - 0.1822 - 0.0212 0.9830

sehingga P1x = (-21.9545, 0, 0)T

HM, Rev. November, 2011

Bab IV - 5

2. Jika x = (21, 5, 4)T merupakan kolom pertama dari suatu matrik, misal:  21 7    A=  5 7   4 − 4

Maka perkalian P1 dan A akan membuat nol nilai-nilai dibawah diagonal utama pada kolom pertama, yaitu:

 − 21.9545 − 7.5611  5.3051  P1A =  0.0000  0.0000 − 5.3560

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: x x  A= x  x  x

HM, Rev. November, 2011

x x x x x

x x  x   P1 →  x x 

x 0  0  0  0

x x x x x

x x  x   P2 →  x x 

x 0  0  0  0

x x 0 0 0

x x  x   P3 →  x x 

x 0  0  0  0

x x 0 0 0

x x  x  0 0

Bab IV - 6

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:  21 7    A=  5 7   4 − 4

Jawab: Tahap 1: Menentukan 2 buah matrik Householder  - 0.9565 - 0.2277 - 0.1822    (1) Dari contoh 4 diperoleh P1 =  - 0.2277 0.9735 - 0.0212  - 0.1822 - 0.0212 0.9830 

 − 21.9545 − 7.5611  5.3051  Sehingga P1A =  0.0000  0.0000 − 5.3560

(3)

Untuk membuat P1A menjadi segitiga atas maka kita harus

membuat 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

HM, Rev. November, 2011

x = (5.3051, -5.3560) T.

Bab IV - 7

Selanjutnya lakukan prosedur seperti Contoh 3, no 1, untuk menentukan vektor dan matrik Householder, yaitu:  5.3051   1   12.8437   + 7.5386  =   v = x + x e1 =  − 5 . 3560 0 − 5 . 3560      

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 P2

 1.0000 0.0000 0.0000  2vv T  = I − T =  0.0000 - 0.7037 0.7105 v v  0.0000 0.7105 0.7037 

 − 21.9545 − 7.5611  − 7.5386 Sehingga P2P1A =  0.0000  0.0000 0.0000  Tahap 2: Menentukan matrik Q dan R

-

 - 0.9565 0.0308 - 0.2900   Q = P1P2 =  - 0.2277 - 0.7001 0.6767  - 0.1822 0.7133 0.6767

 − 21.9545 − 7.5611   - R =  0.0000 − 7.5386  0.0000 0.0000 

Teknik 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 HM, Rev. November, 2011

Bab IV - 8

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|| = x12 + x 22 + ⋯ + x n2 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

HM, Rev. November, 2011

Bab IV - 9

4.4 Givens Rotation Matrik Given, disebut juga Given rotation atau Given transformation, adalah matrik yang berbentuk: 1 ⋮  0  ⋮ G(i, k, θ) =  0  ⋮ 0 

0 ⋮ c ⋮ ⋯ − s ⋮ ⋯ 0 ⋯ ⋱ ⋯

⋯ 0 ⋮ ⋯ s ⋱ ⋮ ⋯ c ⋮ ⋯ 0

i

⋯ 0 ⋮ ⋯ 0 i  ⋮ ⋯ 0 k  ⋱ ⋮ ⋯ 1

k

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:  c

s

 cosθ

G(1, 2, θ) =  − s c  =  − sin θ     cosθ

Sehingga G(1, 2, θ)Tx =  sin θ 

sin θ  dan G(1, 2, θ)T = cosθ 

 cos θ  sin θ 

− sin θ cosθ

 . 

− sin θ   x1  merupakan suatu rotasi cosθ   x 2 

dengan sudut θ berlawanan arah jarum jam pada bidang koordinat (x1, x2).

HM, Rev. November, 2011

Bab IV - 10

Misal x ∈ Rn, maka perkalian x dengan matrik Given G(i, k, θ)T adalah:  y1   1 ⋯  ⋮  ⋮ ⋱     yi   0 ⋯     ⋮ =  ⋮  yk   0 ⋯     ⋮  ⋮  y  0 ⋯  n 

x1  ⋯ 0  x1       ⋮  ⋮  ⋮   c ⋯ − s ⋯ 0  xi   cxi − sx k      ⋮  ⋮ ⋱ ⋮ ⋮  ⋮  =  s ⋯ c ⋯ 0  x k   sxi + cx k      ⋮  ⋮ ⋮ ⋱ ⋮  ⋮   0 ⋯ 0 ⋯ 1  x n   x n  0 ⋯ ⋮

0 ⋮

atau  cxi − sx k jika j = i  y j =  sxi + cx k jika j = k  x jika j ≠ i, k  j

Dari formula diatas, kita dapat membuat nilai y k menjadi nol yaitu dengan cara membuat nilai c=

xi x + x 2 i

2 k

dan s =

− xk xi2 + x k2

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 c=

x3 x + x 2 3

2 4

=

3 9 + 16

=

3 dan s = 5

− x4 x + x 2 3

2 4

=

− 4 9 + 16

=

− 4 5

sehingga 1 0 T G(3, 4) =  0  0

HM, Rev. November, 2011

0 0 0  1 0 0  , dan G(3, 4)Tx = 0 3 / 5 4 / 5  0 − 4 / 5 3 / 5

1 0  0  0

0 0 0   1   1 1 0 0   2  2 = 0 3 / 5 4 / 5  3  5     0 − 4 / 5 3 / 5   4  0

Bab IV - 11

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:

GtT ⋯G2T G1T A = R Ilustrasi untuk matrik A berukuran 4 x 3: x x A=  x  x

x x   x  x x x 0 x G (1, 2 )T  →  0 x  0 x x x x x

x x 0 x G ( 3, 4 )T   →  0 0  0 0

x x G ( 3, 4 )T   →  x  0

x x x x

x x  G ( 3, 4 )T  → x  x x x  = R x  0

x 0  0  0

x x   x  x x x x 0

x x G ( 2 , 3 )T  →  0  0

x x  x  x x x x  x  G ( 2,3)T  0 x   → 0 0 x   x 0 0 x x x x

x x  x  x

Tahap 2: Karena Gi adalah matrik orthogonal maka A = G1 ⋯Gt − 1Gt R . 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 segitiga atas yang berukuran sama dengan matrik A.

HM, Rev. November, 2011

Bab IV - 12

Contoh 9: Tentukan faktorisasi QR dari matrik:  21 7    A=  5 7   4 − 4

Jawab: Tahap 1: Menentukan 3 buah matrik Given

(1) Misal x = (21, 5, 4)T, untuk membuat nol komponen ketiga ambil i = 2 dan j = 3, sehingga: c=

x2 x 22 + x32

=

5 25 + 16

= 0.7809 dan s =

− x3

=

x 22 + x32

− 4 25 + 16

= − 0.6247

-

0 0  1 0 0  1     Matrik Given G1(2,3)T =  0 c − s  =  0 0.7809 0.6247   0 s c   0 − 0.6247 0.7809 

-

7  21    Kemudian G1TA =  6.4031 2.9673   0 − 7.4963

(2) Misal x = (21, 6.4031, 0)T, untuk membuat nol komponen kedua ambil i = 1 dan j = 2, sehingga: c=

-

x1 x + x 2 1

2 2

=

21 = 0.9565 dan s = 21.9545

− x2 x + x 2 1

2 2

=

− 6.4031 = − 0.2917 21.9545

 c − s 0  0.9565 0.2917 0     Matrik Given G2(1,2)T =  s c 0 =  − 0.2917 0.9565 0  0 0 1  0 0 1

HM, Rev. November, 2011

Bab IV - 13

-

 21.9545 7.5611   0.7967  Kemudian G2TG1TA =  0  0 − 7.4963

(3) Misal x = (7.5611, 0.7967, -7.4963)T, untuk membuat nol komponen ketiga ambil i = 2 dan j = 3, sehingga: c=

x2 x 22 + x32

=

0.7967 = 0.1057 dan s = 7.5385

− x3 x 22 + x32

=

7.4963 = 0.9944 7.5385

-

0 0 1 0 0  1      Matrik Given G3(2,3)T =  0 c − s  =  0 0.1057 − 0.9944  0 s c   0 0.9944 0.1057 

-

 21.9545 7.5611  7.5386 Kemudian G3TG2TG1TA =  0  0 0 

Tahap 2: Menentukan matrik Q dan R

-

 0.9565 - 0.0308 - 0.2901   Q = G1G2G3 =  0.2278 0.7002 0.6767   0.1822 - 0.7134 0.6767 

 21.9545 7.5611  7.5386 - R=  0  0 0 

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.

HM, Rev. November, 2011

Bab IV - 14

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 T

 c s  a  t  sehingga     =  :  − s c   b   0

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 k= −

a 3 = − ; b 4

s=

1 1+ k 2

1 0 T Sehingga G(3, 4) =  0  0 1 0 T dan G(3, 4) x =  0  0

HM, Rev. November, 2011

=

(

1

1+ − 3

) 4

2

=

4 5

dan c = sk =

4 3 3 −  = − 5 4 5

0 0 0  1 0 0  , 0 − 3 / 5 − 4 / 5  0 4 / 5 − 3 / 5

0 0 0   1  1  1 0 0   2  2  = 0 − 3 / 5 − 4 / 5  3  − 5     0 4 / 5 − 3 / 5   4  0 

Bab IV - 15

4.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 R 1 dimana Q1 ∈ Rm x n memiliki kolom-kolom yang orthonormal dan R 1 ∈ 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 Q 1. 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 Q = [q1 | q2 | …. | qn], dimana qi ∈ Rm adalah vektor kolom ke-i dari Q

HM, Rev. November, 2011

Bab IV - 16

Penentuan Matrik Q: Langkah 1: v1 = a1 ; ⇒

q1 = v1 / v1

Langkah 2: v 2 = a 2 − a 2 , q1 q1 ; ⇒

q2 = v2 / v2

Langkah 3: v3 = a3 − a3 , q1 q1 − a3 , q2 q 2 ; ⇒

q 3 = v3 / v3

…. Langkah n: vn = a n −

n− 1



i= 1

a n , qi qi ; ⇒

q n = vn / vn

Penentuan Matrik R: Karena q1, q2, …, qn adalah vektor yang orthonormal, maka: a1 = a1 , q1 q1 + a1 , q 2 q 2 + ⋯ + a1 , q n q n a 2 = a 2 , q1 q1 + a 2 , q 2 q 2 + ⋯ + a 2 , q n q n ⋮ a n = a n , q1 q1 + a n , q 2 q 2 + ⋯ + a n , q n q n

atau

[ a1

a 2 ⋯ a n ] = [ q1

q2

 a1 , q1  a1 , q 2 ⋯ qn ]   ⋮   a1 , q n

a 2 , q1



a2 , q2



⋮ a2 , qn



a n , q1   an , q2  ⋮   a n , q n 

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:  a1 , q1  0 R1 =  ⋮   0

HM, Rev. November, 2011

a 2 , q1 a2 , q2 ⋮ 0

⋯ ⋯ ⋯

a n , q1 an , q2 ⋮ an , qn

     

Bab IV - 17

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 masingmasing 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:  21 7    A=  5 7   4 − 4

Jawab: Tahap 1: Penentuan matrik Q

 0.9565  21 v   1 =  0.2277  - v1 = a1 =  5   q1 = v1  4   0.1822  − 0.0308  7   7.2324  − 0.2324 v         - v 2 = a 2 − a 2 , q1 q1 =  7  −  1.7220  =  5.2780   q1 = 2 =  0.7001  v2  − 4  1.3776   − 5.3776  − 0.7133

 0.9565  Sehingga Q =  0.2277  0.1822 HM, Rev. November, 2011

− 0.0308 0.7001  − 0.7133 Bab IV - 18

Tahap 2: Penentuan matrik R  a ,q R=  1 1  0

a 2 , q1   21.9545 7.5611  = a 2 , q 2   0 7.5386

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:  21.9545 −  Langkah 1 (k = 1): R =  0 −  

 0.9565 −  Q =  0.2277 −   0.1822 − 

 21.9545 7.5611 Langkah 2 (k = 2): R =  0 7.5386 

HM, Rev. November, 2011

 0.9565 − 0.0308 Q =  0.2277 0.7001   0.1822 − 0.7133 Bab IV - 19

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:  21.9545 7.5611 Langkah 1 (k = 1): R =  0 −  

 0.9565 −  Q =  0.2277 −   0.1822 − 

 21.9545 7.5611 Langkah 2 (k = 2): R =  0 7.5386 

 0.9565 − 0.0308 Q =  0.2277 0.7001   0.1822 − 0.7133

HM, Rev. November, 2011

Bab IV - 20

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 QT A = R =

[ ] R1 0

n m−n

adalah suatu matrik segitiga atas. Jika T

Q b =

[ dc ]

n m−n

maka ∥Ax−b∥22 = ∥QT Ax − QT b∥22 = ∥R1 x − c∥22  ∥d∥22

untuk sembarang x ϵ Rn. Jelaslah bahwa jika rank(A) = rank(R 1) = n, maka solusi kuadra terkecil xLS didefiniskan oleh sistem segitiga atas R1 xLS = c. Catat bahwa nilai minimum residual adalah r LS = ∥Ax LS − b∥2 = ∥d∥2

HM, Rev. November, 2011

Bab IV - 21

2. Digunakan untuk mengaproksimasi nilai eigen 3. 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.

HM, Rev. November, 2011

Bab IV - 22

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF