P05 | Visualisasi Data dengan gnuplot Modul Praktikum FI2283 Pemrograman dan Simulasi Fisika Versi 2013.09.29
Catatan. Dalam praktikum ini akan dipelajari dan dipraktekkan bagaimana membuat visualisasi data dengan memanfaatkan aplikasi gnuplot. Visualisasi yang dimaksud dalam hal ini masih dibatasi dalam bentuk grafik y terhadap x, di mana variabel x dan y dapat berarti data apa saja. 1 Grafik y terhadap x
49
2 Grafik dari dua berkas berbeda
51
3 Grafik dari berkas dengan banyak kolom data
53
4 Grafik sebagian data
55
5 Grafik sebagian data (lagi)
60
6 Grafik dari fungsi
61
7 Grafik dari fungsi dan berkas data
64
8 Fitting data dengan suatu fungsi
67
9 Fitting data dengan suatu fungsi (lagi)
71
10 Animasi sederhana dengan gnuplot dan convert
71
1
Grafik y terhadap x
Buat berkas suatu berkas teks, dengan penyunting teks yang Anda kuasai, yang isinya adalah sebagai berikut ini 49
#x 0 1 2 3 4 5 6 7 8 9 10
y 12 5 0 -3 -4 -3 0 5 12 21 32
dan simpan dengan nama data-01.txt. Kemudian buat berkas teks lain yang berisi script untuk gnuplot # # # # #
plot-01.gps Plot data and produce EPS file Sparisoma Viridi
20130929.0921 Execute: gnuplot plot-01.gps
# Set terminal to eps set term post eps color enhanced # Set output file set output "data-01.eps" # Set input file input="data-01.txt" # Set image size set size 0.9, 1.0 # Set bottom margin -- for some distro it needs correction set bmargin 3.5 # Set x-axis set xlabel "{/Italic x} (m)" font "Times, 24" set xtics 2 font "Times, 22" set xrange [0:10] # Set y-axis set ylabel "{/Italic y} (m)" font "Times, 24" set ytics 10 font "Times, 22" 50
40
30
y (m)
20
10
0
-10
0
2
4
6
8
10
x (m)
Gambar 1: Hasil eksekusi script plot-01.gps yang dipanggil dengan gnuplot. set yrange [-10:40] # Set grid set grid xtics ytics # Plot data plot input u 1:2 title "" pt 4 ps 2.5 dan simpan dengan nama plot-01.gps. Tugas 1. Jalankan gnuplot untuk mengeksekusi berkas teks plot-01.gps dengan cara gnuplot plot-01.gps sehingga menghasilkan berkas gambar data-01.eps sebagaimana diberikan dalam Gambar 1. Modifikasi script gnuplot sebelumnya sehingga dapat menghasilkan Gambar 2. Simpan hasil modifikasi script tersebut dengan nama plot-01a.gps. Jelaskan perbedaan hasil keluaran kedua script tersebut dalam berkas laporan.txt.
2
Grafik dari dua berkas berbeda
Buat berkas suatu berkas teks, dengan penyunting teks yang Anda kuasai, yang isinya adalah sebagai berikut ini #x
y 51
40
30
y (m)
20
10
0
-10
0
2
4
6
8
10
x (m)
Gambar 2: Hasil eksekusi script plot-01a.gps yang dipanggil dengan gnuplot. 0 1 2 3 4 5 6 7 8 9 10
-38.4 -21 -9.6 -3 0 0.6 0 -0.6 0 3 9.6
dan simpan dengan nama data-02.txt. Kemudian buat berkas teks lain yang berisi script untuk gnuplot # # # # #
plot-02.gps Plot data and produce EPS file Sparisoma Viridi 20130929.1011 Execute: gnuplot plot-02.gps
# Set terminal to eps set term post eps color enhanced # Set output file set output "data-02.eps" 52
# Set input file input1="data-01.txt" input2="data-02.txt" # Set image size set size 0.9, 1.0 # Set bottom margin -- for some distro it needs correction set bmargin 3.5 # Set x-axis set xlabel "{/Italic x} (m)" font "Times, 24" set xtics 2 font "Times, 22" set xrange [0:10] # Set y-axis set ylabel "{/Italic y} (m)" font "Times, 24" set ytics 10 font "Times, 22" set yrange [-10:40] # Set grid set grid xtics ytics # Plot data plot \ input1 u 1:2 w lp title "" pt 4 ps 2.5, \ input2 u 1:2 w lp title "" pt 6 ps 2.5 dan simpan dengan nama plot-02.gps. Tugas 2. Jalankan gnuplot untuk mengeksekusi berkas teks plot-02.gps dengan cara yang sama seperti sebelumnya sehingga menghasilkan berkas gambar data-02.eps sebagaimana diberikan dalam Gambar 3. Jelaskan apa perbedaan tujuan dari script ini dibandingkan dengan script sebelumnya, tuliskan dalam laporan.txt.
3
Grafik dari berkas dengan banyak kolom data
Buatlah berkas teks yang berisikan #x 0 1
y1 5 8
y2 y3 12 -38.4 5 -21 53
40
30
y (m)
20
10
0
-10
0
2
4
6
8
10
x (m)
Gambar 3: Hasil eksekusi script plot-02.gps yang dipanggil dengan gnuplot. 2 3 4 5 6 7 8 9 10
11 14 17 20 23 26 29 32 35
0 -3 -4 -3 0 5 12 21 32
-9.6 -3 0 0.6 0 -0.6 0 3 9.6
dan simpan dengan nama data-03.txt. Dalam gnuplot, saat memanggil perintah plot, dapat dipilih pasangan kolom data mana yang ingin ditampilkan. Untuk kolom C1 dan C2 gunakan .. u C1:C2 .. Tugas 3. Modifikasi script sebelumnya sehingga dapat diperoleh Gambar 4. Simpan script tersebut dengan nama plot-03.gps dengan hasil keluarannya adalah data-03.eps. Gunakan potongan script berikut apabila diperlukan # Plot data plot \ input u 1:2 w lp pt 4 ps 2.5 \ title "3{/Italic x} + 5", \ 54
40 3x + 5 (x -2 )(x - 6) 0.2(x-4)(x-6)(x-8)
30
y (m)
20
10
0
-10 0
2
4
6
8
10
x (m)
Gambar 4: Isi dari berkas data-03.eps, yang merupakan hasil eksekusi script plot-03.gps. input title input title
4
u 1:3 w lp pt "({/Italic x} u 1:4 w lp pt "0.2({/Italic
6 ps 2.5 \ -2 )({/Italic x} - 6)", \ 8 ps 2.5 \ x}-4)({/Italic x}-6)({/Italic x}-8)"
Grafik sebagian data
Ketik dan kompilasi program berikut ini untuk menghasilkan berkas data-04.txt /* gen-data.cpp 20130929.1126 Sparisoma Viridi Generate data for gnuplot Compile: g++ gen-data.cpp -o gen-data Execute: ./gen-data */ #include #include #include <math.h> const double PI = 3.141529; using namespace std; 55
int main(int argc, char *argv[]) { // Set ouput filename char ofn[] = "data-04.txt"; ofstream fout; fout.open(ofn); if(fout.is_open()) { // Oscillation parameters double f1 = 10.0; double f2 = 20.0; double fi1 = 0.0; double fi2 = 0.0; double A1 = 1.0; double A2 = 1.5; // Iteration parameters double t0 = 0.0; double t1 = t0 + 3.0 / f1; double t2 = t1 + 4.0 / f2; double t = 0.0; double dt = 1.0E-4; // Do interation fout << "#t\tf" << endl; while(t < t2 + dt) { // Both oscillation function double y1 = A1 * sin(2 * PI * f1 * t + fi1); double y2 = A2 * sin(2 * PI * f2 * t + fi2); // Select time condition double y = (t < t1) ? y1 : y2; // Plot the results fout << t << "\t"; fout << y << endl; // Increase the time t += dt; } // Close the file fout.close(); }
56
return 0; }
dengan mengikuti petunjuk dalam kode tersebut. Kemudian buat script untuk gnulplot berikut ini # # # # #
plot-04.gps Plot data and produce EPS file Sparisoma Viridi 20130929.1214 Execute: gnuplot plot-04.gps
# Set terminal to eps set term post eps color enhanced font "Times, 32" # Set input file input="data-04.txt" # Set image size set size 0.9, 1.0 # Set bottom margin -- for some distro it needs correction set bmargin 3.5 # Set x-axis set xlabel "{/Italic t} (s)" font "Times, 32" set xtics 0.1 font "Times, 30" set xrange [0:0.5] # Set y-axis set ylabel "{/Italic y} (m)" font "Times, 32" set ytics 0.5 font "Times, 30" set yrange [-1.5:1.5] # Set grid set grid xtics ytics # Set legend set key inside left top spacing 4 # All data # Set output file set output "data-04.eps"
57
# Plot data plot \ input u 1:2 w lp pt 4 ps 1.5 \ title "" # Every 10 data # Set output file set output "data-04a.eps" # Plot data plot \ input u 1:2 every 10 w lp pt 4 ps 1.5 \ title "" # Every 20 data # Set output file set output "data-04b.eps" # Plot data plot \ input u 1:2 every 20 w lp pt 4 ps 1.5 \ title "" # Every 20 data # Set output file set output "data-04c.eps" # Plot data plot \ input u 1:2 every 50 w lp pt 4 ps 1.5 \ title ""
dan simpan dalam berkas teks dengan nama plot-04.gps. Jalankan dengan gnuplot sehingga menghasilkan berkas-berkas data-04.eps, data-04a.eps, data-04b.eps, dan data-04c.eps, sebagaimana ditampilkan dalam Gambar 5. Tugas 4. Jelaskan dalam berkas laporan.txt apa fungsi dari opsi every dalam penggunaan perintah plot dalam gnuplot.
58
1.5
1
1
0.5
0.5
y (m)
y (m)
1.5
0 -0.5
-0.5
-1
-1
-1.5
-1.5 0
0.1
0.2
0.3
0.4
0.5
0
0.1
0.2
t (s)
t (s)
(a)
(b)
1.5
1.5
1
1
0.5
0.5
y (m)
y (m)
0
0
0.4
0.5
0.3
0.4
0.5
0
-0.5
-0.5
-1
-1
-1.5
0.3
-1.5 0
0.1
0.2
0.3
0.4
0.5
0
0.1
0.2
t (s)
t (s)
(c)
(d)
Gambar 5: Hasil eksekusi script plot-04.gps untuk berkas data-04.txt untuk setiap: (a) 1 data, (b) 10 data, (c) 20 data, dan (d) 50 data.
59
5
Grafik sebagian data (lagi)
Kadang tidak semua data ingin ditampilkan tetapi hanya 3000 data pertama dari 5000 data, yang misalnya terdapat dalam berkas data-04.txt. Atau 2000 data terakhirnya saja. Untuk memahaminya, perhatikan contoh script berikut ini # # # # #
plot-05.gps Plot data and produce EPS file Sparisoma Viridi 20130929.1538 Execute: gnuplot plot-05.gps
# Set terminal to eps set term post eps color enhanced font "Times, 32" # Set input file input="data-04.txt" # Set image size set size 0.9, 1.0 # Set bottom margin -- for some distro it needs correction set bmargin 3.5 # Set x-axis set xlabel "{/Italic t} (s)" font "Times, 32" set xtics 0.1 font "Times, 30" set xrange [0:0.5] # Set y-axis set ylabel "{/Italic y} (m)" font "Times, 32" set ytics 0.5 font "Times, 30" set yrange [-1.5:1.5] # Set grid set grid xtics ytics # Set legend set key inside left top spacing 4 # All data # Set output file set output "data-05.eps"
60
# Plot data plot \ input u 1:2 w lp pt 4 ps 1.5 \ title "" # First 3000 data of 5000 data # Set output file set output "data-05a.eps" # Plot data plot \ input u 1:2 every ::0::3000 w lp pt 4 ps 1.5 \ title "" # Last 2000 data of 5000 data # Set output file set output "data-05b.eps" # Plot data plot \ input u 1:2 every ::3000::5000 w lp pt 4 ps 1.5 \ title "" dan simpan dengan nama plot-05.gps. Jalankan sehingga dihasilkan grafikgrafik seperti dalam Gambar 6. Tugas 5. Modifikasi script plot-05.gps sehingga grafik dalam Gambar 6.b dan 6.b memberikan rentang sumbu horizontal (atau sumbu t) yang tidak kosong sebagian. Jadi untuk Gambar 6.b digambarkan 0 s ≤ t ≤ 0.3 s dan untuk Gambar 6.b digambarkan 0.3 s ≤ t ≤ 0.5 s. Simpan kedua gambar dengan nama data-05a.eps dan data-05b.eps.
6
Grafik dari fungsi
Bagaimana menggambarkan data dari suatu berkas teks menggunakan gnuplot telah dipelajari pada praktikum ini dalam tugas-tugas sebelum bagian ini. Berikutnya akan dipelajari bagaimana menggambarkan suatu fungsi. Untuk itu salin script berikut ini # plot-06.gps # Plot data and produce EPS file 61
1.5 1
y (m)
0.5
(a)
0 -0.5 -1 -1.5 0
0.1
0.2
0.3
0.4
0.5
t (s) 1.5 1
y (m)
0.5
(b)
0 -0.5 -1 -1.5 0
0.1
0.2
0.3
0.4
0.5
t (s) 1.5 1
y (m)
0.5
(c)
0 -0.5 -1 -1.5 0
0.1
0.2
0.3
0.4
0.5
t (s) Gambar 6: Hasil eksekusi script plot-05.gps untuk berkas data-04.txt untuk: (a) seluruh 5000 data, (b) 3000 data pertama, dan (c) 2000 data terakhir.
62
# Sparisoma Viridi # 20130929.1608 # Execute: gnuplot plot-06.gps # Set terminal to eps set term post eps color enhanced font "Times, 24" # Set image size set size 0.9, 1.0 # Set bottom margin -- for some distro it needs correction set bmargin 3.5 # Set x-axis set xlabel "{/Italic x} (m)" font "Times, 30" set xtics 4 font "Times, 28" set mxtics 2 set xrange [0:20] # Set y-axis set ylabel "{/Italic y} (m)" font "Times, 30" set ytics 1000 font "Times, 28" set mytics 2 set yrange [-2000:2500] set format y "%.0t {/Arial x} 10^{%T}" # Set grid set grid xtics ytics mxtics mytics # Set legend set key top spacing 4 # Set output file set output "data-06.eps" # Define a function of a pre-defined dummy variabel x f(x) = (x-1)*(x-8)*(x-15)*(x-18) # Plot data plot f(x) w l lw 6\ title "{/Italics y} = \ ({/Italic x} - 1)\ ({/Italic x} - 8)\ ({/Italic x} - 15)\ ({/Italic x} - 18)"
63
y = (x - 1)(x - 8)(x - 15)(x - 18)
2 x 103
y (m)
1 x 103 0 x 100 -1 x 103 -2 x 103
0
4
8
12
16
20
x (m) Gambar 7: Hasil eksekusi script plot-06.gps yang menggambarkan fungsi y = (x − 1)(x − 8)(x − 15)(x − 18). dengan nama plot-06.gps dan jalankan sehingga diperoleh Gambar 7. Tugas 6. Modifikasi script plot-06.gps menjadi plot-06a.gps sehingga dapat menggambarkan fungsi y = 2x2 − 5x + 1.373,
(1)
untuk rentang x ∈ [−2.5, 7.5] sebagaimana digambarkan dalam Gambar 8, dalam bentuk berkas data-06a.gps.
7
Grafik dari fungsi dan berkas data
Salin data berikut ini #x y 0 2.8 1 5.2 2 7 3 9.3 4 10.5 5 13.5 6 15.3 7 16.9 8 18.7 9 20.6 64
8 x 101
y = 2x2 - 5x + 1.373
y (m)
6 x 101 4 x 101 2 x 101 0 x 100 -2 x 101
-2
0
2
4
6
x (m) Gambar 8: Plot Persamaan (1) untuk rentang x ∈ [−2.5, 7.5]. 10 23.4 dalam berkas teks dengan nama data-07.txt dan juga script berikut ini # # # # #
plot-07.gps Plot data and produce EPS file Sparisoma Viridi 20130929.1741 Execute: gnuplot plot-07.gps
# Set terminal to eps set term post eps color enhanced font "Times, 24" # Set image size set size 0.8, 1.0 # Set bottom margin -- for some distro it needs correction set bmargin 3.5 # Set x-axis set xlabel "{/Italic x} (m)" font "Times, 30" set xtics 2 font "Times, 28" set mxtics 2 set xrange [0:10] # Set y-axis set ylabel "{/Italic y} (m)" font "Times, 30" 65
25
y = 2x + 3 Eksperimen
y (m)
20 15 10 5 0
0
2
4
6
8
10
x (m) Gambar 9: Plot Persamaan y = 2x + 3 dan data dari berkas data-07.txt menggunakan script plot-07.gps. set ytics 5 font "Times, 28" set mytics 2 set yrange [0:25] # Set grid set grid xtics ytics # Set legend set key top left spacing 4 # Set output file set output "data-07.eps" # Define a function of a pre-defined dummy variabel x f(x) = 2*x + 3 # Plot data plot \ f(x) w l lw 6 title "{/Italics y} = 2{/Italic x} + 3", \ "data-07.txt" u 1:2 w p pt 5 ps 2.5 t "Eksperimen" dalam berkas dengan nama plot-07.gps. Jalankan script sehingga diperoleh berkas data-07.eps seperti dalam Gambar 9.
66
Tugas 7. Buat data Anda sendiri dalam berkas teks data-07a.txt dan modifikasi script plot-07.gps menjadi plot-07a.gps sehingga dapat menggambarkan fungsi dan data yang Anda buat.
8
Fitting data dengan suatu fungsi
Gnuplot memiliki perintah fit yang dapat digunakan untuk fitting data terhadap suatu fungsi yang diinginkan. Untuk pembelajaran ini akan digunakan data dalam berkas teks data-07.txt sebelumnya. Salin script berikut ini # # # # #
plot-08.gps Plot data, fit witn equation and produce EPS file Sparisoma Viridi 20130929.1824 Execute: gnuplot plot-08.gps
# Set terminal to eps set term post eps color enhanced font "Times, 24" # Set image size set size 0.8, 1.0 # Set bottom margin -- for some distro it needs correction set bmargin 3.5 # Set x-axis set xlabel "{/Italic x} (m)" font "Times, 30" set xtics 2 font "Times, 28" set mxtics 2 set xrange [0:10] # Set y-axis set ylabel "{/Italic y} (m)" font "Times, 30" set ytics 5 font "Times, 28" set mytics 2 set yrange [0:25] # Set grid set grid xtics ytics # Set legend set key right bottom spacing 4 # Set input file 67
input = "data-07.txt" # Set output file set output "data-08.eps" # Define a function of a pre-defined dummy variabel x f(x) = a*x + b # Fit the function to data fit f(x) input via a, b # Title for equation eqnt = sprintf("{/Italics y} =
%f{/Italics y} + %f", a, b);
# Plot data plot \ f(x) w l lw 6 title eqnt, \ input u 1:2 w p pt 5 ps 2.5 t "Eksperimen" dalam berkas dengan nama plot-08.gps. Jalankan script sehingga diperoleh berkas data-08.eps seperti dalam Gambar 10. Proses iterasi untuk menemukan nilai a dan b dalam fungsi yang digunakan, yaitu f (x) = ax + b adalah seperti berikut ini
Iteration 0 WSSR : 652.38 delta(WSSR) : 0 lambda : 4.24264
delta(WSSR)/WSSR : 0 limit for stopping : 1e-05
initial set of free parameter values a b /
= 1 = 1
Iteration 1 WSSR : 10.2475 delta(WSSR) : -642.132 lambda : 0.424264
delta(WSSR)/WSSR : -62.6622 limit for stopping : 1e-05
resultant parameter values 68
(2)
25
y (m)
20 15 10 5 0
y = 1.997273x + 3.031818 Eksperimen
0
2
4
6
8
10
x (m) Gambar 10: Plot Persamaan (2) hasil perintah fit dan data dari berkas data-07.txt menggunakan script plot-08.gps.
a b /
= 2.1694 = 1.44425
Iteration 2 WSSR : 1.19946 delta(WSSR) : -9.04806 lambda : 0.0424264
delta(WSSR)/WSSR : -7.54342 limit for stopping : 1e-05
resultant parameter values a b /
= 2.00981 = 2.94458
Iteration 3 WSSR : 1.17555 delta(WSSR) : -0.0239185 lambda : 0.00424264
delta(WSSR)/WSSR : -0.0203467 limit for stopping : 1e-05
resultant parameter values a
= 1.99728
69
b /
= 3.03177
Iteration 4 WSSR : 1.17555 delta(WSSR) : -8.16217e-09 lambda : 0.000424264
delta(WSSR)/WSSR : -6.9433e-09 limit for stopping : 1e-05
resultant parameter values a b
= 1.99727 = 3.03182
After 4 iterations the fit converged. final sum of squares of residuals : 1.17555 rel. change during last iteration : -6.9433e-09 degrees of freedom (FIT_NDF) rms of residuals (FIT_STDFIT) = sqrt(WSSR/ndf) variance of residuals (reduced chisquare) = WSSR/ndf
: 9 : 0.361409 : 0.130616
Final set of parameters =======================
Asymptotic Standard Error ==========================
a b
+/- 0.03446 +/- 0.2039
= 1.99727 = 3.03182
(1.725%) (6.724%)
correlation matrix of the fit parameters: a a b
1.000 -0.845
b 1.000
Tugas 8. Jelaskan apa maksud bagian # Title for equation eqnt = sprintf("{/Italics y} =
%f{/Italics y} + %f", a, b);
dalam script plot-08.gps? Jelaskan jawaban Anda dalam berkas laporan.txt.
70
25 20
y (m)
15 10 5 0 -5
2
y = -0.002681x + 2.024079x + 2.991608 Eksperimen
0
2
4
6
8
10
x (m) Gambar 11: Plot Persamaan (3) hasil perintah fit dan data dari berkas data-07.txt menggunakan script plot-09.gps.
9
Fitting data dengan suatu fungsi (lagi)
Tugas 9. Modifikasi script plot-08.gps menjadi plot-09.gps sehingga dapat mengakomodasi model atau fungsi berbentuk f (x) = ax2 + bx + c
(3)
untuk data yang sama dalam berkas teks data-07.txt. Laporkan nilai-nilai a, b, dan c dalam berkas laporan.txt dan tampilkan grafiknya seperti dalam Gambar 11.
10
Animasi sederhana dengan gnuplot dan convert
Salin script berikut ini # # # # #
plot-10.gps Plot data, fit witn equation and produce EPS file Sparisoma Viridi 20130929.2003 Execute: gnuplot plot-10.gps
# Set terminal to eps 71
set term post eps color enhanced font "Times, 24" # Set image size set size 1.2, 0.8 # Set bottom margin -- for some distro it needs correction set bmargin 3.5 # Set x-axis set xlabel "{/Italic x} (m)" font "Times, 30" set xtics 0.5 font "Times, 28" set mxtics 4 set xrange [0:2] # Set y-axis set ylabel "{/Italic y} (m)" font "Times, 30" set ytics 0.1 font "Times, 28" set mytics 2 set yrange [-0.2:0.2] # Set grid set grid xtics ytics mxtics mytics # Define a wave function PI = 3.141529 A = 0.2 l = 1.0 f = 10.0 T = 1.0 / f k = 2.0 * PI / l w = 2.0 * PI / T y(x, t) = A * sin(k*x - w*t) # Plot data a = 0.0 t = a * T timestamp = sprintf("{/Italics t} = %1.2f T", a); filename = sprintf("data-10-%1.1f.eps", a); set output filename unset label set label timestamp at -0.25, -0.28 font ", 28" plot y(x, t) w l lw 8 t "" a = 0.1 t = a * T timestamp = sprintf("{/Italics t} = %1.2f T", a); 72
filename = sprintf("data-10-%1.1f.eps", a); set output filename unset label set label timestamp at -0.25, -0.28 font ", 28" plot y(x, t) w l lw 8 t "" a = 0.2 t = a * T timestamp = sprintf("{/Italics t} = %1.2f T", a); filename = sprintf("data-10-%1.1f.eps", a); set output filename unset label set label timestamp at -0.25, -0.28 font ", 28" plot y(x, t) w l lw 8 t "" a = 0.3 t = a * T timestamp = sprintf("{/Italics t} = %1.2f T", a); filename = sprintf("data-10-%1.1f.eps", a); set output filename unset label set label timestamp at -0.25, -0.28 font ", 28" plot y(x, t) w l lw 8 t "" a = 0.4 t = a * T timestamp = sprintf("{/Italics t} = %1.2f T", a); filename = sprintf("data-10-%1.1f.eps", a); set output filename unset label set label timestamp at -0.25, -0.28 font ", 28" plot y(x, t) w l lw 8 t "" a = 0.5 t = a * T timestamp = sprintf("{/Italics t} = %1.2f T", a); filename = sprintf("data-10-%1.1f.eps", a); set output filename unset label set label timestamp at -0.25, -0.28 font ", 28" plot y(x, t) w l lw 8 t "" a = 0.6 t = a * T timestamp = sprintf("{/Italics t} = %1.2f T", a); filename = sprintf("data-10-%1.1f.eps", a); 73
set output filename unset label set label timestamp at -0.25, -0.28 font ", 28" plot y(x, t) w l lw 8 t "" a = 0.7 t = a * T timestamp = sprintf("{/Italics t} = %1.2f T", a); filename = sprintf("data-10-%1.1f.eps", a); set output filename unset label set label timestamp at -0.25, -0.28 font ", 28" plot y(x, t) w l lw 8 t "" a = 0.8 t = a * T timestamp = sprintf("{/Italics t} = %1.2f T", a); filename = sprintf("data-10-%1.1f.eps", a); set output filename unset label set label timestamp at -0.25, -0.28 font ", 28" plot y(x, t) w l lw 8 t "" a = 0.9 t = a * T timestamp = sprintf("{/Italics t} = %1.2f T", a); filename = sprintf("data-10-%1.1f.eps", a); set output filename unset label set label timestamp at -0.25, -0.28 font ", 28" plot y(x, t) w l lw 8 t "" dalam berkas teks plot-10.gps dan jalankan sehingga diperoleh berkas-berkas data-10-0.0.eps sampai data-10-0.9.eps. Konversi berkas-berkas .eps yang dihasilkan menjadi .png dengan cara menggunakan perintah berikut pada konsol convert convert convert convert convert convert convert convert convert
data-10-0.0.eps data-10-0.1.eps data-10-0.2.eps data-10-0.3.eps data-10-0.4.eps data-10-0.5.eps data-10-0.6.eps data-10-0.7.eps data-10-0.8.eps
data-10-0.0.jpg data-10-0.1.jpg data-10-0.2.jpg data-10-0.3.jpg data-10-0.4.jpg data-10-0.5.jpg data-10-0.6.jpg data-10-0.7.jpg data-10-0.8.jpg 74
convert data-10-0.9.eps data-10-0.9.jpg convert *.jpg data-10.gif Tugas 10. Lihat hasil konversi dari berkas *.jpg menjadi data-10.gif menggunakan penjelajah internet yang ada. Laporkan hasil pengamatan Anda dalam berkas laporan.txt. Ilustrasi snapshot grafik fungsi gelombang dapat dilihat dalam Gambar 12.
Keluaran praktikum 1. data-01.txt, plot-01.gps, data-01.eps, plot-01a.gps, data-01a.eps, data-02.txt, plot-02.gps, data-02.eps, data-03.txt, plot-03.gps, data-03.eps, data-gen.cpp, data-04.txt, data-04.eps, data-04a.eps, data-04b.eps, data-04c.eps, plot-05.gps, data-05a.eps, data-05b.eps, plot-06.gps, data-06.eps, plot-06a.gps, data-06a.eps, data-07.txt, plot-07.gps, data-07.eps, data-07a.txt, plot-07a.gps, data-07a.eps, plot-08.gps, data-08.eps, plot-09.gps, data-09.eps dan . 2. laporan.txt yang berisikan jawaban dari Tugas 1, 2, 4, 6, 8, 9, dan 10.
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License. 1 1 Sparisoma
Viridi , .., 2013
75
0.2
0.1
0.1
y (m)
y (m)
0.2
0 -0.1
-0.1
0.5
1
1.5
2
x (m)
-0.2 0 t = 0.10 T
0.2
0.2
0.1
0.1
y (m)
y (m)
-0.2 0 t = 0.00 T
0 -0.1
0.5
1
1.5
2
x (m)
-0.2 0 t = 0.30 T 0.2
0.1
0.1
0 -0.1
0.5
1
1.5
2
x (m)
-0.2 0 t = 0.50 T
0.1
0.1
y (m)
y (m)
2
0.5
1
1.5
2
1.5
2
1.5
2
1.5
2
x (m)
-0.1
0.2
0 -0.1
0.5
1
x (m)
0 -0.1
0.5
1
1.5
2
x (m)
-0.2 0 t = 0.70 T 0.2
0.1
0.1
y (m)
0.2
0 -0.1
-0.2 0 t = 0.80 T
1.5
0
0.2
-0.2 0 t = 0.60 T
1
x (m)
0
0.2
-0.2 0 t = 0.40 T
0.5
-0.1
y (m)
y (m)
-0.2 0 t = 0.20 T
y (m)
0
0.5
1
x (m)
0 -0.1
0.5
1
1.5
2
x (m)
-0.2 0 t = 0.90 T
0.5
1
x (m)
Gambar 12: Hasil yang diperoleh dari script plot-10.gps untuk waktu-waktu: 0.0T , 0.1T , 0.2T , 0.3T , 0.4T , 0.5T , 0.6T , 0.7T , 0.8T , dan 0.9 T , di mana T adalah periode osilasi.
76