Fisika Komputasi
Fisika Komputasi
Curve Fitting
Digunakan untuk memperhalus suatu grafik dan dapat digunakan juga untuk menentukan
suatu nilai pada suatu titik. Andaikan kita memiliki data X dan Y sebagai berikut :
Maka kita memperoleh suatu grafik X – Y yang terpatah-patah. Jika kita ingin memperhalus grafik
tersebut, kita perlu mencari suatu persamaan garis yang sesuai dengan grafik tersebut. Untuk
menentukan persamaan garis tersebut dapat dilakukan dengan menggunakan perintah
‘POLYFIT (x,y,n)‘ , n menunjukkan derajat / orde dari persamaan tersebut. Jika n=1 maka kita
mendapatkan koefisien dari suatu persamaan regresi linier (y = a + bx). Jika kita pilih n=2, kita
akan mendapatkan koefisien2 persamaan polynomial kuadratik (y = ax2 + bx + c).
>> n = 2; p = polyfit(x,y,n)
Selanjutnya rentang nilai x dari 0 – 1 kita bagi menjadi 100 bagian yang sama, kemudian kita
tentukan nilai y pada setiap titik x yang baru dengan menggunakan persamaan polynomial yang
sudah kita peroleh. Supaya tidak berbenturan dengan nilai x maupun y yang lama, notasi kita ganti
dengan xi dan yi. Nilai yi dapat diperoleh dengan menggunakan perintah ‘POLYVAL(P,XI)’
>> xi = linspace(0,1,100);
>> yi = polyval(p,xi);
>> figure,plot(x,y,’-o’,xi,yi,’ :’)
Bandingkan hasilnya dengan orde 10
>> pp = polyfit(x,y,10) ;
>> z = polyval(pp,xi);
>> figure, plot(x,y,’o’,xi,z,’:’ )
Interpolasi juga dapat digunakan untuk data/grafik yang tidak linier, misalkan data semilog.
Anggaplah kita memiliki data frekuensi bunyi dalam Herzt dan tingkat tekanan bunyi dalam dB
(dimana kedua data ini berhubungan secara logaritmis) sebagai berikut:
% Sound Pressure Level Data M-File sound.m
>> sound
>> s = interp1(Hz,spl,2.5e3)
>> s = interp1(Hz,spl,2.5e3,’linear’)
>> s = interp1(Hz,spl,2.5e3,’spline’)
>> s = interp1(Hz,spl,2.5e3,’cubic’)
>> s = interp1(Hz,spl,2.5e3,’nearest’)
Two-Dimensional Interpolation
Sama halnya dengan interpolasi satu dimensi, pada interpolasi 2-D kita juga perlu
memperhalus data yang kita miliki. Selanjutnya, digunakan perintah <<interp2>>. Andaikan kita
memiliki data z sebagai fungsi x dan y , z = f(x,y) misalnya pada pengukuran dengan sonar tentang
kedalaman dasar laut, sebagai berikut :
>> ocean
Untuk menentukan kedalaman laut pada suatu titik xi,yi dapat dilakukan seperti pada interpolasi 1D.
Misalkan kita ingin mengetahui kedalaman laut pada posisi x = 2.2 dan pada posisi y = 3.3
>> zi = interp2(x,y,z,2.2,3.3)
>> zi = interp2(x,y,z,2.2,3.3,’linear’)
>> zi = interp2(x,y,z,2.2,3.3,’cubic’)
>> zi = interp2(x,y,z,2.2,3.3,’spline’)
>> zi = interp2(x,y,z,2.2,3.3,’nearest’)
Untuk memperhalus grafik, maka rentang X dan rentang Y kita bagi menjadi bagian-bagian yang
lebih kecil, kemudian menentukan nilai z yang berkaitan dengan nilai x dan y yang baru.
Bandingkan hasilnya jika pada saat mesh(x,y,z) diganti dengan mesh(x,y,-z), dan seterusnya
digunakan nilai negative ( - ) pada z .