• Tidak ada hasil yang ditemukan

Lampiran 1 Pembuktian Teorema (Rumus Proyeksi Ortogonal)

N/A
N/A
Protected

Academic year: 2022

Membagikan "Lampiran 1 Pembuktian Teorema (Rumus Proyeksi Ortogonal)"

Copied!
16
0
0

Teks penuh

(1)

LAMPIRAN

(2)

Lampiran 1 Pembuktian Teorema 2.4.15 (Rumus Proyeksi Ortogonal)

Misalkan suatu hiperbidang di ℝ

𝑁

mempunyai persamaan 𝐚

𝑇

𝐱 = 𝑏 dan misalkan 𝐱

adalah sebarang titik di ℝ

𝑁

, maka proyeksi ortogonal, 𝐱

𝑝

, dari 𝐱

terhadap hiperbidang tersebut dinyatakan dengan

𝐱

𝑝

= 𝐱

+ 𝑏 − 𝐚

𝑇

𝐱

𝐚

𝟐

𝐚.

Bukti:

Teorema ini dapat dibuktikan dengan membuktikan bahwa (i) titik 𝐱

𝑝

terletak pada hiperbidang 𝐚

𝑇

𝐱 = 𝑏 (dalam hal ini, 𝐚

𝑇

𝐱

𝑝

= 𝑏) dan (ii) vektor 𝐱

𝑝

− 𝐱

ortogonal terhadap hiperbidang 𝐚

𝑇

𝐱 = 𝑏 (dalam hal ini, vektor 𝐱

𝑝

− 𝐱

sejajar dengan vektor 𝐚).

Pertama, karena

𝐱

𝑝

= 𝐱

+ 𝑏 − 𝐚

𝑇

𝐱

𝐚

𝟐

𝐚, maka

𝐚

𝑇

𝐱

𝑝

= 𝐚

𝑇

𝐱

+ 𝑏 − 𝐚

𝑇

𝐱

𝐚

𝟐

𝐚 = 𝐚

𝑇

𝐱

+ 𝑏 − 𝐚

𝑇

𝐱

𝐚

𝟐

𝐚

𝑇

𝐚 = 𝐚

𝑇

𝐱

+ 𝑏 − 𝐚

𝑇

𝐱

𝐚

𝟐

𝐚

𝟐

= 𝐚

𝑇

𝐱

+ 𝑏 − 𝐚

𝑇

𝐱

= 𝑏.

Jadi, terbukti bahwa titik 𝐱

𝑝

terletak pada hiperbidang 𝐚

𝑇

𝐱 = 𝑏.

Kedua, karena

𝐱

𝑝

= 𝐱

+ 𝑏 − 𝐚

𝑇

𝐱

𝐚

𝟐

𝐚, maka

𝐱

𝑝

− 𝐱

= 𝑏 − 𝐚

𝑇

𝐱

𝐚

𝟐

𝐚.

Karena vektor 𝐱

𝑝

− 𝐱

merupakan merupakan vektor 𝐚 dikalikan dengan suatu skalar, maka vektor 𝐱

𝑝

− 𝐱

sejajar dengan vektor 𝐚. Jadi, terbukti bahwa vektor 𝐱

𝑝

− 𝐱

ortogonal terhadap hiperbidang 𝐚

𝑇

𝐱 = 𝑏.

Bukti lengkap. ∎

(3)

Lampiran 2 Pembuktian Persamaan (6)

Diketahui Persamaan (3), yaitu

𝑓

𝑖

𝐱 = 𝐱 + 𝑏

𝑖

− 𝐚

𝑖𝑇

𝐱

𝐚

𝑖 2

𝐚

𝑖

untuk 𝑖 = 1, 2, … , 𝑀.

Akan dibuktikan bahwa Persamaan (3) ekivalen dengan Persamaan (6), yaitu 𝑓

𝑖

𝐱 = 𝑃

𝑖

𝐱 + 𝑏

𝑖

𝐚

𝑖 2

𝐚

𝑖

untuk 𝑖 = 1, 2, … , 𝑀 dengan

𝑃

𝑖

= 𝐼 − 1

𝐚

𝑖 2

𝐚

𝑖

𝐚

𝑖𝑇

. Bukti:

𝑓

𝑖

𝐱 = 𝐱 + 𝑏

𝑖

− 𝐚

𝑖𝑇

𝐱 𝐚

𝑖 2

𝐚

𝑖

↔ 𝑓

𝑖

𝐱 = 𝐱 − 𝐚

𝑖𝑇

𝐱

𝐚

𝑖 2

𝐚

𝑖

+ 𝑏

𝑖

𝐚

𝑖 2

𝐚

𝑖

↔ 𝑓

𝑖

𝐱 = 𝐱 − 1

𝐚

𝑖 2

𝐚

𝑖

𝐚

𝑖𝑇

𝐱 + 𝑏

𝑖

𝐚

𝑖 2

𝐚

𝑖

↔ 𝑓

𝑖

𝐱 = 𝐼𝐱 − 1

𝐚

𝑖 2

𝐚

𝑖

𝐚

𝑖𝑇

𝐱 + 𝑏

𝑖

𝐚

𝑖 2

𝐚

𝑖

↔ 𝑓

𝑖

𝐱 = 𝐼 − 1

𝐚

𝑖 2

𝐚

𝑖

𝐚

𝑖𝑇

𝐱 + 𝑏

𝑖

𝐚

𝑖 2

𝐚

𝑖

.

Bukti lengkap. ∎

(4)

Lampiran 3 Pembuktian Persamaan (9)

Diketahui Persamaan (4), yaitu

𝐹 𝐱; 𝐛 = 𝑓

1

∘ 𝑓

2

∘ ⋯ ∘ 𝑓

𝑀

𝐱 = 𝑓

1

𝑓

2

⋯ 𝑓

𝑀

𝐱 ⋯ , Persamaan (6), yaitu

𝑓

𝑖

𝐱 = 𝑃

𝑖

𝐱 + 𝑏

𝑖

𝐚

𝑖 2

𝐚

𝑖

untuk 𝑖 = 1, 2, … , 𝑀, Persamaan (8), yaitu

𝑅𝐛 = 𝑏

𝑖

𝐚

𝑖 2

𝑄

𝑖−1

𝐚

𝑖

𝑀

𝑖=1

,

dan

𝑄

𝑖

= 𝑃

1

𝑃

2

… 𝑃

𝑖

(𝑖 = 1, 2, … , 𝑀) dengan 𝑄

0

= 𝐼.

Akan dibuktikan bahwa Persamaan (4) ekivalen dengan Persamaan (9), yaitu 𝐹 𝐱; 𝐛 = 𝑄𝐱 + 𝑅𝐛

dengan matriks 𝑄 = 𝑄

𝑀

. Bukti:

𝐹 𝐱; 𝐛 = 𝑄𝐱 + 𝑅𝐛

↔ 𝐹 𝐱; 𝐛 = 𝑃

1

𝑃

2

… 𝑃

𝑀

𝐱 + 𝑏

𝑖

𝐚

𝑖 2

𝑄

𝑖−1

𝐚

𝑖

𝑀

𝑖=1

↔ 𝐹 𝐱; 𝐛 = 𝑃

1

𝑃

2

… 𝑃

𝑀

𝐱 + 𝑏

1

𝐚

1 2

𝑄

0

𝐚

1

+ 𝑏

2

𝐚

2 2

𝑄

1

𝐚

2

+ ⋯ + 𝑏

𝑀

𝐚

𝑀 2

𝑄

𝑀−1

𝐚

𝑀

↔ 𝐹 𝐱; 𝐛 = 𝑃

1

𝑃

2

… 𝑃

𝑀

𝐱 + 𝑏

1

𝐚

1 2

𝐚

1

+ 𝑏

2

𝐚

2 2

𝑃

1

𝐚

2

+ ⋯ + 𝑏

𝑀

𝐚

𝑀 2

𝑃

1

𝑃

2

… 𝑃

𝑀−1

𝐚

𝑀

↔ 𝐹 𝐱; 𝐛 = 𝑃

1

𝑃

2

… 𝑃

𝑀

𝐱 + 𝑏

2

𝐚

2 2

𝐚

2

+ ⋯ + 𝑏

𝑀

𝐚

𝑀 2

𝑃

2

… 𝑃

𝑀−1

𝐚

𝑀

+ 𝑏

1

𝐚

1 2

𝐚

1

↔ 𝐹 𝐱; 𝐛 = 𝑓

1

𝑃

2

… 𝑃

𝑀

𝐱 + 𝑏

2

𝐚

2 2

𝐚

2

+ ⋯ + 𝑏

𝑀

𝐚

𝑀 2

𝑃

2

… 𝑃

𝑀−1

𝐚

𝑀

↔ 𝐹 𝐱; 𝐛 = 𝑓

1

𝑃

2

𝑃

3

… 𝑃

𝑀

𝐱 + ⋯ + 𝑏

𝑀

𝐚

𝑀 2

𝑃

3

… 𝑃

𝑀−1

𝐚

𝑀

+ 𝑏

2

𝐚

2 2

𝐚

2

↔ 𝐹 𝐱; 𝐛 = 𝑓

1

𝑓

2

𝑃

3

… 𝑃

𝑀

𝐱 + ⋯ + 𝑏

𝑀

𝐚

𝑀 2

𝑃

3

… 𝑃

𝑀−1

𝐚

𝑀

↔ 𝐹 𝐱; 𝐛 = 𝑓

1

𝑓

2

⋯ 𝑃

𝑀

𝐱 + 𝑏

𝑀

𝐚

𝑀 2

𝐚

𝑀

↔ 𝐹 𝐱; 𝐛 = 𝑓

1

𝑓

2

⋯ 𝑓

𝑀

𝐱 ⋯ .

Bukti lengkap. ∎

(5)

Lampiran 4 Bukti Persamaan (10)

Berdasarkan Persamaan (5) dan (9), untuk 𝐛 = 𝟎 diperoleh 𝐱

𝑛+1

= 𝐹 𝐱

𝑛

; 𝟎 = 𝑄𝐱

𝑛

, Akan dibuktikan (dengan menggunakan Induksi Matematika) bahwa

𝐱

𝑛

= 𝑄

𝑛

𝐱

0

, untuk setiap 𝑛 ∈ ℕ.

Bukti:

 Untuk 𝑛 = 1, Ruas kiri:

𝐱

1

= 𝑄𝐱

0

. Ruas kanan:

𝑄𝐱

0

.

Ruas kiri sama dengan ruas kanan, berarti benar untuk 𝑛 = 1.

 Anggap benar untuk 𝑛 = 𝑚, 𝑚 ∈ ℕ, yaitu

𝐱

𝑚

= 𝑄

𝑚

𝐱

0

.

 Akan dibuktikan bahwa benar untuk 𝑛 = 𝑚 + 1, 𝑚 ∈ ℕ, yaitu 𝐱

𝑚 +1

= 𝑄

𝑚 +1

𝐱

0

. Bukti:

𝐱

𝑚 +1

= 𝑄𝐱

𝑚

= 𝑄𝑄

𝑚

𝐱

0

= 𝑄

𝑚 +1

𝐱

0

. Terbukti benar untuk 𝑛 = 𝑚 + 1, 𝑚 ∈ ℕ.

Bukti lengkap. ∎

(6)

Lampiran 5 Pembuktian Persamaan (11)

Berdasarkan Persamaan (5) dan (9), untuk 𝐛 = 𝟎 diperoleh 𝐱

𝑛+1

= 𝐹 𝐱

𝑛

; 𝟎 = 𝑄𝐱

𝑛

, dan berdasarkan bagian pertama dari Teorema 4.3.6, diperoleh

𝑄 = 𝑃

𝒦

+ 𝑄 = 𝑃

𝒦

+ 𝑄𝑃

. Akan dibuktikan (dengan menggunakan Induksi Matematika) bahwa

𝐱

𝑛

= 𝑃

𝒦

𝐱

0

∈ Ker 𝐴

+ 𝑄

𝑛

𝐱

0

∈ Im 𝐴𝑇

,

untuk setiap 𝑛 ∈ ℕ.

Bukti:

 Untuk 𝑛 = 1, Ruas kiri:

𝐱

1

= 𝑄𝐱

0

. Ruas kanan:

𝑃

𝒦

𝐱

0

∈ Ker 𝐴

+ 𝑄 𝐱

0

∈ Im 𝐴𝑇

= 𝑃

𝒦

+ 𝑄 𝐱

0

= 𝑄𝐱

0

.

Ruas kiri sama dengan ruas kanan, berarti benar untuk 𝑛 = 1.

 Anggap benar untuk 𝑛 = 𝑚, 𝑚 ∈ ℕ, yaitu 𝐱

𝑚

= 𝑃

𝒦

𝐱

0

∈ Ker 𝐴

+ 𝑄

𝑚

𝐱

0

∈ Im 𝐴𝑇

.

 Akan dibuktikan bahwa benar untuk 𝑛 = 𝑚 + 1, 𝑚 ∈ ℕ, yaitu 𝐱

𝑚 +1

= 𝑃

𝒦

𝐱

0

∈ Ker 𝐴

+ 𝑄

𝑚 +1

𝐱

0

∈ Im 𝐴𝑇

. Bukti:

𝐱

𝑚 +1

= 𝑄𝐱

𝑚

= 𝑃

𝒦

+ 𝑄 𝑃

𝒦

𝐱

0

∈ Ker 𝐴

+ 𝑄

𝑚

𝐱

0

∈ Im 𝐴𝑇

= 𝑃

𝒦

𝑃

𝒦

𝐱

0

∈ Ker 𝐴

+ 𝑃

𝒦

𝑄

𝑚

𝐱

0

∈ Im 𝐴𝑇

+ 𝑄𝑃

𝑃

𝒦

𝐱

0

∈ Ker 𝐴

+ 𝑄 𝑄

𝑚

𝐱

0

∈ Im 𝐴𝑇

= 𝑃

𝒦

𝐱

0

∈ Ker 𝐴

+ 𝟎 + 𝑄𝟎 + 𝑄

𝑚 +1

𝐱

0

∈ Im 𝐴𝑇

= 𝑃

𝒦

𝐱

0

∈ Ker 𝐴

+ 𝑄

𝑚 +1

𝐱

0

∈ Im 𝐴𝑇

.

Terbukti benar untuk 𝑛 = 𝑚 + 1, 𝑚 ∈ ℕ.

Bukti lengkap. ∎

(7)

Lampiran 6 Pembuktian Persamaan (12)

Berdasarkan Persamaan (5) dan (9), diperoleh

𝐱

𝑛+1

= 𝐹 𝐱

𝑛

; 𝐛 = 𝑄𝐱

𝑛

+ 𝑅𝐛.

Akan dibuktikan (dengan menggunakan Induksi Matematika) bahwa 𝐱

𝑛

= 𝑄

𝑛

𝐱

0

+ 𝑄

𝑘

𝑅

𝑛−1

𝑘=0

𝐛,

untuk setiap 𝑛 ∈ ℕ.

Bukti:

 Untuk 𝑛 = 1, Ruas kiri:

𝐱

1

= 𝑄𝐱

0

+ 𝑅𝐛.

Ruas kanan:

𝑄𝐱

0

+ 𝑄

𝑘

𝑅

0

𝑘=0

𝐛 = 𝑄𝐱

0

+ 𝑄

0

𝑅𝐛 = 𝑄𝐱

0

+ 𝑅𝐛.

Ruas kiri sama dengan ruas kanan, berarti benar untuk 𝑛 = 1.

 Anggap benar untuk 𝑛 = 𝑚, 𝑚 ∈ ℕ, yaitu

𝐱

𝑚

= 𝑄

𝑚

𝐱

0

+ 𝑄

𝑘

𝑅

𝑚 −1

𝑘=0

𝐛.

 Akan dibuktikan bahwa benar untuk 𝑛 = 𝑚 + 1, 𝑚 ∈ ℕ, yaitu

𝐱

𝑚 +1

= 𝑄

𝑚 +1

𝐱

0

+ 𝑄

𝑘

𝑅

𝑚

𝑘=0

𝐛.

Bukti:

𝐱

𝑚 +1

= 𝑄𝐱

𝑚

+ 𝑅𝐛

= 𝑄 𝑄

𝑚

𝐱

0

+ 𝑄

𝑘

𝑅

𝑚 −1

𝑘=0

𝐛 + 𝑅𝐛

= 𝑄

𝑚 +1

𝐱

0

+ 𝑄 𝑄

𝑘

𝑅

𝑚 −1

𝑘=0

𝐛 + 𝑅𝐛

= 𝑄

𝑚 +1

𝐱

0

+ 𝑄

𝑘 +1

𝑅

𝑚 −1

𝑘=0

𝐛 + 𝑅𝐛

= 𝑄

𝑚 +1

𝐱

0

+ 𝑄

𝑘

𝑅

𝑚

𝑘=1

𝐛 + 𝑄

0

𝑅𝐛

= 𝑄

𝑚 +1

𝐱

0

+ 𝑄

𝑘

𝑅

𝑚

𝑘=0

𝐛.

Terbukti benar untuk 𝑛 = 𝑚 + 1, 𝑚 ∈ ℕ.

Bukti lengkap. ∎

(8)

Lampiran 7 Program MATLAB dari algoritme untuk metode Kaczmarz

Fungsi kaczmarz

function x = kaczmarz(A,b,x0)

%---

% Fungsi kaczmarz menghasilkan penyelesaian hampiran atas sistem persamaan linear

% (SPL) Ax=b :

% a11*x1 + a12*x2 + ... + a1N*xN = b1

% a21*x1 + a22*x2 + ... + a2N*xN = b2

% :

% aM1*x1 + aM2*x2 + ... + aMN*xN = b3

% menggunakan metode Kaczmarz.

%---

% Input:

% A = matriks berorde M x N (matriks koefisien dari SPL)

% a11 a12 ... a1N

% a21 a22 ... a2N

% :

% aM1 aM2 ... aMN

% b = vektor kolom berorde M x 1 (vektor konstanta dari SPL)

% b1

% b2

% :

% bM

% x0 = vektor kolom berorde N x 1 (penyelesaian hampiran awal)

%

% Input tambahan:

% iter = banyaknya iterasi

% harus berupa bilangan asli

% default: 100

% atau

% tol = batas toleransi

% harus berupa bilangan real positif

% default: 10^(-6)

%

% Output:

% x = vektor kolom berorde Nx1 (penyelesaian hampiran)

% x1

% x2

% :

% xN

%---

% Cek banyaknya input if (nargin < 3)

error('Input terlalu sedikit.');

elseif (nargin > 3)

error('Input terlalu banyak.');

end

[M,N] = size(A);

% Orde A, b, dan x0 harus cocok if (size(b,1) ~= M)

error('Orde matriks A dan vektor b tidak cocok.');

elseif (size(b,2) ~= 1)

error('b harus berbentuk vektor kolom.');

elseif (size(x0,1) ~= N || size(x0,2) ~= 1) error('Orde x0 tidak cocok dengan masalah.') end

x = zeros(N,1);

% Penentuan kriteria pemberhentian

disp('Apakah kriteria pemberhentian akan ditentukan sendiri?');

disp('Pilih : 1 atau 0');

disp('1 : Ya');

disp('0 : Tidak');

jawab = input('Jawab : ');

if (isempty(jawab))

error('Tidak ada jawaban.');

(9)

Lampiran 7 (lanjutan)

elseif (jawab ~= 1 && jawab ~= 0)

error('Jawaban harus berupa bilangan 1 atau 0.');

elseif (jawab == 0)

disp('Kriteria pemberhentian:')

disp('Banyaknya iterasi = 100 atau batas toleransi = 10^(-6).');

maksiter = 100; % Nilai default tol = 10^(-6); % Nilai default iter = 1;

for k = 1:M

x = x0+(b(k)-A(k,:)*x0)*A(k,:)'/(norm(A(k,:))^2);

x0 = x;

end

d = norm(A*x-b);

while (iter <= maksiter && d > tol) iter = iter+1;

for i = 1:iter for k = 1:M

x = x0+(b(k)-A(k,:)*x0)*A(k,:)'/(norm(A(k,:))^2);

x0 = x;

end end

d = norm(A*x-b);

end

disp(['Pada iterasi ke-', num2str(iter)]);

disp(['diperoleh penyelesaian hampiran dengan norm sisaan sebesar ', num2str(d)]);

else

disp('Pilih kriteria pemberhentian (1, 2, atau 3)');

disp('1 : Banyaknya iterasi');

disp('2 : Batas toleransi');

disp('3 : Keduanya');

itertol = input('Pilihan : ');

if (isempty(itertol))

error('Tidak ada kriteria pemberhentian yang dipilih.');

elseif (itertol ~= 1 && itertol ~= 2 && itertol ~=3) error('Input harus berupa bilangan 1, 2 atau 3.');

elseif (itertol == 1)

disp('Masukkan banyaknya iterasi!');

disp('Banyaknya iterasi harus berupa bilangan asli.');

iter = input('Banyaknya iterasi = ');

if (isempty(iter))

error('Tidak ada input sebagai banyaknya iterasi.');

elseif (iter < 1 || (fix(iter)-iter) ~= 0)

error('Banyaknya iterasi harus berupa bilangan asli.');

else

for i = 1:iter for k = 1:M

x = x0+(b(k)-A(k,:)*x0)*A(k,:)'/(norm(A(k,:))^2);

x0 = x;

end end

d = norm(A*x-b);

disp(['Pada iterasi ke-', num2str(iter)]);

disp(['diperoleh penyelesaian hampiran dengan norm sisaan sebesar ', num2str(d)]);

end

elseif (itertol == 2)

disp('Masukkan batas toleransi!');

disp('Batas toleransi harus berupa bilangan real positif.');

tol = input('Batas toleransi = ');

if (isempty(tol))

error('Tidak ada input sebagai batas toleransi.');

elseif (tol <= 0)

error('Batas toleransi harus berupa bilangan real positif.');

else

iter = 1;

(10)

Lampiran 7 (lanjutan)

for k = 1:M

x = x0+(b(k)-A(k,:)*x0)*A(k,:)'/(norm(A(k,:))^2);

x0 = x;

end

d = norm(A*x-b);

while d > tol iter = iter+1;

for k = 1:M

x = x0+(b(k)-A(k,:)*x0)*A(k,:)'/(norm(A(k,:))^2);

x0 = x;

end

d = norm(A*x-b);

end

disp(['Pada iterasi ke-', num2str(iter)]);

disp(['diperoleh penyelesaian hampiran dengan norm sisaan sebesar ', num2str(d)]);

end else

disp('Pertama, masukkan banyaknya iterasi!');

disp('Banyaknya iterasi harus berupa bilangan asli.');

iter = input('Banyaknya iterasi = ');

if (isempty(iter))

error('Tidak ada input sebagai banyaknya iterasi.');

elseif (iter < 1 || (fix(iter)-iter) ~= 0)

error('Banyaknya iterasi harus berupa bilangan asli.');

else

maksiter = iter;

end

disp('Kedua, masukkan batas toleransi!');

disp('Batas toleransi harus berupa bilangan real positif.');

tol = input('Batas toleransi = ');

if (isempty(tol))

error('Tidak ada input sebagai batas toleransi.');

elseif (tol <= 0)

error('Batas toleransi harus berupa bilangan real positif.');

end iter = 1;

for k = 1:M

x = x0+(b(k)-A(k,:)*x0)*A(k,:)'/(norm(A(k,:))^2);

x0 = x;

end

d = norm(A*x-b);

while (iter <= maksiter && d > tol) iter = iter+1;

for i = 1:iter for k = 1:M

x = x0+(b(k)-A(k,:)*x0)*A(k,:)'/(norm(A(k,:))^2);

x0 = x;

end end

d = norm(A*x-b);

end

disp(['Pada iterasi ke-', num2str(iter)]);

disp(['diperoleh penyelesaian hampiran dengan norm sisaan sebesar ', num2str(d)]);

end end end

(11)

Lampiran 8 Program MATLAB untuk membangkitkan matriks koefisien dan vektor konstanta dari SPL ke-1

Fungsi blur

function [A,b] = blur(N,band,sigma)

%---

% Masalah uji BLUR: Memburamkan gambar digital.

%

% Matriks A adalah matriks simetrik berukuran (N^2)x(N^2), matriks Toeplitz blok

% ganda yang memodelkan pemburaman suatu gambar berukuran NxN dengan suatu fungsi

% pemancaran titik Gauss. Ini disimpan dalam format matriks sparse.

%

% Pada setiap blok Toeplitz, hanya elemen-elemen matriks dalam suatu jarak band-1

% dari diagonal yang merupakan taknol (band adalah setengah bandwidth). Jika band

% tidak dirinci, digunakan band = 3.

%

% Parameter sigma mengontrol lebar dari fungsi pemancaran titik Gauss dan

% akibatnya jumlah pemulusan. Jika sigma tidak dirinci, digunakan sigma = 0.7.

%

% Vektor x adalah suatu versi kolom yang ditumpuk dari suatu gambar uji sederhana,

% sedangkan vektor b adalah suatu versi kolom yang ditumpuk dari gambar yang

% diburamkan, yaitu b = A*x.

%---

% Inisialisasi if (nargin < 2) band = 3;

end

band = min(band,N);

if (nargin < 3) sigma = 0.7;

end

% Mengonstruksi matriks koefisien A

z = [exp(-([0:band-1].^2)/(2*sigma^2)),zeros(1,N-band)];

A = toeplitz(z);

A = sparse(A);

A = (1/(2*pi*sigma^2))*kron(A,A);

% Mengonstruksi vektor konstanta b x = zeros(N,N);

N2 = round(N/2);

N3 = round(N/3);

N6 = round(N/6);

N12 = round(N/12);

T = zeros(N6,N3);

for i = 1:N6 for j = 1:N3

if ((i/N6)^2 + (j/N3)^2 < 1) T(i,j) = 1;

end end end

T = [fliplr(T),T];

T = [flipud(T);T];

x(2+[1:2*N6],N3-1+[1:2*N3]) = T;

T = zeros(N6,N3);

for i = 1:N6 for j = 1:N3

if ((i/N6)^2 + (j/N3)^2 < 0.6) T(i,j) = 1;

end end end

T = [fliplr(T),T];

T = [flipud(T);T];

x(N6+[1:2*N6],N3-1+[1:2*N3]) = x(N6+[1:2*N6],N3-1+[1:2*N3]) + 2*T;

(12)

Lampiran 8 (lanjutan)

f = find(x==3);

x(f) = 2*ones(size(f));

T = triu(ones(N3,N3));

[mT,nT] = size(T);

x(N3+N12+[1:nT],1+[1:mT]) = 3*T;

T = zeros(2*N6+1,2*N6+1);

[mT,nT] = size(T);

T(N6+1,1:nT) = ones(1,nT);

T(1:mT,N6+1) = ones(mT,1);

x(N2+N12+[1:mT],N2+[1:nT]) = 4*T;

x = reshape(x(1:N,1:N),N^2,1);

b = A*x;

end

(13)

Lampiran 9 Program MATLAB untuk membangkitkan matriks koefisien dan vektor konstanta dari SPL ke-2

Fungsi phillips

function [A,b] = phillips(n)

%---

% Diskretisasi persamaan Fredholm jenis pertama ditemukan oleh D. L. Phillips.

% Didefinisikan fungsi

% phi(x) = | 1 + cos(x*pi/3) , |x| < 3 .

% | 0 , |x| >= 3

% maka kernel K, penyelesaian f, dan ruas kanan g diberikan oleh:

% K(s,t) = phi(s-t) ,

% f(t) = phi(t) ,

% g(s) = (6-|s|)*(1+.5*cos(s*pi/3)) + 9/(2*pi)*sin(|s|*pi/3) .

% Interval integrasi adalah [-6,6].

%

% Didiskretisasi dengan metode Galerkin.

%

% Input : n harus kelipatan 4.

%---

% Cek input if (rem(n,4)~=0)

error('n harus kelipatan 4');

end

% Mengonstruksi matriks koefisien A h = 12/n;

n4 = n/4;

r1 = zeros(1,n);

c = cos((-1:n4)*4*pi/n);

r1(1:n4) = h + 9/(h*pi^2)*(2*c(2:n4+1) - c(1:n4) - c(3:n4+2));

r1(n4+1) = h/2 + 9/(h*pi^2)*(cos(4*pi/n)-1);

A = toeplitz(r1);

% Mengonstruksi vektor konstanta b b = zeros(n,1); c = pi/3;

for i = n/2+1:n

t1 = -6 + i*h; t2 = t1 - h;

b(i) = t1*(6-abs(t1)/2) ...

+ ((3-abs(t1)/2)*sin(c*t1) - 2/c*(cos(c*t1) - 1))/c ...

- t2*(6-abs(t2)/2) ...

- ((3-abs(t2)/2)*sin(c*t2) - 2/c*(cos(c*t2) - 1))/c;

b(n-i+1) = b(i);

end

b = b/sqrt(h);

end

(14)

Lampiran 10 Program MATLAB untuk membangkitkan matriks koefisien dan vektor konstanta dari SPL ke-3

Fungsi tomo

function [A,b,x] = tomo(N,f)

%---

% TOMO: Membuat suatu masalah uji tomografi 2D

%

% Fungsi ini membuat suatu masalah uji tomografi dua dimensi sederhana. Suatu

% domain 2D [0,N]x[0,N] dibagi ke dalam N^2 sel dengan ukuran satuan dan sejumlah

% round(f*N^2) sinar pada arah acak yang menembus domain ini. Nilai default

% adalah f=1.

%

% Setiap sel bersesuaian dengan suatu nilai dalam vektor x dan setiap sinar

% bersesuaian dengan elemen dalam vektor konstanta b, yaitu

% sum_{cells in ray} x_{cell j} * length_{cell j}

% dengan length_{cell j} adalah panjang sinar pada sel ke-j.

%

% Matriks A adalah sparse, dan setiap baris (bersesuaian dengan suatu sinar)

% memegang nilai length_{cell j} pada posisi ke-j. Oleh karena itu:

% b = A*x .

% Apabila suatu penyelesaian x_reg telah dihitung, ini dapat divisualisasikan

% dengan mengartikan imagesc(reshape(x_reg,N,N)).

%

% Penyelesaian eksak, reshape(x,N,N), identik dengan gambar eksak pada fungsi

% blur.

%---

% Nilai default if nargin==1 f = 1;

end

% Mengonstruksi matriks koefisien A

A = spalloc(N,N,2*N);

x = (0:N)';

y = x;

for i = 1:round(f*N^2)

x0 = N*rand;

x1 = N*rand;

y0 = N*rand;

y1 = N*rand;

a = (y1-y0)/(x1-x0);

b = y0 - a*x0;

yp = a*x + b;

xp = (y - b)/a;

xp = [x;xp];

yp = [yp;y];

[xp,I] = sort(xp);

yp = yp(I);

I = find(xp >= 0 & xp <= N & yp >= 0 & yp <= N);

xp = xp(I);

yp = yp(I);

I = find(diff(xp)==0);

xp(I) = [];

yp(I) = [];

d = sqrt( diff(xp).^2 + diff(yp).^2 );

xm = 0.5*(xp(1:end-1)+xp(2:end));

ym = 0.5*(yp(1:end-1)+yp(2:end));

j = ( floor(xm) )*N + floor(ym) + 1;

A(i,j) = d';

end

(15)

Lampiran 10 (lanjutan)

x = zeros(N,N);

N2 = round(N/2);

N3= round(N/3);

N6 = round(N/6);

N12 = round(N/12);

T = zeros(N6,N3);

for i = 1:N6 for j = 1:N3

if ((i/N6)^2 + (j/N3)^2 < 1) T(i,j) = 1;

end end end

T = [fliplr(T),T];

T = [flipud(T);T];

x(2+(1:2*N6),N3-1+(1:2*N3)) = T;

T = zeros(N6,N3);

for i = 1:N6 for j = 1:N3

if ((i/N6)^2 + (j/N3)^2 < 0.6) T(i,j) = 1;

end end end

T = [fliplr(T),T];

T = [flipud(T);T];

x(N6+(1:2*N6),N3-1+(1:2*N3)) = x(N6+(1:2*N6),N3-1+(1:2*N3)) + 2*T;

f = find(x==3);

x(f) = 2*ones(size(f));

T = triu(ones(N3,N3));

[mT,nT] = size(T);

x(N3+N12+(1:nT),1+(1:mT)) = 3*T;

T = zeros(2*N6+1,2*N6+1);

[mT,nT] = size(T);

T(N6+1,1:nT) = ones(1,nT);

T(1:mT,N6+1) = ones(mT,1);

x(N2+N12+(1:mT),N2+(1:nT)) = 4*T;

x = reshape(x(1:N,1:N),N^2,1);

% Mengonstruksi vektor konstanta b b = A*x;

end

(16)

Lampiran 11 Norm sisaan dari penyelesaian hampiran atas ketiga SPL yang digunakan yang diperoleh pada iterasi ke-0 sampai iterasi ke-30

Iterasi ke-

Norm sisaan dari penyelesaian hampiran

SPL ke-1 SPL ke-2 SPL ke-3

0 15.4392 15.2906 207.3483

1 10.6021 14.9492 31.1586

2 7.2495 13.0457 14.0032

3 4.7998 3.9800 8.8950

4 3.0725 1.9818 6.6116

5 2.0196 0.9924 5.5046

6 1.3670 0.5148 4.8414

7 0.9012 0.2770 4.3556

8 0.5614 0.1597 3.9637

9 0.3748 0.1062 3.6390

10 0.2860 0.0859 3.3698

11 0.2406 0.0798 3.1479

12 0.2104 0.0782 2.9659

13 0.1871 0.0775 2.8169

14 0.1685 0.0766 2.6945

15 0.1538 0.0754 2.5934

16 0.1420 0.0737 2.5089

17 0.1322 0.0717 2.4373

18 0.1237 0.0695 2.3756

19 0.1163 0.0671 2.3217

20 0.1097 0.0646 2.2739

21 0.1039 0.0621 2.2308

22 0.0986 0.0595 2.1917

23 0.0938 0.0570 2.1559

24 0.0894 0.0545 2.1228

25 0.0853 0.0520 2.0923

26 0.0816 0.0497 2.0639

27 0.0782 0.0474 2.0375

28 0.0750 0.0452 2.0129

29 0.0720 0.0430 1.9901

30 0.0693 0.0410 1.9688

Referensi

Dokumen terkait

Dari hasil analisis, validasi materi, validasi media, respon siswa, dan nilai rata-rata siswa dapat disimpulkan media pembelajaran bercirikan game dengan Macromedia Flash 8 pada

Penelitian ini bertujuan untuk mengembangkan instrumen penilaian computerized two tier multiple choice (CTTMC) yang memiliki validitas sesuai kriteria soal yang

Dalam Tugas Akhir ini penelitian dilakukan dengan variasi beban kombinasi resistif, induktif dan kapasitif yang seimbang sekaligus tidak seimbang dengan beban yang

Ketika pembebanan jumlah laju udara dan bahan bakar yang dibutuhkan selalu berubah terhadap perubahan beban untuk menjaga tekanan dan level oksigen pada gas buang

Sejak pemberlakuan otonomi daerah melalui Undang-Undang Nomor 32 Tahun 2004 tentang Pemerintahan Daerah, Pasal 18 pemerintah daerah diberikan kewenangan untuk

Tujuan Penelitian adalah untuk menganalisis bagaimana produktifitas kopi di daerah penelitian, untuk menganalisis faktor-faktor produksi apakah yang akan mempengaruhi produksi

Masa Pajak Pertambahan Nilai 1111 di Kantor Pelayanan Pajak Pratama Medan Belawan. Metode

Dari hasil data tabel 2, didapatkan hasil untuk ruang pendaftaran yaitu rata-rata skor adalah 2,77, ini berarti responden menilai cukup untuk ruang pendaftaran.. Berdasarkan pada