Menggambar Fungsi

Kemiringan, titik potong, dan pembacaan perilaku fungsi dari grafiknya.

Daftar isi

Topik ini membahas cara menggambar grafik fungsi dengan matplotlib dan cara membaca informasi dari hasilnya. Kemiringan garis, titik potong kedua sumbu, interval naik-turun, dan titik ekstrem dibahas satu per satu, dan setiap nilai yang muncul diverifikasi dengan NumPy sebelum grafiknya digambar. Setelah membaca, perilaku suatu fungsi dapat dibaca dari grafiknya tanpa menghitung ulang seluruh nilainya.

Kemiringan garis#

Grafik fungsi adalah kurva yang dibentuk oleh semua pasangan (x,f(x)) (x, f(x)) pada bidang koordinat. Untuk garis lurus y=mx+c y = mx + c , bentuk grafiknya ditentukan oleh dua bilangan, yaitu kemiringan (slope) m m dan konstanta c c . Kemiringan mengukur kenaikan vertikal untuk setiap satu satuan maju pada sumbu horizontal, dan nilainya dihitung dari dua titik yang dilalui garis,

m=y2−y1x2−x1=ΔyΔx. m = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x}.

Tanda m m menentukan arah garis. Nilai m m positif menghasilkan garis yang naik dari kiri ke kanan, nilai m m negatif menghasilkan garis yang turun, dan m=0 m = 0 menghasilkan garis datar karena fungsinya konstan. Semakin besar nilai mutlak m m , semakin curam garisnya. Konstanta c c tidak mengubah arah garis, melainkan hanya menggesernya naik atau turun.

Berkas berikut menghitung kemiringan dari dua titik pada garis y=3x y = 3x , lalu memeriksa hasilnya dengan mengembalikan kedua titik ke dalam persamaan garis.

python Contoh: menghitung kemiringan dan memverifikasinya
import numpy as np

# dua titik pada garis y = 3x
x1, y1 = 1.0, 3.0
x2, y2 = 4.0, 12.0

# rumus kemiringan
m = (y2 - y1) / (x2 - x1)
c = y1 - m * x1
print("rumus dua titik : m =", m, "dan c =", c)

# verifikasi: garis hasil mengembalikan kedua titik
print("titik 1 :", m * x1 + c)
print("titik 2 :", m * x2 + c)
text Keluaran
rumus dua titik : m = 3.0 dan c = 0.0
titik 1 : 3.0
titik 2 : 12.0

Rumus dua titik menghasilkan m=3 m = 3 dan c=0 c = 0 , dan substitusi kedua titik mengembalikan nilai y y yang asli, sehingga persamaan garisnya terverifikasi. Contoh berikut menggambar tiga garis dengan kemiringan m=0.5 m = 0.5 , m=1 m = 1 , dan m=2 m = 2 , lalu menyimpannya sebagai berkas SVG.

python Contoh: menggambar tiga garis dengan kemiringan berbeda
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-2.0, 4.0, 100)
fig, ax = plt.subplots(figsize=(6, 3))
for m in (0.5, 1.0, 2.0):
    ax.plot(x, m * x, label="m = " + str(m))
ax.axhline(0.0, color="#000000", linewidth=0.8)
ax.axvline(0.0, color="#000000", linewidth=0.8)
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.set_title("Nilai m menentukan kecuraman garis y = mx")
ax.legend(loc="upper left")
fig.savefig("grafik-linear.svg")

Garis dengan m=2 m = 2 terlihat paling curam, sedangkan garis dengan m=0.5 m = 0.5 paling landai. Ketiganya tetap berpotongan di titik asal karena konstantanya nol. Perubahan kemiringan memutar garis di sekitar titik potong itu, sedangkan perubahan konstanta hanya menggesernya tanpa memutarnya.

Perbandingan kecuraman tiga garis dengan kemiringan 0.5, 1, dan 2

Titik potong sumbu#

Titik potong sumbu-x (x-intercept) adalah nilai x x yang membuat f(x)=0 f(x) = 0 , dan nilainya disebut akar (root) dari persamaan tersebut. Titik potong sumbu-y (y-intercept) adalah nilai f(0) f(0) , yaitu keluaran ketika masukannya nol. Suatu fungsi dapat memiliki beberapa titik potong sumbu-x, tetapi titik potong sumbu-y paling banyak satu karena setiap masukan hanya menghasilkan satu keluaran. Dalam konteks nyata, kedua titik ini sering bermakna khusus, misalnya saat saldo tabungan mencapai nol atau saat suhu menyentuh titik acuan. Karena itu, keduanya menjadi patokan pertama sebelum bentuk lengkap kurva digambar.

Berkas berikut menghitung kedua jenis titik potong untuk f(x)=x2−4 f(x) = x^2 - 4 , dengan tabel nilai sebagai pembanding.

python Contoh: mencari titik potong kedua sumbu
import numpy as np

# nilai f(x) = x^2 - 4 pada beberapa masukan
x = np.array([-3.0, -2.0, -1.0, 0.0, 1.0, 2.0, 3.0])
y = x**2 - 4.0
print("x :", x)
print("y :", y)

# titik potong sumbu-x diperoleh dari akar f(x) = 0
akar = np.sort(np.roots([1.0, 0.0, -4.0]))
print("akar f(x) = 0 :", akar)

# titik potong sumbu-y diperoleh dari f(0)
print("f(0) :", 0.0**2 - 4.0)
text Keluaran
x : [-3. -2. -1.  0.  1.  2.  3.]
y : [ 5.  0. -3. -4. -3.  0.  5.]
akar f(x) = 0 : [-2.  2.]
f(0) : -4.0

Tabel nilai memperlihatkan keluaran nol tepat pada x=−2 x = -2 dan x=2 x = 2 , dan hasil np.roots mengonfirmasi kedua akar itu. Nilai f(0)=−4 f(0) = -4 cocok dengan tabel pada kolom x=0 x = 0 , sehingga ketiga hitungan saling mendukung. Titik (−2,0) (-2, 0) , (2,0) (2, 0) , dan (0,−4) (0, -4) selanjutnya digunakan sebagai jangkar gambar parabola pada bagian berikutnya.

Membaca perilaku fungsi dari grafiknya#

Grafik yang benar menyimpan informasi yang lebih banyak daripada sekadar bentuk kurvanya. Interval naik dan turun terbaca dari arah kurva, titik minimum dan maksimum terbaca dari puncak atau lembahnya, dan perilaku ujung (end behavior) terbaca dari arah kurva ketika x x menjauh ke kedua sisi. Untuk parabola y=ax2+bx+c y = ax^2 + bx + c , tanda a a menentukan arah bukanya, karena a>0 a > 0 menghasilkan parabola terbuka ke atas yang memiliki minimum, sedangkan a<0 a < 0 menghasilkan parabola terbuka ke bawah yang memiliki maksimum.

Skrip berikut menggambar parabola f(x)=x2−4 f(x) = x^2 - 4 beserta titik-titik potongnya. Jalankan skrip, lalu buka berkas grafik-kuadratik.svg yang dihasilkannya.

python gambar_parabola.py
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3.5, 3.5, 200)
y = x**2 - 4.0

fig, ax = plt.subplots(figsize=(6, 3.5))
ax.plot(x, y, color="#1a5fb4", label="f(x) = x^2 - 4")
ax.scatter([-2.0, 2.0], [0.0, 0.0], color="#c01c28", zorder=3, label="potong sumbu-x")
ax.scatter([0.0], [-4.0], color="#26a269", zorder=3, label="potong sumbu-y")
ax.axhline(0.0, color="#000000", linewidth=0.8)
ax.axvline(0.0, color="#000000", linewidth=0.8)
ax.set_xlabel("x")
ax.set_ylabel("f(x)")
ax.set_title("Parabola f(x) = x^2 - 4 dan titik potongnya")
ax.legend(loc="upper center")
fig.savefig("grafik-kuadratik.svg")
Parabola dengan titik potong sumbu-x di minus dua dan dua serta titik potong sumbu-y di minus empat

Pembacaan grafiknya adalah sebagai berikut. Kurva turun pada interval (−∞,0) (-\infty, 0) , mencapai minimum di (0,−4) (0, -4) , lalu naik pada interval (0,∞) (0, \infty) . Ketiga titik potong yang dihitung melalui np.roots dan f(0) f(0) terlihat tepat pada posisinya, sehingga grafik dan perhitungan saling memverifikasi. Perilaku ujungnya menuju +∞ +\infty pada kedua sisi, yang berarti keluaran fungsi tumbuh tanpa batas ketika x x menjauh ke kiri maupun ke kanan.

Demo interaktif: mengatur kemiringan dan titik potong#

Demo berikut menggambar y=mx+c y = mx + c pada kanvas yang dapat diatur. Geser penggeser m m untuk mengubah kemiringan, lalu geser penggeser c c untuk menggeser garis secara vertikal. Segitiga hijau putus-putus menandai satu satuan maju dan m m satuan naik, sedangkan titik merah menandai titik potong sumbu-y. Geser c c terlebih dahulu dan amati bahwa garis hanya bergeser tanpa berubah kemiringannya, lalu geser m m melewati nol untuk melihat arah garis berbalik.

Segitiga hijau juga menunjukkan tanda kemiringan secara langsung, yaitu naik ke kanan untuk m m positif dan turun ke kanan untuk m m negatif. Ketika m=0 m = 0 , segitiganya menyusut menjadi garis datar karena satu satuan maju tidak diikuti kenaikan apa pun. Persamaan di atas kanvas berubah serentak dengan posisi penggeser, sehingga hubungan rumus dan gambar terbaca tanpa jeda. Perpaduan kedua penggeser ini memperlihatkan bahwa kemiringan serta konstanta memang mengatur dua hal yang berbeda pada satu garis. Uji kasus batas dengan menggeser c c sampai garisnya tepat melalui titik asal, yaitu saat kedua titik potongnya berimpit di satu titik.

Di mana hal ini ditemui dalam kode#

Kurva pembelajaran (learning curve) adalah grafik yang paling sering dibaca dalam machine learning, yaitu nilai loss yang diplot terhadap jumlah epoch pelatihan. Kurva yang menurun lalu mendatar menandakan pelatihan konvergen, sedangkan kurva yang menaik atau berosilasi menandakan tingkat pembelajaran (learning rate) yang terlalu besar. Pembacaan perilaku naik-turun dan titik ekstrem pada topik ini adalah keterampilan yang digunakan persis ketika membaca kurva semacam itu.

Pada regresi linear, koefisien yang dihasilkan model merupakan kemiringan, yaitu perubahan prediksi untuk setiap satu satuan kenaikan fitur. Memahami kemiringan berarti memahami apa yang dikatakan modelnya. matplotlib sendiri menjadi alat bantu pemeriksaan (debugging) numerik yang lazim, karena grafik cepat menyingkap nilai nan, lonjakan yang tidak wajar, atau arah perubahan yang tidak disangka sebelum angka-angkanya diselidiki lebih jauh. Sebelum model apa pun dibangun, grafik sebar (scatter plot) data sudah mengungkap tren linear atau pola lengkung yang menentukan pilihan modelnya. Kemampuan membaca grafik juga melatih kehati-hatian, karena angka yang tampak mengesankan dapat terlihat biasa begitu skala sumbunya diperhatikan.

Ringkasan#

  • Kemiringan m=ΔyΔx m = \frac{\Delta y}{\Delta x} menentukan arah dan kecuraman garis, sedangkan konstanta c c hanya menggesernya secara vertikal.
  • Titik potong sumbu-x diperoleh dari akar persamaan f(x)=0 f(x) = 0 , sedangkan titik potong sumbu-y adalah nilai f(0) f(0) .
  • Interval naik-turun, titik ekstrem, dan perilaku ujung terbaca langsung dari grafik, dan pembacaan itu menjadi dasar membaca kurva pembelajaran dalam machine learning.

Referensi#