Tuesday, January 23, 2018

Efisiensi Iterasi Fungsi dengan Curve Fitting

Bismillah. Saya perlu membuat plot grafik dari suatu fungsi, f(t). Fungsinya sangat sederhana namun melibatkan matriks dengan ordo puluhan ribu. Sehingga, sekali iterasi bisa menanti 1500 detik. padahal saya perlu membuat plot kurva dalam 20 detik. Anggaplah iterasi dilakukan per detik, maka perlu 30000 detik, bisa meniren aku menanti.

Jadinya, saya buat iterasi tiap dua detik, jadi cuman 10 iterasi = 15000 detik. Ya... lumayan 50%. Namun kelemahannya, kurvanya nampak kaku, patah-patah, tidak smooth. Prof saya memberi intruksi agar coba menggunakan curve fitting atau smoothing di MATLAB. Saya googling, ternyata MATLAB menyediakannya, fungsi fit namanya.


z=fit(t,f,'splineinterp');
plot(z,'k',t,f,':');

Kodenya sederhana sekali dan perbandingan hasilnya, saya tampilkan pada gambar di atas. t adalah waktu, f adalah nilai fungsi tanpa fitting, dan z adalah hasil curve fitting, 'splineinterp' artinya saya menggunakan cubic interpolation. Alhamdulillah.

Saya menggunakan MATLAB 2008, very old. Saya kira versi 2017 jauh lebih magnificent.

Referensi

2 comments: