Skip to content

Tips Operasi Aritmatika dengan Matriks ukuran besar di Matlab

by persada on June 14th, 2011

Berikut ini tips untuk menyelesaikan operasi aritmatik jika matrik yg dikenai operasi sangat besar (memakan banyak memori).
Agar tidak membengkak, maka operasi dapat dilakukan dengan cara dipecah (di-partisi), sehingga operasi tidak dilakukan sekaligus, tapi dalam beberapa step, dengan operasi yg sama. Namun, tips ini hanya berlaku untuk operasi antar-elemen matrik, bukan operasi aritmatika matrik!
Langkah algoritmanya :

  1. Tentukan banyak elemen/data (m)
  2. Tentukan jumlah partisi (np)
  3. Hitung jumlah elemen yg dikenai operasi tiap partisi (k)
  4. Selama 1<=i<=n-1, lakukan 5-6
  5. Tentukan nomor data yg dikenai operasi mulai dari k*(i-1)+1 sampai k*(i)
  6. Lakukan operasi aritmatika berdasarkan nomor data yg telah ditentukan.

Tips ini dapat digunakan untuk mengatasi masalah out of memory ketika melakukan perhitungan, misal operasi penjumlahan dua buah matriks ukuran besar, C=A+B. Namun, dengan menggunakan tips ini, komputasi yg dibutuhkan jauh lebih lambat. Lebih baik lambat daripada error. :D

Contoh aplikasi algoritma tersebut di matlab, disajikan berikut (contoh ini operasi penjumlahan, tapi bisa diganti dengan yang lain):


clear
clc

n = 5000;
% matrik yang dikenai operasi aritmatika
A = rand(n);
B = rand(n);

% tempat hasil penjumlahan
C = zeros(n);

m=n*n; % jumlah data (n^2)
np = 20; % jumlah pecahan/partisi matrik
k = ceil(m / np); % mencari jumlah data dalam tiap partisi
 % dibulatkan keatas
for i=1:np-1
 idx = k * (i-1)+1 : k*i; % index tiap partisi (no data)
 C(idx) = A(idx)+B(idx); % operasi aritmatika - elemen A dgn elemen B
end

% penjumlahan partisi terakhir
idx = k*(np-1)+1 : m; % tidak sampai k*np, karena bisa out of index.
C(idx) = A(idx)+B(idx);

Semoga bermanfaat (drinking)

From → Matlab, Tutorials

No comments yet

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS