Turunan Tingkat Lebih Tinggi

Turunan kedua dan intuisi percepatan.

Daftar isi

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 f′(x)f'(x) sendiri merupakan fungsi, fungsinya pun dapat diturunkan lagi. Hasilnya disebut turunan kedua (second derivative) dan ditulis f′′(x)f''(x), sedangkan notasi Leibniz menuliskannya sebagai d2ydx2\frac{d^2y}{dx^2} untuk y=f(x)y = f(x). Prosesnya dapat diteruskan sehingga muncul turunan ketiga f′′′f''' dan seterusnya, dan keseluruhannya disebut turunan tingkat lebih tinggi (higher-order derivative).

Pada fungsi f(x)=x4f(x) = x^4, rantai perhitungannya berjalan sebagai berikut, yaitu f′(x)=4x3f'(x) = 4x^3, kemudian f′′(x)=12x2f''(x) = 12x^2, lalu f′′′(x)=24xf'''(x) = 24x, selanjutnya f(4)(x)=24f^{(4)}(x) = 24, dan akhirnya f(5)(x)=0f^{(5)}(x) = 0 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 s(t)s(t) menyatakan posisi benda pada waktu tt, maka kecepatan adalah turunan pertama v(t)=s′(t)v(t) = s'(t), dan percepatan (acceleration) adalah turunan kedua, yaitu a(t)=v′(t)=s′′(t)a(t) = v'(t) = s''(t). Ketiganya membentuk rantai yang teratur, sehingga percepatan mengukur seberapa cepat kecepatan berubah, sebagaimana kecepatan mengukur seberapa cepat posisi berubah.

Sebagai contoh, ambil posisi s(t)=t3−6t2+9ts(t) = t^3 - 6t^2 + 9t dalam meter pada lintasan lurus, sehingga v(t)=3t2−12t+9v(t) = 3t^2 - 12t + 9 dan a(t)=6t−12a(t) = 6t - 12. Program berikut menghitung ketiganya pada beberapa waktu, lalu memverifikasi kecepatan dengan beda kuotien simetris dan percepatan dengan beda maju kedua (second difference),

f′′(x)≈f(x+h)−2f(x)+f(x−h)h2. f''(x) \approx \frac{f(x + h) - 2f(x) + f(x - h)}{h^2}.
python Contoh: posisi, kecepatan, dan percepatan
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}")
text Keluaran
  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.0000

Dua kolom numerik cocok dengan kolom rumus pada keempat waktu tersebut, sehingga rantai posisi, kecepatan, dan percepatan terverifikasi. Bacaan fisiknya juga masuk akal, yaitu pada t=1t = 1 benda berhenti sejenak karena v=0v = 0, tetapi percepatannya masih −6-6 sehingga kecepatannya berlanjut ke arah negatif. Pada t=2t = 2 percepatan berganti tanda, dan pada t=3t = 3 benda kembali berhenti dengan percepatan positif sehingga siap bergerak maju lagi.

Kelakungan kurva dan titik belok#

Tanda turunan kedua menunjukkan arah kelengkungan kurva. Apabila f′′(x)>0f''(x) > 0, kurva disebut cekung ke atas (concave up) karena kemiringannya sedang bertambah, sedangkan f′′(x)<0f''(x) < 0 menghasilkan kurva cekung ke bawah (concave down) karena kemiringannya sedang berkurang. Titik yang memisahkan kedua rezim itu disebut titik belok (inflection point), yaitu tempat f′′f'' 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.

python gambar_turunan_kedua.py
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")
Posisi s(t), kecepatan v(t), dan percepatan a(t) pada sumbu waktu yang sama

Pembacaan antara panel saling menguatkan. Kurva kecepatan memotong sumbu horizontal tepat pada t=1t = 1 dan t=3t = 3, yaitu saat kurva posisi mencapai titik baliknya, karena gradien posisi memang nol di sana. Kurva percepatan memotong nol pada t=2t = 2, 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 f′′(x)=ddxf′(x)f''(x) = \frac{d}{dx} f'(x) adalah turunan dari turunan, dan prosesnya dapat diteruskan ke tingkat yang lebih tinggi.
  • Pada gerak lurus, posisi s(t)s(t), kecepatan v(t)=s′(t)v(t) = s'(t), dan percepatan a(t)=s′′(t)a(t) = s''(t) membentuk rantai yang masing-masing menyimpan informasi yang satu tingkat lebih halus.
  • Numeriknya didekati dengan beda maju kedua f(x+h)−2f(x)+f(x−h)h2\frac{f(x+h) - 2f(x) + f(x-h)}{h^2}, 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#