Komputasi perkalian matriks dan vektor-kolom

2.5.6 Komputasi perkalian matriks dan vektor-kolom

Mari kita mulai lagi dari source code paling dasar dari operasi perkalian antara matriks dan vektor-kolom sesuai dengan contoh di atas

1 clear all 2 clc

4 A = [3 8 5; 6 4 7]; % inisialisasi matriks A 5 x = [2; 3; 4];

% inisialisasi vektor x

7 % ---proses perkalian matriks dan vektor---- 8 y(1,1)=A(1,1)*x(1,1)+A(1,2)*x(2,1)+A(1,3)*x(3,1); 9 y(2,1)=A(2,1)*x(1,1)+A(2,2)*x(2,1)+A(2,3)*x(3,1);

11 % ---menampilkan matriks A, B dan E---- 12 A 13 x 14 y

Sejenak, mari kita amati dengan cermat statemen dari baris ke-8 dan ke-9 sambil dikaitkan dengan bentuk umum penulisan indeks pada perkalian antara matriks dan vektor-kolom yaitu

(2.17) Dari sana ada 3 point yang perlu dicatat:

y i1 =a ij .x j1 +a ij .x j1 +a ij .x j1

• elemen y dan elemen x sama-sama memiliki indeks i yang berpasangan dengan angka 1. • pada baris statemen ke-8 dan ke-9 ada tiga kali operasi perkalian dan dua kali operasi

penjumlahan yang semuanya melibatkan indeks i dan indeks j. Namun indeks j sela- lu berubah pada masing-masing perkalian. Jadi indeks j lebih cepat berubah dibanding indeks i.

• elemen a memiliki indeks i dan indeks j dengan indeks j lebih cepat berubah dibanding indeks i.

Kita mulai dengan memecah operasi pada statemen baris ke-8 yang bertujuan menghitung nilai y(1, 1)

1 clear all 2 clc

2.5. OPERASI MATEMATIKA

4 A = [3 8 5; 6 4 7]; % inisialisasi matriks A 5 x = [2; 3; 4];

% inisialisasi vektor x

7 % ---proses perkalian matriks dan vektor---- 8 y(1,1)=A(1,1)*x(1,1); 9 y(1,1)=y(1,1)+A(1,2)*x(2,1); 10 y(1,1)=y(1,1)+A(1,3)*x(3,1);

12 y(2,1)=A(2,1)*x(1,1)+A(2,2)*x(2,1)+A(2,3)*x(3,1);

14 % ---menampilkan matriks A, B dan E---- 15 A 16 x 17 y

Agar baris ke-8 memiliki pola yang sama dengan baris ke-9 dan ke-10, upaya yang dilakukan adalah

1 clear all 2 clc

4 A = [3 8 5; 6 4 7]; % inisialisasi matriks A 5 x = [2; 3; 4];

% inisialisasi vektor x

7 % ---proses perkalian matriks dan vektor---- 8 y(1,1)=0; 9 y(1,1)=y(1,1)+A(1,1)*x(1,1); 10 y(1,1)=y(1,1)+A(1,2)*x(2,1); 11 y(1,1)=y(1,1)+A(1,3)*x(3,1);

13 y(2,1)=A(2,1)*x(1,1)+A(2,2)*x(2,1)+A(2,3)*x(3,1);

15 % ---menampilkan matriks A, B dan E---- 16 A 17 x 18 y

Dari sini kita bisa munculkan indeks j

1 clear all 2 clc

4 A = [3 8 5; 6 4 7]; % inisialisasi matriks A 5 x = [2; 3; 4];

% inisialisasi vektor x

7 % ---proses perkalian matriks dan vektor---- 8 y(1,1)=0; 9 for j=1:3

10 y(1,1)=y(1,1)+A(1,j)*x(j,1); 11 end

13 y(2,1)=A(2,1)*x(1,1)+A(2,2)*x(2,1)+A(2,3)*x(3,1);

15 % ---menampilkan matriks A, B dan E---- 16 A 17 x 18 y

38 BAB 2. MATRIKS DAN KOMPUTASI Dengan cara yang sama, baris ke-13 dimodifikasi menjadi

1 clear all 2 clc

4 A = [3 8 5; 6 4 7]; % inisialisasi matriks A 5 x = [2; 3; 4];

% inisialisasi vektor x

7 % ---proses perkalian matriks dan vektor---- 8 y(1,1)=0; 9 for j=1:3

10 y(1,1)=y(1,1)+A(1,j)*x(j,1); 11 end

13 y(2,1)=0; 14 for j=1:3

15 y(2,1)=y(2,1)+A(2,j)*x(j,1); 16 end

18 % ---menampilkan matriks A, B dan E---- 19 A 20 x 21 y

Inisialisasi vektor y dengan angka nol dapat dilakukan diawal proses perkalian, sekaligus me- munculkan indeks i

1 clear all 2 clc

4 A = [3 8 5; 6 4 7]; % inisialisasi matriks A 5 x = [2; 3; 4];

% inisialisasi vektor x

7 % ---proses perkalian matriks dan vektor---- 8 for i=1:2

9 y(i,1)=0; 10 end

12 for j=1:3 13 y(1,1)=y(1,1)+A(1,j)*x(j,1); 14 end

16 for j=1:3 17 y(2,1)=y(2,1)+A(2,j)*x(j,1); 18 end

20 % ---menampilkan matriks A, B dan E---- 21 A 22 x 23 y

Kemudian, untuk menyamakan pola statemen baris ke-13 dan ke-17, indeks i kembali dimun- culkan

1 clear all 2 clc

2.6. PENUTUP

4 A = [3 8 5; 6 4 7]; % inisialisasi matriks A 5 x = [2; 3; 4];

% inisialisasi vektor x

7 % ---proses perkalian matriks dan vektor---- 8 for i=1:2

9 y(i,1)=0; 10 end

12 i=1; 13 for j=1:3

14 y(i,1)=y(i,1)+A(i,j)*x(j,1); 15 end

17 i=2; 18 for j=1:3

19 y(i,1)=y(i,1)+A(i,j)*x(j,1); 20 end

22 % ---menampilkan matriks A, B dan E---- 23 A 24 x 25 y

Akhir dari proses optimasi adalah sebagai berikut

1 clear all 2 clc

4 A = [3 8 5; 6 4 7]; % inisialisasi matriks A 5 x = [2; 3; 4];

% inisialisasi vektor x

7 % ---proses perkalian matriks dan vektor---- 8 for i=1:2

9 y(i,1)=0; 10 end

12 for i=1:2 13 for j=1:3 14 y(i,1)=y(i,1)+A(i,j)*x(j,1); 15 end 16 end

18 % ---menampilkan matriks A, B dan E---- 19 A 20 x 21 y