Topik ini membahas turunan dari turunan, mulai dari notasi turunan kedua dan ketiga sampai makna fisiknya, yaitu percepatan sebagai turunan kedua dari posisi. Tanda turunan kedua juga dibaca sebagai arah kelengkungan kurva, dan seluruh perhitungan diverifikasi secara numerik menggunakan beda maju kedua pada NumPy. Setelah membaca, hubungan antara posisi, kecepatan, dan percepatan dapat dihitung, dibaca dari grafik, dan diperiksa kebenarannya dengan kode.
Turunan dari turunan#
Karena turunan sendiri merupakan fungsi, fungsinya pun dapat diturunkan lagi. Hasilnya disebut turunan kedua (second derivative) dan ditulis , sedangkan notasi Leibniz menuliskannya sebagai untuk . Prosesnya dapat diteruskan sehingga muncul turunan ketiga dan seterusnya, dan keseluruhannya disebut turunan tingkat lebih tinggi (higher-order derivative).
Pada fungsi , rantai perhitungannya berjalan sebagai berikut, yaitu , kemudian , lalu , selanjutnya , dan akhirnya karena turunan konstanta selalu nol. Setiap tahap hanya menerapkan aturan pangkat pada hasil tahap sebelumnya. Turunan pertama menyimpan informasi arah naik-turun, sedangkan turunan kedua menyimpan informasi tentang seberapa cepat arah itu sendiri berubah, dan informasi inilah yang menjadi inti bagian berikutnya.
Percepatan sebagai turunan kedua posisi#
Penerapan turunan kedua yang paling mudah dibayangkan adalah gerak lurus. Apabila menyatakan posisi benda pada waktu , maka kecepatan adalah turunan pertama , dan percepatan (acceleration) adalah turunan kedua, yaitu . Ketiganya membentuk rantai yang teratur, sehingga percepatan mengukur seberapa cepat kecepatan berubah, sebagaimana kecepatan mengukur seberapa cepat posisi berubah.
Sebagai contoh, ambil posisi dalam meter pada lintasan lurus, sehingga dan . Program berikut menghitung ketiganya pada beberapa waktu, lalu memverifikasi kecepatan dengan beda kuotien simetris dan percepatan dengan beda maju kedua (second difference),
import numpy as np
def s(t):
return t**3 - 6.0 * t**2 + 9.0 * t
def v(t):
return 3.0 * t**2 - 12.0 * t + 9.0
def a(t):
return 6.0 * t - 12.0
h = 1e-4
print(" t s(t) v(t) a(t) v(numerik) a(numerik)")
for t in (0.0, 1.0, 2.0, 3.0):
v_num = round((s(t + h) - s(t - h)) / (2.0 * h), 6)
a_num = round((s(t + h) - 2.0 * s(t) + s(t - h)) / h**2, 6)
# buang tanda minus pada nol hasil pembulatan float
if v_num == 0.0:
v_num = 0.0
if a_num == 0.0:
a_num = 0.0
print(f"{t:4.1f} {s(t):7.2f} {v(t):7.2f} {a(t):7.2f} {v_num:11.4f} {a_num:11.4f}") t s(t) v(t) a(t) v(numerik) a(numerik)
0.0 0.00 9.00 -12.00 9.0000 -12.0000
1.0 4.00 0.00 -6.00 0.0000 -6.0000
2.0 2.00 -3.00 0.00 -3.0000 0.0000
3.0 0.00 0.00 6.00 0.0000 6.0000Dua kolom numerik cocok dengan kolom rumus pada keempat waktu tersebut, sehingga rantai posisi, kecepatan, dan percepatan terverifikasi. Bacaan fisiknya juga masuk akal, yaitu pada benda berhenti sejenak karena , tetapi percepatannya masih sehingga kecepatannya berlanjut ke arah negatif. Pada percepatan berganti tanda, dan pada benda kembali berhenti dengan percepatan positif sehingga siap bergerak maju lagi.
Kelakungan kurva dan titik belok#
Tanda turunan kedua menunjukkan arah kelengkungan kurva. Apabila , kurva disebut cekung ke atas (concave up) karena kemiringannya sedang bertambah, sedangkan menghasilkan kurva cekung ke bawah (concave down) karena kemiringannya sedang berkurang. Titik yang memisahkan kedua rezim itu disebut titik belok (inflection point), yaitu tempat berganti tanda. Tanda turunan kedua di sekitar suatu titik kritis juga menjadi dasar uji turunan kedua pada pencarian nilai ekstrem.
Grafik tiga panel berikut menampilkan posisi, kecepatan, dan percepatan contoh di atas dalam satu gambar. Skripnya disimpan sebagai berkas utuh agar dapat dijalankan ulang.
import numpy as np
import matplotlib.pyplot as plt
t = np.linspace(-0.3, 3.5, 300)
s = t**3 - 6.0 * t**2 + 9.0 * t
v = 3.0 * t**2 - 12.0 * t + 9.0
a = 6.0 * t - 12.0
fig, axes = plt.subplots(3, 1, figsize=(6, 6), sharex=True)
axes[0].plot(t, s, color="#1a5fb4")
axes[0].set_ylabel("s(t) meter")
axes[0].set_title("Posisi, kecepatan, dan percepatan")
axes[1].plot(t, v, color="#26a269")
axes[1].axhline(0.0, color="#000000", linewidth=0.8)
axes[1].set_ylabel("v(t) m/s")
axes[2].plot(t, a, color="#c01c28")
axes[2].axhline(0.0, color="#000000", linewidth=0.8)
axes[2].set_ylabel("a(t) m/s^2")
axes[2].set_xlabel("waktu t (detik)")
fig.align_ylabels(axes)
fig.savefig("turunan-kedua.svg")Pembacaan antara panel saling menguatkan. Kurva kecepatan memotong sumbu horizontal tepat pada dan , yaitu saat kurva posisi mencapai titik baliknya, karena gradien posisi memang nol di sana. Kurva percepatan memotong nol pada , bertepatan dengan dasar lembah kurva kecepatan, dan waktu itu pula titik belok kurva posisi tempat kelengkungannya berganti arah.
Di mana hal ini ditemui dalam kode#
Beda maju kedua pada topik ini adalah bentuk satu dimensi dari penyaring Laplace (Laplacian) yang digunakan untuk deteksi tepi pada pemrosesan gambar. Bagian gambar yang berubah tajam menghasilkan turunan kedua bernilai besar, sehingga pencarian tepi dilakukan dengan mencari lokasi bernilai ekstrem pada hasil penyaring tersebut. Rantai perhitungan yang sama juga digunakan mesin fisika (physics engine) pada gim, yaitu percepatan diperbarui dari gaya, kemudian diintegrasi menjadi kecepatan dan posisi pada setiap frame.
Pada machine learning, turunan kedua menyimpan informasi kelengkungan fungsi loss di sekitar titik yang ditinjau. Algoritma optimasi orde kedua seperti metode Newton menggunakan informasi tersebut untuk memperbesar langkah di lembah yang landai dan memperkecilnya di lembah yang curam, sedangkan metode orde pertama hanya melihat kemiringan. Mengetahui bahwa percepatan adalah turunan kedua posisi memberi intuisi yang persis sama pada ruang parameter yang jauh lebih besar. Pada sisi perangkat keras, sensor gerak (inertial measurement unit) mengukur percepatan secara langsung, lalu hasilnya diintegrasikan dua kali untuk mendapatkan kembali kecepatan dan posisi perangkat.
Ringkasan#
- Turunan kedua adalah turunan dari turunan, dan prosesnya dapat diteruskan ke tingkat yang lebih tinggi.
- Pada gerak lurus, posisi , kecepatan , dan percepatan membentuk rantai yang masing-masing menyimpan informasi yang satu tingkat lebih halus.
- Numeriknya didekati dengan beda maju kedua , dan hasilnya cocok dengan rumus eksak pada contoh.
- Tanda turunan kedua menentukan kelakungan kurva, yaitu cekung ke atas atau cekung ke bawah, dengan titik belok pada peralihan tandanya.
Referensi#
- Calculus Volume 1, 3.4 Derivatives as Rates of Change — OpenStax — Posisi, kecepatan, dan percepatan sebagai rantai turunan beserta contoh geraknya.
- Calculus Volume 1, 4.5 Derivatives and the Shape of a Graph — OpenStax — Hubungan tanda turunan pertama dan kedua dengan kelakungan kurva serta titik belok.