Iterasi | Interval Baru | ||||
---|---|---|---|---|---|
1 | 2.000000 | 2.500000 | 2.50000000 | 1.2500000 | [2.000000, 2.500000] |
2 | 2.000000 | 2.250000 | 2.25000000 | 0.0625000 | [2.000000, 2.250000] |
3 | 2.125000 | 2.250000 | 2.12500000 | -0.4843750 | [2.125000, 2.250000] |
4 | 2.187500 | 2.250000 | 2.18750000 | -0.2148438 | [2.187500, 2.250000] |
5 | 2.218750 | 2.250000 | 2.21875000 | -0.0771484 | [2.218750, 2.250000] |
6 | 2.234375 | 2.250000 | 2.23437500 | -0.0075684 | [2.234375, 2.250000] |
7 | 2.234375 | 2.242188 | 2.24218750 | 0.0274048 | [2.234375, 2.242188] |
8 | 2.234375 | 2.238281 | 2.23828125 | 0.0099030 | [2.234375, 2.238281] |
9 | 2.234375 | 2.236328 | 2.23632812 | 0.0011635 | [2.234375, 2.236328] |
10 | 2.235352 | 2.236328 | 2.23535156 | -0.0032034 | [2.235352, 2.236328] |
11 | 2.235840 | 2.236328 | 2.23583984 | -0.0010202 | [2.235840, 2.236328] |
12 | 2.235840 | 2.236084 | 2.23608398 | 7.1585e-05 | [2.235840, 2.236084] |
13 | 2.235962 | 2.236084 | 2.23596191 | -0.0004743 | [2.235962, 2.236084] |
14 | 2.236023 | 2.236084 | 2.23602295 | -0.0002014 | [2.236023, 2.236084] |
15 | 2.236053 | 2.236084 | 2.23605347 | -6.4894e-05 | [2.236053, 2.236084] |
16 | 2.236053 | 2.236069 | 2.23606873 | 3.3455e-06 | [2.236053, 2.236069] |
17 | 2.236061 | 2.236069 | 2.23606110 | -3.0774e-05 | [2.236061, 2.236069] |
18 | 2.236065 | 2.236069 | 2.23606491 | -1.3714e-05 | [2.236065, 2.236069] |
19 | 2.236067 | 2.236069 | 2.23606682 | -5.1844e-06 | [2.236067, 2.236069] |
20 | 2.236068 | 2.236069 | 2.23606777 | -9.1942e-07 | [2.236068, 2.236069] |
6 Metode Numerik
Dalam Teknik Pertambangan, banyak fenomena rekayasa yang bersifat kompleks dan memerlukan pendekatan matematika untuk dianalisis. Persamaan nonlinear muncul dalam berbagai aplikasi, seperti perhitungan aliran air tanah di tambang, tekanan gas pada ventilasi bawah tanah, dan karakteristik batuan yang tidak linier.
Persamaan nonlinear adalah persamaan dalam bentuk umum
6.1 Persamaan Nonlinear
Berikut adalah beberapa bentuk umum persamaan nonlinear yang sering muncul dalam permasalahan teknik pertambangan, lengkap dengan contoh aplikasinya:
6.1.1 Kuadrat (Parabolik)
Contoh aplikasi: Perhitungan trajektori material saat proses peledakan, atau untuk menganalisis kestabilan lereng berdasarkan ketinggian dan jarak. Misalnya, tinggi maksimum material yang dilempar ke udara setelah peledakan:
6.1.2 Polinomial Tingkat Tinggi
Contoh aplikasi: Modeling hubungan nonlinear antara tekanan, suhu, dan volume dalam sistem termodinamika tambang bawah tanah, atau estimasi deformasi struktur tambang akibat gaya-gaya kompleks.
6.1.3 Eksponensial
Contoh aplikasi: Menjelaskan peluruhan tekanan dalam sistem pipa ventilasi tambang bawah tanah atau penurunan kandungan bahan kimia selama proses leaching. Contoh:
6.1.4 Logaritmik
Contoh aplikasi: Menentukan hubungan antara porositas batuan dan permeabilitas dalam simulasi aliran fluida di bawah permukaan. Misalnya:
6.1.5 Trigonometri
Contoh aplikasi: Model gelombang seismik dalam proses eksplorasi geofisika, atau untuk analisis getaran akibat peledakan pada tambang terbuka. Digunakan untuk memodelkan perubahan intensitas gelombang terhadap jarak dan waktu dari sumber getaran.
6.2 Metode Penyelesaian
Karena banyak persamaan nonlinear tidak dapat diselesaikan secara analitik, maka kita menggunakan Metode Numerik (Iteratif) untuk mencari akar (solusi) dari
6.2.1 Metode Biseksi
Metode Biseksi bekerja dengan mempersempit interval
Langkah:
- Hitung
dan , pastikan - Hitung titik tengah
- Evaluasi
- Tentukan subinterval baru
atau tergantung tanda - Ulangi hingga konvergen
Contoh Terapan Metode Biseksi
Dalam dunia pertambangan, banyak fenomena fisik yang dimodelkan dengan persamaan nonlinear, misalnya tekanan air pori, tekanan gas, gelombang seismik, hingga porositas batuan.
Salah satu contoh bentuk fungsi nonlinear adalah:
Tujuan kita adalah mencari nilai
Pelih Interval Awal
Karena kita ingin mencari akar positifnya, kita pilih interval awal di sekitar
- Coba
, (negatif)
- Coba
, (positif)
Karena terjadi perubahan tanda:
Maka interval awal yang valid adalah:
Algoritma Metode Biseksi
Iterasi metode biseksi dilakukan dengan mencari titik tengah:
dan menghitung
- Jika
, maka akar ada di - Jika
, maka akar ada di
Iterasi dilanjutkan hingga panjang interval
Tabel Iterasi
Konvergensi
Panjang interval akhir:
Sehingga solusi telah konvergen pada:
Visualisasi Metode Biseksi
Berikut ini dilampirkan Kode Python untuk memperlihatkan proses pencarian titik penyelesaiannya dengan menggunakan Metode Secant secara visual.
import numpy as np
import plotly.graph_objects as go
# Fungsi yang ingin dicari akarnya
def f(x):
return x**2 - 5
# Fungsi Metode Biseksi
def bisection_iterations(f, a0, b0, tol=1e-3, max_iter=20):
= []
iterations = a0, b0
a, b for i in range(max_iter):
= (a + b) / 2
c = f(c)
fc + 1, a, b, c, fc))
iterations.append((i if abs(fc) < tol or abs(b - a) < tol:
break
if f(a) * fc < 0:
= c
b else:
= c
a return iterations
# Parameter awal
= 2, 3
a0, b0 = bisection_iterations(f, a0, b0)
iter_data
# Nilai untuk visualisasi fungsi
= np.linspace(1.5, 3.5, 400)
x_vals = f(x_vals)
y_vals = min(y_vals), max(y_vals)
min_y, max_y
# Frame untuk animasi tiap iterasi
= []
frames for i, (iter_num, a, b, c, fc) in enumerate(iter_data):
frames.append(go.Frame(=[
data=x_vals, y=y_vals, mode="lines", name="f(x)"),
go.Scatter(x=[c], y=[fc], mode="markers",
go.Scatter(x=dict(color='red', size=10),
marker=f"c (iter {iter_num})"),
name=[a, a], y=[min_y, max_y], mode="lines",
go.Scatter(x=dict(dash="dash", color="orange"), showlegend=False),
line=[b, b], y=[min_y, max_y], mode="lines",
go.Scatter(x=dict(dash="dash", color="orange"), showlegend=False),
line=[a0, a0], y=[min_y, max_y], mode="lines",
go.Scatter(x=dict(dash="dot", color="blue"), name="a0"),
line=[b0, b0], y=[min_y, max_y], mode="lines",
go.Scatter(x=dict(dash="dot", color="blue"), name="b0"),
line
],=f"Iterasi {iter_num}"
name
))
# Inisialisasi animasi
= go.Figure(
fig =[
data=x_vals, y=y_vals, mode="lines", name="f(x)"),
go.Scatter(x=[iter_data[0][3]], y=[iter_data[0][4]], mode="markers",
go.Scatter(x=dict(color='red', size=10), name="c"),
marker=[a0, a0], y=[min_y, max_y], mode="lines",
go.Scatter(x=dict(dash="dot", color="blue"), name="a0"),
line=[b0, b0], y=[min_y, max_y], mode="lines",
go.Scatter(x=dict(dash="dot", color="blue"), name="b0"),
line
],=go.Layout(
layout="Animasi Iterasi Metode Biseksi dengan Interval Awal",
title=dict(title="x"),
xaxis=dict(title="f(x)", zeroline=True),
yaxis=[
updatemenusdict(
type="buttons",
=False,
showactive=[
buttonsdict(label="Play", method="animate",
=[None, {"frame": {"duration": 1000, "redraw": True},
args"fromcurrent": True}])
]
)
]
),=frames
frames
)
fig.show()
Kesimpulan
Dengan Metode Biseksi, akar dari fungsi nonlinear sederhana seperti
Interpretasi Hasil
Solusi
Kedalaman 2.236 meter dari permukaan tanah di mana tekanan air pori = 0 — transisi dari kondisi kapiler (tekanan negatif) ke jenuh (tekanan positif). Titik ini penting untuk:
- Analisis kestabilan lereng tambang terbuka
- Identifikasi muka air tanah
- Desain sistem drainase tambang
6.2.2 Metode Newton-Raphson
Metode Newton-Raphson digunakan untuk mencari akar dari fungsi nonlinear secara iteratif, dengan memanfaatkan turunan pertama dari fungsi tersebut.
Algoritma Metode Newton
Pilih tebakan awal
Hitung turunan
dari fungsiIterasikan rumus:
Ulangi hingga selisih
(toleransi)
Contoh Terapan Metode Newton
Mari kita gunakan fungsi yang sama seperti sebelumnya:
Turunannya adalah:
Pilih Awal
Gunakan tebakan awal
Iterasi Newton-Raphson
Gunakan rumus iteratif:
Tabel Iterasi
Iterasi | | |
||||
---|---|---|---|---|---|
0 | 2.000000 | -1.000000 | 4.000000 | 2.250000 | 0.250000 |
1 | 2.250000 | 0.062500 | 4.500000 | 2.236111 | 0.013889 |
2 | 2.236111 | 0.000193 | 4.472222 | 2.236068 | 0.000043 |
3 | 2.236068 | 1.86e-09 | 4.472136 | 2.236068 | |
4 | 2.236068 | 8.88e-16 | 4.472136 | 2.236068 |
Konvergensi
Setelah 3 iterasi, solusi konvergen ke:
Dengan error di bawah
Visualisasi Metode Newton
Berikut ini dilampirkan Kode Python untuk memperlihatkan proses pencarian titik penyelesaiannya dengan menggunakan Metode Secant secara visual.
import numpy as np
import plotly.graph_objects as go
# Fungsi dan turunannya
def f(x):
return x**2 - 5
def df(x):
return 2 * x
# Fungsi iterasi Newton-Raphson
def newton_iterations(f, df, x0, tol=1e-6, max_iter=20):
= []
iterations = x0
x for i in range(max_iter):
= f(x)
fx = df(x)
dfx if dfx == 0:
break
= x - fx / dfx
x_new + 1, x, x_new, fx))
iterations.append((i if abs(x_new - x) < tol:
break
= x_new
x return iterations
# Parameter awal
= 3.0
x0 = newton_iterations(f, df, x0)
iter_data
# Sumbu x dan y untuk plot fungsi
= np.linspace(1.5, 3.5, 400)
x_vals = f(x_vals)
y_vals
# Membuat frame animasi
= []
frames for i, (iter_num, x_old, x_new, fx) in enumerate(iter_data):
= np.linspace(x_old - 0.5, x_old + 0.5, 50)
tangent_line_x = f(x_old) + df(x_old) * (tangent_line_x - x_old)
tangent_line_y
frames.append(go.Frame(=[
data=x_vals, y=y_vals, mode="lines", name="f(x)"),
go.Scatter(x=[x_old], y=[f(x_old)], mode="markers",
go.Scatter(x=dict(color='red', size=10), name=f"x (iter {i+1})"),
marker=tangent_line_x, y=tangent_line_y, mode="lines",
go.Scatter(x=dict(dash="dot", color="green"), name="Tangent Line"),
line=[x0, x0], y=[min(y_vals), max(y_vals)], mode="lines",
go.Scatter(x=dict(dash="dot", color="blue"), name="x0"),
line
],=f"Iterasi {i+1}"
name
))
# Plot awal
= go.Figure(
fig =[
data=x_vals, y=y_vals, mode="lines", name="f(x)"),
go.Scatter(x=[iter_data[0][1]], y=[f(iter_data[0][1])],
go.Scatter(x="markers", marker=dict(color='red', size=10), name="x"),
mode=[x0, x0], y=[min(y_vals), max(y_vals)], mode="lines",
go.Scatter(x=dict(dash="dot", color="blue"), name="x0"),
line
],=go.Layout(
layout="Animasi Iterasi Metode Newton-Raphson",
title=dict(title="x"),
xaxis=dict(title="f(x)", zeroline=True),
yaxis=[dict(
updatemenustype="buttons",
=False,
showactive=[dict(label="Play", method="animate", args=[None,
buttons"frame": {"duration": 1000, "redraw": True},
{"fromcurrent": True
}])]
)]
),=frames
frames
)
fig.show()
Kesimpulan
- Sangat cepat (konvergen secara kuadratik)
- Butuh fungsi turunan yang tidak nol di sekitar akar
- Cocok untuk fungsi halus dan kontinu, seperti dalam perhitungan tekanan air pori, fluks fluida, dan deformasi batuan tambang
6.2.3 Metode Secant
Metode Secant adalah metode iteratif yang digunakan untuk mencari akar dari fungsi nonlinear dengan menggunakan dua tebakan awal yang berbeda dan menggantikan turunan dengan perbedaan antara dua nilai fungsi.
Algoritma Metode Secant
Pilih dua tebakan awal,
danIterasikan rumus secant:
Ulangi hingga selisih
(toleransi)
Contoh Terapan Metode Secant
Mari kita gunakan fungsi yang sama seperti sebelumnya:
Tebakan Awal dan
Untuk mencari akar dari fungsi ini, pilih dua tebakan awal:
Iterasi Metode Secant
Rumus Secant untuk iterasi adalah:
Di mana
Tabel Iterasi
Iterasi | | |
|||
---|---|---|---|---|
0 | 3.000000 | 2.200000 | 0.800000 | |
1 | 2.200000 | 2.230769 | 0.030769 | |
2 | 2.230769 | 2.236111 | 0.005342 | |
3 | 2.236111 | 2.236068 | 0.000043 | |
4 | 2.236068 | 2.236068 |
Konvergensi
Setelah 3 iterasi, solusi konvergen ke:
Dengan error di bawah
Visualisasi Metode Secant
Berikut ini dilampirkan Kode Python untuk memperlihatkan proses pencarian titik penyelesaiannya dengan menggunakan Metode Secant secara visual.
import numpy as np
import plotly.graph_objects as go
# Fungsi
def f(x):
return x**2 - 5
# Fungsi iterasi Secant
def secant_iterations(f, x0, x1, tol=1e-6, max_iter=20):
= []
iterations for i in range(max_iter):
if f(x1) - f(x0) == 0:
break
= x1 - f(x1)*(x1 - x0)/(f(x1) - f(x0))
x2 +1, x0, x1, x2))
iterations.append((iif abs(x2 - x1) < tol:
break
= x1, x2
x0, x1 return iterations
# Nilai awal
= 2.0
x0 = 3.0
x1 = secant_iterations(f, x0, x1)
iter_data
# Fungsi untuk plot
= np.linspace(1.5, 3.5, 400)
x_vals = f(x_vals)
y_vals
# Frame animasi
= []
frames for i, (n, x_prev, x_curr, x_next) in enumerate(iter_data):
= np.linspace(x_prev, x_curr, 50)
secant_x = (f(x_curr) - f(x_prev)) / (x_curr - x_prev)
secant_slope = f(x_curr) + secant_slope * (secant_x - x_curr)
secant_y
frames.append(go.Frame(=[go.Scatter(x=x_vals, y=y_vals, mode="lines", name="f(x)"),
data=[x_prev, x_curr], y=[f(x_prev), f(x_curr)],
go.Scatter(x="markers", marker=dict(size=8, color="red"), name="x_n, x_n-1"),
mode=secant_x, y=secant_y, mode="lines", line=dict(dash="dot",
go.Scatter(x="green"), name="Secant Line"),
color=[x0, x1], y=[min(y_vals), max(y_vals)], mode="lines",
go.Scatter(x=dict(dash="dot", color="blue"), name="Initial Interval")
line
],=f"Iterasi {n}"
name
))
# Visual awal
= go.Figure(
fig =[
data=x_vals, y=y_vals, mode="lines", name="f(x)"),
go.Scatter(x=[x0, x1], y=[f(x0), f(x1)], mode="markers",
go.Scatter(x=dict(size=8, color="red"), name="x0, x1"),
marker=[x0, x0], y=[min(y_vals), max(y_vals)], mode="lines",
go.Scatter(x=dict(dash="dot", color="blue"), name="x0"),
line=[x1, x1], y=[min(y_vals), max(y_vals)], mode="lines",
go.Scatter(x=dict(dash="dot", color="blue"), name="x1"),
line
],=go.Layout(
layout="Animasi Iterasi Metode Secant",
title=dict(title="x"),
xaxis=dict(title="f(x)", zeroline=True),
yaxis=[dict(
updatemenustype="buttons",
=False,
showactive=[dict(label="Play", method="animate", args=[None, {
buttons"frame": {"duration": 1000, "redraw": True},
"fromcurrent": True
}])]
)]
),=frames
frames
)
fig.show()
Kesimpulan Metode Secant
- Tidak memerlukan turunan dari fungsi.
- Lebih sederhana daripada Metode Newton-Raphson.
- Cocok untuk fungsi yang tidak memiliki turunan eksplisit atau ketika turunan sulit dihitung.
- Bisa lebih lambat daripada Newton-Raphson, namun tetap efektif jika tebakan awal cukup baik.
6.3 Contoh Studi Kasus
Sebuah perusahaan ingin memaksimalkan efisiensi produksi berdasarkan jumlah pekerja (
Namun, setiap kombinasi pekerja dan jam kerja juga menghasilkan biaya operasional yang dihitung dengan fungsi:
Perusahaan melakukan iterasi untuk mencari kombinasi terbaik
Iterasi | Jumlah Pekerja ( |
Jam Kerja ( |
Efisiensi | Biaya |
---|---|---|---|---|
1 | 2 | 2 | 0.89 | 8 |
2 | 5 | 4 | 1.82 | 41 |
3 | 8 | 6 | 2.37 | 100 |
4 | 11 | 7 | 2.68 | 170 |
5 | 14 | 9 | 2.95 | 277 |
6 | 17 | 10 | 3.12 | 389 |
7 | 20 | 12 | 3.33 | 528 |
8 | 23 | 13 | 3.48 | 618 |
9 | 25 | 14 | 3.57 | 725 |
10 | 28 | 15 | 3.65 | 829 |
11 | 30 | 16 | 3.72 | 976 |
12 | 33 | 18 | 3.78 | 1,149 |
13 | 35 | 19 | 3.83 | 1,361 |
14 | 38 | 20 | 3.88 | 1,528 |
15 | 40 | 22 | 3.91 | 1,664 |
16 | 42 | 23 | 3.94 | 1,788 |
17 | 45 | 24 | 3.97 | 2,041 |
18 | 48 | 26 | 4.00 | 2,300 |
19 | 50 | 27 | 4.02 | 2,529 |
20 | 53 | 28 | 4.04 | 2,809 |
6.3.1 Pertanyaan
- Tentukan kombinasi pekerja dan jam kerja yang memberikan efisiensi maksimum.
- Berapa biaya yang harus dikeluarkan pada titik efisiensi maksimum tersebut?
- Jelaskan trade-off antara efisiensi dan biaya berdasarkan animasi iterasi.
- Jika perusahaan ingin menjaga biaya di bawah 200, berapa efisiensi maksimal yang bisa dicapai?
6.3.2 Pembahasan
Efisiensi Maksimum
Dari tabel dan animasi, efisiensi tertinggi terjadi pada iterasi ke-15: -
Biaya pada Efisiensi Maksimum
Untuk menghitung biaya pada titik efisiensi maksimum:
Trade-off Efisiensi vs Biaya
- Semakin besar
dan , efisiensi meningkat secara melambat, tetapi biaya meningkat tajam. - Terlihat bahwa dari iterasi 13 ke 15, kenaikan efisiensi dari 3.83 ke 3.91 hanya sekitar 0.08, sedangkan biaya naik 303 poin.
- Artinya: ada diminishing return — efisiensi naik sedikit, tetapi biaya naik tajam.
Batas Biaya < 200
Dari tabel, hanya iterasi ke-1 hingga ke-4 yang memenuhi syarat:
- Efisiensi maksimum di bawah batas biaya ini adalah pada iterasi ke-4, dengan:
- Efisiensi = 2.68
- Biaya = 170
6.3.3 Kesimpulan
- Kombinasi terbaik secara efisiensi: ( (x = 40, y = 22) ), pada iterasi ke-15.
- Tetapi, untuk batas biaya tertentu, pilihan optimal bisa berbeda.
- Visualisasi 4D membantu memahami interaksi antar variabel dan dampaknya secara intuitif.
6.3.4 Visualisasi
6.4 Studi Kasus Tambang
6.4.1 Tekanan Air Pori
Dalam desain kestabilan lereng tambang terbuka, tekanan air pori (
dengan:
: kedalaman dari permukaan : berat jenis air (misalnya 9.81 kN/m³) : parameter karakteristik batuan (misal , )
Tujuan
Menentukan kedalaman
Instruksi
- Definisikan fungsi nonlinear:
- Tentukan
→ akar dari fungsi - Gunakan metode numerik:
- Newton-Raphson:
- Atau Metode Secant jika turunan sulit
- Newton-Raphson:
- Gunakan nilai awal
, toleransi - Iterasi hingga
6.4.2 Distribusi Tekanan Udara
Ventilasi tambang bawah tanah sering kali dianalisis menggunakan:
Jika ditambahkan persamaan rugi tekanan, misalnya:
maka bentuknya menjadi nonlinear dan tidak bisa diselesaikan secara langsung.
Tujuan
Menentukan posisi
Instruksi
- Definisikan fungsi:
- Cari nilai
sehingga - Gunakan metode numerik (Newton-Raphson atau Secant)
- Asumsikan
, , , coba nilai awal
6.4.3 Penentuan Regangan Batuan
Model empiris batuan sering kali mengikuti hubungan nonlinear:
Misalnya:
MPa (Modulus Young)- Tegangan lapangan:
MPa
Tujuan
Hitung nilai regangan
Instruksi
- Nyatakan ulang fungsi:
- Substitusi nilai:
- Gunakan metode numerik untuk mencari
:- Metode Newton-Raphson:
- Mulai dengan
- Metode Newton-Raphson:
- Iterasi hingga
6.4.4 Kesimpulan Studi Kasus
Ketiga kasus di atas menunjukkan bahwa Metode Numerik adalah alat penting dalam praktik teknik tambang:
- Membantu menyelesaikan persamaan nonlinear yang tidak bisa dipecahkan secara aljabar
- Digunakan dalam analisis tekanan air pori, sistem ventilasi, dan pengujian laboratorium batuan
- Memberikan solusi cepat dan akurat untuk pengambilan keputusan teknis lapangan
Dengan menguasai metode numerik, insinyur tambang dapat menjawab pertanyaan “berapa kedalaman jenuh?”, “di mana tekanan kritis terjadi?”, dan “berapa regangan batuan?” dengan presisi tinggi.
6.5 Latihan Soal
Gunakan metode Newton-Raphson untuk:
Metode Secant untuk:
Metode Biseksi (Regula Falsi) pada:
6.6 Penutup
Metode numerik merupakan alat penting dalam menyelesaikan persoalan teknik yang tidak dapat diselesaikan secara analitik. Dalam konteks rekayasa pertambangan, metode seperti Biseksi, Newton-Raphson, dan Secant memungkinkan insinyur untuk memecahkan persamaan nonlinear yang muncul dalam analisis kestabilan lereng, perhitungan tekanan air pori, desain sistem drainase, dan berbagai aplikasi lainnya. Dengan memahami dan menerapkan metode numerik, insinyur tambang dapat mengambil keputusan teknis secara lebih presisi, efisien, dan berbasis data.