Kurva Fitting

Kurva Fitting - EVALUASI DAN ANALISIS DATA - Kata Pengantar

===

9.2 Kurva Fitting

Kedua program di atas, gnuplot dan xmgr , menyediakan fitting pada fungsi sembarang. Disarankan agar kita menggunakan gnuplot, karena ia menyediakna fleksibilitas yang lebih tinggi untuk maksud tersebut dan memberikan kita banyak informasi yang berguna untuk mengestimasi kualitas suatu fit.

Sebagai contoh, andaikan kita ingin memfit suatu fungsi aljabar f (L) = e ∞ +aL b ke set data file gs e0 L.dat seperti di atas. Pertama, kita harus mendefinisikan fungsi dan memberikan beberapa estimasi kasar (nir-nol) untuk parameter-parameter yang tidak diketahui, perlu dicatat operator

9.2 Kurva Fitting 83

Gbr. 9.2. Progam xmgr setelah file data di-load, dan tombol AS ditekan untuk mennyesuaikan jangkauan gambar secara otomatis.

exponensial ditandai dengan ** dan argumen standard suatu definisi fungsi adalah x, tapi hal ini tergantung pilihan kita:

gnuplot> f(x)=e+a*x**b gnuplot> e=-1.8 gnuplot> a=1 gnuplot> b=-1 Fit aktual dilakukan lewat perintah fit. Program menggunakan algoritma nonlinear least-squares

Marquardt-Levenberg [3], yang memunginkan fit pada hampir seluruh fungsi sembarang. Untuk menjalankan perintah, kita harus menetapkan fungsi fit, set daya dan parameter-parameter yang akan dicari. Sebagi contoh kita ketikkan:

gnuplot> fit f(x) "gs_e0_L.dat" via e,a,b

84 9 EVALUASI DAN ANALISIS DATA Kemudian gnuplot menuliskan informasi log ke keluaran yang mendeskripsikan proses fitting.

Setelah fit diperoleh ia akan mencetak pada layar, dari contoh diberikan: After 17 iterations the fit converged.

final sum of squares of residuals : 7.55104e-06 rel. change during last iteration : -2.42172e-09

degrees of freedom (ndf) : 5

rms of residuals (stdfit) =sqrt(WSSR/ndf)

variance of residuals (reduced chisquare) = WSSR/ndf : 1.51021e-06

Final set of parameters Asymptotic Standard Error =======================

e = -1.78786

b = -2.80103

+/- 0.08265

correlation matrix of the fit parameters:

e 1.000 a

0.708 1.000 b

-0.766 -0.991 1.000

9.2 Kurva Fitting 85 Baris yang paling menarik adalah baris-baris yang mencetak hasil-hasil untuk parameter-parameter

bersamaan standard error . Di samping itu, kualitas fit dapat diestimasi melalui informasi yang disediakan pada tiga baris yang diawali dengan “degree of freedom”. Pertama dari baris-baris ini menetapkan jumlah derajat kebebasan, yang hanya merupakan jumlah titik data tanpa jumlah parameter dalam fit. Deviasi fungsi fit f (x) dari titik data (x i ,y i ±σ i ) (i = 1, . . . , N ) dinyatkan

P N dengan χ h 2 = y i −f (x i ) i 2

, yang ditandai dengan WSSR pada keluarana gnuplot. Ukuran kualitas fit adalah probabilitas Q bahwa nilai χ 2 lebih buruk ketimbang fit saat ini, asumsikan bahwa titik data y i terdistribusi Gaussian dengan mean f (x i ) dan varian satu [3]. Semakin besar nilai Q, semakin baik kualitas dari fit. Untuk menghitung Q kita dapat menggunakan program kecil Q.c

i=1

86 9 EVALUASI DAN ANALISIS DATA #include <stdio.h>

#include "nr.h" int main(int argc, char **argv) {

float ndf, chi2_per_df; sscanf(argv[1], "%f", &ndf); sscanf(argv[2], "%f", &chi2_per_df); printf("Q=%e\n", gammq(0.5*ndf, 0.5*ndf*chi2_per_df)); return(0);

} yang menggunakan fungsi gammaq dari Numerical Recipes [3]. Program dipanggil dalam bentuk Q

<ndf> <WSSR/ndf> , yang diambil dari keluaran gnuplot Untuk mengamati hasil fit bersamaan dengan hasil fit, ketik saja

gnuplot> plot "gs_e0_L.dat" w e, f(x) Hasilnya tampak pada Gbr. 9.3

Perlu dicatat bahawa konvergensi tergantung pada pemilihan awal parameter-parameter. Al- goritma akan masuk ke suatu minimum lokal apabila parameter-parameter awal yang diberikan terlalu jauh dari nilai-nilai terbaiknya. Cobalah nilai-nilai awal e=1, a=-3 dan b=1! Selain itu, tidak semua parameter fungsi harus menjadi subyek pada fitting. Sebagai alternatif, kita dapat menset beberapa parameter nilai-nilai yang tetap dan menghilangkanya dari list pada akhir perintah fit ˙ Kita sebaiknya juga mengetahui bahwa pada contoh di atas seluruh titik-titik data dimasukkan ke hasil dengan bobot yang sama. Kita dapat memberitahukan algoritma untuk menambahkan error bars dengan mengetikkan fit f(x) "gs e0 L.dat" using 1:2:3 via a,b,c. Selanjutnya, titik data yang dengan error bars lebih besar memiliki pengaruh yang kecil pada hasil. Lebih jauh bagaimana menggunakan perintah fit dapat diperoleh dengan mengetikkan help fit.

9.3 Skala Ukuran Terbatas (Finite-size Scaling) 87

Gbr. 9.3. Window Gnuplot yang menampilkan hasil fit bersamaan dengan data masukannya.