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