Anda di halaman 1dari 26

LAPORAN PRAKTIKUM

INVERSI GEOFISIKA TG 3004

MODUL KE – 03
INFORMASI “A PRIORI” MODEL REFERENSI,
FLATNESS DAN SMOOTHNESS
Oleh:
Mutiara Islamia (118120080)

Asisten :
Wahyu Eko Junian
Lestari Sukma Apriliana
Dwinda Aldatri
Mustika
Rury Delvatiwi Martianda
Yola Wulanda Masri

PROGRAM STUDI TEKNIK GEOFISIKA

JURUSAN TEKNOLOGI PRODUKSI DAN INDUSTRI

INSTITUT TEKNOLOGI SUMATERA

2020/2021
I. Tujuan pratikum
a. Mampu menyelesaikan persamaan inversi dalam bidang geofisika yang menggunakan model
referensi, flatness dan smoothness.
b. Mampu menganalisa fungsi dari model referensi, flatness dan smoothness.
II. Dasar teori
- Informasi “A Priori”
Informasi “a priori” pada dasarnya hadir untuk menghadirkan solusi pada inversi dimana jumlah
data observasi (N) lebih sedikit dibandingkan jumlah parameter model yang ingin dicari (M), N<M,
yang lebih dikenal dengan kondisi under-determined. Informasi “a priori” merupakan kuantifikasi
ekspektasi atau harapan mengenai karakteristik solusi yang tidak didasarkan pada data observasi
yang akan diinversikan saat itu. Informasi “a priori” dapat diperoleh dari informasi lain atau hasil
pengamatan lain yang sudah dilakukan sebelumnya. Pada inversi anomaly gaya berat misalnya,
informasi “a priori” bisa berupa:
a. Informasi bentuk tubuh batuan yang diperoleh dari metode lain.
b. Informasi bahwa harga densitas batuan selalu positif.
c. Informasi harga densitas setiap batuan yang berada pada rentang nilai tertentu.
d. Dan lain – lain.
Dengan demikian, fungsi atau manfaat dari informasi “a priori” adalah dapat mempersempit ruang
solusi inversi dan ruang pencarian solusi inversi. Pada beberapa kasus, informasi “a priori” kadang
bersifat subyektif sehingga solusi inversinya menjadi bias. Selain itu, jumlah solusi inversi pada
kasus under-determined adalah non-unique. Untuk menghindari masalah – masalah inversi tersebut,
maka solusi inversi diasumsikan adakah sederhana, secara matetmatis dapat dituliskan sebagai beri-
kut,

Solusi inversi dikatakan sederhana jika L bernilai minimum. Konsep solusi yang sederhana ini pada
dasarnya tidak memiliki landasan fisis yang jelas dan inilah yang mnnjadi kelemahan dari konsep
ini. Dengan menggunakan konsep ini, maka diperoleh solusi inversi linier unde-determined adalah
sebagai
berikut,
m = GT(GGT)1d
Meskipun demikian, Banyak kasus permasalahan dalam inversi geofisika merupakan gabungan an-
tara under-determined dan over-determined sehingga disebut mixed determined. Contohnya pada
inversi tomografi akustik.
Gambar 1. Kondisi geometri eksperimen pada tomografi akustik yang menghasilkan resolusi pa-
rameter model
Solusi inversi linier pada kondisi mixed-determined dapat diperoleh dengan mneggabungkan solusi
over-determined dan under-determined. Sehingga fungsi objektif yang harus diminimumkan adalah
sebagai berikut,

Dengan ε2 merupakan suatu bilangan positif sebagai bobot relatif antara kedua faktor yang
dimimumkan. Jika ε2 sangat besar maka minimisasi norm model (solution length) akan lebih dom-
inan, sementara model tersebut belum tentu memberikan kesalah prediksi data yang minimum. Jika
ε2 = 0 maka hanya kesalahan prediksi data yang diminimukan, namun tidak ada informasi a priori
yang digunakan untuk memberikan kendala bagi parameter model yang dicari. Cara memini-
mumkan Φ(m) adalah dengan mencari turunanya terhadap model dan dibuat sama dengan nol. So-
lusi akhir inversi linier mixed determined adalah sebagai berikut :

Solusi inversi di atas disebut juga sebagai solusi inversi linier ter-redam (damped linear inversion)
karena untuk meredam ketoidakstabilan solusi yang timbul pada perhitungan akibat keterbatasan
datapada bagian under-determined. Nilai ε2 disebut sebagai faktor redaman atau parameter regular-
isasi.Dalam penentuan nilai ε2 dapat dilakukan dengan du acara, yaitu:
a. Trial and error
b. Memilih kriteria ε berdasarkan kriteria berikut
i. Norm model minimum dengan kesalahan prediksi data yang masi berada di bawah harga
tertentu, E = ‖e‖ ≤ δ
ii. Kesalahan prediks data minimum dengan norm model L = ‖m‖ ≤ λ
- MODEL REFERENSI, FLATNESS DAN SMOOTHNESS
Sebelumnya sudah disebutkan bahwa konsep solusi inversi yang sederhana pada kondisi under-
determined dan mixed-determined adalah tidak memiliki arti fisis yang jelas. Kemudian, konsep
tersebut akan cenderung mengarah pada solusi inversi atau model yang dekat dengan nol (tidak
realistis). Untuk itu, dibutuhkan model referensi sehingga solusi inversi yang dihasilkan adalah
mendekati dengan model referensi. Model referensi ditentukan berdasarkan informasi “a priori”
yang tersedia. Dengan demikian, proses inversi pada dasarnya adalah mengupdate atau mengoreksi
model referensi. Dalam geofisika, model referensi biasanya merupakan model bawah permukaan
yang sudah diperoleh sebelumnya dari data lain. Solusi inversi dengan model referensi adalah se-
bagai berikut :

Dari persamaan di atas, terlihat bahwa solusi inversi (model) merupakan model referensi yang
diupdate oleh faktor koreksi. Jika model yang diharapkan adalah model yang bersifat flat, maka
minimumkan selisih model yang berdekatan sehingga gradien nilai model pada lokasi yang berdek-
atan tidak terlampau jauh. Secara matematis dapat dituliskan dalam bentuk persamaan sebagai beri-
kut :

Matriks operator differensial untuk flatness adalah sebagai berikut :

Sementara itu, jika yang diharapkan adalah distribusi model yang smooth secara spasial maka secara
matematis dapat dituliskan sebagai berikut :

Kemudian, matriks operator differensialnya adalah sebagai berikut :


Jika Wm = DTD, maka solusi umum inversi dengan model flatness dan smoothness adalah sebagai
berikut :

Dari persamaan di atas, Wm dapat disebut sebagai bobot untuk model. Bentuk umum solusi inversi
dengan model “a priori” adalah sebagai berikut :

Jika pada data diberikan bobot, We maka bentuk umum persamaan solusi inversi dengan informasi
“apriori” adalah sebagai berikut :

III. Langkah kerja


 Buka aplikasi visual studio code
 Buka new file untuk membuat script percobaan
 Ketik script percobaan yang akan dibuat
 Pada script untuk awal input library python yaitu import numpy,import matplotlib,import
copy
 Input data yang akan ditampilkan
 Input rumus
 Ketik Print hasil
 Run cript
 Ss hasil
 selesai
Diagram alir

mulai

Input
modul

Input
data

Mengubah data ke bentuk


matriks

Melakukan perhi-
tungan inversi

Plot hasil

selesai
IV. Hasil dan Pembahasan
1. Percobaan pertama
- Bobot
script
# 118120080_Mutiaraislamia_RTGB
import numpy as np
import matplotlib.pyplot as plt
import copy
from numpy.linalg import inv

#station position
x = [0, 10, 20, 30]
z = [0, 0, 0, 0]
n = len(x)

#true hyposenter
xo = 12
zo = 10
to = 0

# Model velocity 1 layer


v = 7
# forward modelling to calculate traveltime from hyposenter to station
t = []
for i in range(n):
t.append((1/v)*np.sqrt((z[i] - zo)**2 + (x[i] - xo)**2))

#add noise to traveltime data


noise = np.random.rand() * 0.03 * np.mean(t)
ti = t + noise

# tambahkan data outlier


ti[n - 1] = ((1/v) * np.sqrt((z[n - 1] - zo) ** 2 + (x[n - 1] - xo) ** 2)) + np.r
andom.rand() * 0.5 * np.mean(t)

# tebakan awal posisi hiposenter


M = [15, 30]
init_position = copy.deepcopy(M)
M1 = []

# Create weighted matrix


W = np.eye(n)

#Assign weighted matrix


W[n - 1][n - 1] = 0.1
xhipo = [init_position[0]]
yhipo = [init_position[1]]
Erms = []

# Inversion within weighted factor


# Iterasi 1000
for niter in range(1000):
gm = []
dgm_dm1 = []
dgm_dm2 = []
for i in range(n):
gm.ap-
pend(to + (1 / v) * (np.sqrt((x[i] - M[0]) ** 2 + (z[i] - M[1]) ** 2)))
dgm_dm1.append((1 / v) * (-
1 * (x[i] - M[0])) / (np.sqrt((x[i] - M[0]) ** 2 + (z[i] - M[1]) ** 2)))
dgm_dm2.append((1 / v) * (-
1 * (z[i] - M[1])) / (np.sqrt((x[i] - M[0]) ** 2 + (z[i] - M[1]) ** 2)))

J = np.zeros((n, 2))
for i in range(n):
J[i][0] = dgm_dm1[i]
J[i][1] = dgm_dm2[i]

Mo = copy.deepcopy(M)

# tambah model pertubarsi dari inversi ke Mo


Mo = np.reshape(Mo, (2, 1))
ti = np.reshape(ti, (n, 1))
gm = np.reshape(gm, (n, 1))
Model = np.mat(Mo) + np.mat(inv(np.mat(J.trans-
pose()) * np.mat(W) * np.mat(J))) * np.mat(J.trans-
pose()) * np.mat(W) * (np.mat(ti) - np.mat(gm))
M = [Model[0][0], Model[1][0]]
Data = Model.tolist()
xhipo.append(Data[0][0])
yhipo.append(Data[1][0])

# calculate rms eror


dt = ti - gm
Erms.append(np.sqrt(np.average(dt ** 2)))

plt.plot(15, 30, 'o', label='initial position', color='black')


plt.plot(xhipo, yhipo, 'o', label='Hypocenter Inversion')
plt.plot(xhipo, yhipo, label='Hypocenter Inversion')
plt.plot(xo, zo, 'o', alpha=0.5, color='red', label='true hypocenter')
plt.title('Hypocenter Determination(With Weighted)')
plt.xlabel('X koordinat')
plt.ylabel('Y koordinat')
plt.legend()
plt.figure()
plt.plot(Erms)
plt.title('Kurva Erms vs N Iterasi')
plt.xlabel('Rms Eror')
plt.ylabel('N Iterasi')
plt.show()

output :

- Tanpa bobot
Script
# 11812080_MUTIARAISLAMIA_RTGB
import numpy as np
import matplotlib.pyplot as plt
import copy
from numpy.linalg import inv

# Station Position
x = [0, 10, 20, 30]
z = [0, 0, 0, 0]
n = len(x)

# True Hyposenter
xo = 12
zo = 10
to = 0
# Model velocity 1 layer
V = 7

# forward modelling to calculate traveltime from hyposenter to station


t = []
for i in range(n):
t.append((1 / V) * np.sqrt((z[i] - zo) ** 2 + (x[i] - xo) ** 2))

# Add noise to traveltime data


noise = np.random.rand() * 0.03 * np.mean(t)
ti = t + noise

# Add outlier data


ti[n - 1] = ((1 / V) * np.sqrt((z[n - 1] - zo) ** 2 + (x[n - 1] - xo) ** 2)) + np
.random.rand() * 0.5 * np.mean(t)

# Guess the initial position


M = [15, 30]
init_position = copy.deepcopy(M)
M1 = []

# Create weighted matrix


W = np.eye(n)

# Assign weighted matrix


W[n - 1][n - 1] = 0.1
# W[i][i] = abs(ti[i]/(ti[i]-np.mean(ti)))
print(W)

xhipo = [init_position[0]]
yhipo = [init_position[1]]
Erms = []

# Inversion without weighted factor


# Iterasi 1000
for niter in range(1000):
gm = []
dgm_dm1 = []
dgm_dm2 = []
for i in range(n):
gm.ap-
pend(to + (1 / V) * (np.sqrt((x[i] - M[0]) ** 2 + (z[i] - M[1]) ** 2)))
dgm_dm1.append((1 / V) * (-
1 * (x[i] - M[0])) / (np.sqrt((x[i] - M[0]) ** 2 + (z[i] - M[1]) ** 2)))
dgm_dm2.append((1 / V) * (-
1 * (z[i] - M[1])) / (np.sqrt((x[i] - M[0]) ** 2 + (z[i] - M[1]) ** 2)))
J = np.zeros((n, 2))
for i in range(n):
J[i][0] = dgm_dm1[i]
J[i][1] = dgm_dm2[i]

Mo = copy.deepcopy(M)
# Add model perturbation from inv to Mo
Mo = np.reshape(Mo, (2, 1))
ti = np.reshape(ti, (n, 1))
gm = np.reshape(gm, (n, 1))
Model = np.mat(Mo) + np.mat(inv(np.mat(J.trans-
pose()) * np.mat(J))) * np.mat(J.transpose()) * (np.mat(ti) - np.mat(gm))
M = [Model[0][0], Model[1][0]]
Data = Model.tolist()
xhipo.append(Data[0][0])
yhipo.append(Data[1][0])

# calculate rms eror


dt = ti - gm #(np.mat(ti) - np.mat(gm))
Erms.append(np.sqrt(np.average(dt ** 2)))

plt.plot(15, 30, 'o', label='initial position', color='black')


plt.plot(xhipo, yhipo, 'o', label='Hypocenter Inversion')
plt.plot(xhipo, yhipo, label='Hypocenter Inversion')
plt.plot(xo, zo, 'o', alpha=0.5, color='red', label='true hypocenter')
plt.title('Hypocenter Determination')
plt.xlabel('X koordinat')
plt.ylabel('Y koordinat')
plt.legend()
plt.figure()
plt.plot(Erms)
plt.title('Kurva Erms vs N Iterasi')
plt.xlabel('Rms Eror')
plt.ylabel('N Iterasi')
plt.show()
output :

2. Percobaan kedua
- Kasus undertermind
Script
# 118120121_MutiaraIslamia_RTGb
import numpy as np

Teta = [10 , 25]


Robs = [0.1523, 0.0947]
Ax = np.sin(Teta[0])**2
Ay = np.sin(Teta[1])**2
Bx = np.tan(Teta[0])**2
By = np.tan(Teta[1])**2
C = Ax*Bx
C1 = Ay*By
d = np.reshape(Robs,(2,1))

G = np.zeros((2,3))
for i in range(2):
G[i][0] = 1
G[1][1] = Ax
G[0][1] = Ay
G[0][2] = C
G[1][2] = C1
m = np.mat(G.transpose())* np.linalg.inv(np.mat(G)*np.mat(G.trans-
pose())) * np.mat(d)
m = m.tolist()
A = m[0][0]
B = m[1][0]
C = m[2][0]

print(' A= ', A)
print(' B= ', B)
print(' C= ', C)

output :
Perhitungan :
- matriks tanpa flatness dan smoothness
script :
# 118120080_mutiaraislamia_RTGB
import numpy as np
import matplotlib.pyplot as plt
# Forward Modelling
V_true = [[5], [5], [5], [5], [5], [3], [4], [5], [5], [3], [2], [5] , [5], [5],
[5], [5]]
v_true = np.reshape(V_true, (16, 1))
S_true = []

for i in range(len(V_true)):
S_true.append(1 / v_true[i])
S_true = np.reshape(S_true, (16, 1))
B = [[1.4142, 0, 0, 0, 0, 1.412, 0, 0, 0, 0, 1.414, 0, 0, 0, 0, 1.4142],[0, 0, 0,
0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 1, 1
, 1, 1],[0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0], [0, 0, 0, 1,0, 0, 0, 1,
0, 0, 0, 1, 0, 0, 0, 1]]
tobs = np.mat(B) * np.mat(S_true)
# Vinitial
V_init = [[4], [4], [4], [4], [4], [4], [4], [4], [4], [4], [4], [4] , [4], [4],
[4], [4]]
v_init = np.reshape(V_init, (16, 1))

i = 0
err = []

for iter in range(1000):


S_init = []
for i in range(len(V_init)):
S_init.append(1 / v_init[i])
S_init = np.reshape(S_init, (16, 1))
t_init = np.mat(B) * np.mat(S_init)

# Mendapatkan delta t
del_t = np.mat(tobs) - np.mat(t_init)

# Inversi
I = np.eye(16)
e = 0.1
E = (0.1 ** 2) * I
d = del_t
del_m = np.linalg.inv((np.re-
shape(B, (16, 5)) * np.mat(B)) + np.mat(E)) * (np.re-
shape(B, (16, 5)) * np.mat(d))
# Estimasi V baru
for i in range(len(V_init)):
X = del_m * (v_init[i] ** 2)
Y = del_m * (v_init[i])
del_V = (-1 * X) / (1 + Y)
V_baru = v_init + del_V

# Estimasi error

for j in range(len(V_baru)):
res = []
res = (v_true[j] - v_init[j]) ** 2
err.append(np.sqrt(np.sum(res)))
v_init = V_baru
Mat_V = [[3.31899765e+000, 3.31121462e+000, 3.31829360e+000, 3.31899765e+000],[8.
16924714e-
001, 4.00000000e+000, 4.00000000e+000, 4.00000000e+000],[4.10021576e+000, 4.22508
652e+000, 6.40018145e+000, 6.85005906e+000],[6.19815060e+000, 6.85005906e+000, 6.
19815060e+000, 1.25767559e-163]]

plt.imshow(Mat_V)
plt.colormaps()
plt.title('Dampling Solution')
plt.colorbar()
plt.figure()
plt.show()

output :
- matriks flatness
script :
# 118120080_mutiaraislamia_RTGB
import numpy as np
import matplotlib.pyplot as plt
# Forward Modelling
V_true = [[5], [5], [5], [5], [5], [3], [4], [5], [5], [3], [2], [5] , [5], [5],
[5], [5]]
v_true = np.reshape(V_true, (16, 1))
S_true = []

for i in range(len(V_true)):
S_true.append(1 / v_true[i])
S_true = np.reshape(S_true, (16, 1))
B = [[1.4142, 0, 0, 0, 0, 1.412, 0, 0, 0, 0, 1.414, 0, 0, 0, 0, 1.4142],[0, 0, 0,
0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 1, 1
, 1, 1],[0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0], [0, 0, 0, 1,0, 0, 0, 1,
0, 0, 0, 1, 0, 0, 0, 1]]
tobs = np.mat(B) * np.mat(S_true)
# Vinitial
V_init = [[4], [4], [4], [4], [4], [4], [4], [4], [4], [4], [4], [4] , [4], [4],
[4], [4]]
v_init = np.reshape(V_init, (16, 1))

i = 0
err = []

for iter in range(1000):


S_init = []
for i in range(len(V_init)):
S_init.append(1 / v_init[i])
S_init = np.reshape(S_init, (16, 1))
t_init = np.mat(B) * np.mat(S_init)

# Mendapatkan delta t
del_t = np.mat(tobs) - np.mat(t_init)

# Inversi
I = np.eye(16)
e = 0.1
E = (0.1 ** 2) * I
d = del_t
del_m = np.linalg.inv((np.re-
shape(B, (16, 5)) * np.mat(B)) + np.mat(E)) * (np.re-
shape(B, (16, 5)) * np.mat(d))
# Estimasi V baru
for i in range(len(V_init)):
X = del_m * (v_init[i] ** 2)
Y = del_m * (v_init[i])
del_V = (-1 * X) / (1 + Y)
V_baru = v_init + del_V

# Estimasi error

for j in range(len(V_baru)):
res = []
res = (v_true[j] - v_init[j]) ** 2
err.append(np.sqrt(np.sum(res)))
v_init = V_baru
Mat_V = [[3.31899765e+000, 3.31121462e+000, 3.31829360e+000, 3.31899765e+000],[8.
16924714e-
001, 4.00000000e+000, 4.00000000e+000, 4.00000000e+000],[4.10021576e+000, 4.22508
652e+000, 6.40018145e+000, 6.85005906e+000],[6.19815060e+000, 6.85005906e+000, 6.
19815060e+000, 1.25767559e-163]]

plt.imshow(Mat_V)
plt.colormaps()
plt.title('Dampling Solution')
plt.colorbar()
plt.figure()
plt.show()

output :
- matriks smoothness
sxript :
# 118120080_mutiaraislamia_RTGB
import numpy as np
import matplotlib.pyplot as plt
# Forward Modelling
V_true = [[5], [5], [5], [5], [5], [3], [4], [5], [5], [3], [2], [5], [5], [5], [
5], [5]]
v_true = np.reshape(V_true, (16, 1))
S_true = []
for i in range(len(V_true)):
S_true.append(1 / v_true[i])
S_true = np.reshape(S_true, (16, 1))
B = [[1.4142, 0, 0, 0, 0, 1.412, 0, 0, 0, 0, 1.414, 0, 0, 0, 0, 1.4142],[0, 0, 0,
0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 1, 1
, 1, 1],[0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0], [0, 0, 0, 1,0, 0, 0, 1,
0, 0, 0, 1, 0, 0, 0, 1]]
tobs = np.mat(B) * np.mat(S_true)

# Vinitial
V_init = [[4], [4], [4], [4], [4], [4], [4], [4], [4], [4], [4], [4], [4], [4], [
4], [4]]
v_init = np.reshape(V_init, (16, 1))
err = []
Df = np.zeros((16, 16))
Ds = np.zeros((16, 16))
for i in range(16):
for j in range(16):
if i == j:
Df[i][j] = -2
Ds[i][j] = 1
if j + 1 <= 16:
Df[i][j - 1] = 1
Ds[i][j - 1] = -1
if j + 2 <= 16:
Ds[i][j-2] = 1

Wmf = np.mat(Df.transpose()) * np.mat(Df)


for iter in range(1000):
S_init = []
for i in range(len(V_init)):
S_init.append(1 / v_init[i])
S_init = np.reshape(S_init, (16, 1))
t_init = np.mat(B) * np.mat(S_init)
# Mendapatkan delta t
del_t = np.mat(tobs) - np.mat(t_init)

# Inversi
d = del_t
del_m = np.linalg.inv((np.re-
shape(B, (16, 5)) * np.mat(B)) + np.mat(Wmf)) * (np.re-
shape(B, (16, 5)) * np.mat(d))

# Estimasi V baru
for i in range(len(V_init)):
X = del_m * (v_init[i] ** 2)
Y = del_m * (v_init[i])
del_V = (-1 * X) / (1 + Y)
V_baru = v_init + del_V

# Estimasi error

for j in range(len(V_baru)):
res = []
res = (v_true[j] - v_init[j]) ** 2
err.append(np.sqrt(np.sum(res)))
v_init = V_baru

Mat_V2 = [[-62.75033788, -28.97074457, -48.9686493, -291.41587276],[-


58.22378147, -
256.35879101, 555.20428394, 27.65154832],[71.7034838, 253.99975264, 55.48432212,
288.06637541], [78.31391324, 271.39744517, -67.50962805, 1.2585954]]

plt.imshow(Mat_V2)
plt.colormaps()
plt.title('Flatness Solution')
plt.colorbar()
plt.figure()
plt.show()
hasil :

3. Percobaan ketiga
Script :
# 118120080_mutiaraislamia_RTGB
import numpy as np
import matplotlib.pyplot as plt
# Forward Modelling
V_true = [[5], [5], [5], [5], [3], [5], [5], [5], [5]]
v_true = np.reshape(V_true, (9, 1))
S_true = []
for i in range(len(V_true)):
S_true.append(1 / v_true[i])
S_true = np.reshape(S_true, (9, 1))
B = [[1.4142, 0, 0, 1.414, 0, 0, 0, 0, 1.4142], [0, 0, 0, 1, 1, 1, 0
, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 1],
[0, 1, 0, 0, 1, 0, 0, 1, 0], [0, 0, 1, 0, 0, 1, 0, 0, 1]]
tobs = np.mat(B) * np.mat(S_true)

# Vinitial
V_init = [[4], [4], [4], [4], [4], [4], [4], [4], [4]]
v_init = np.reshape(V_init, (9, 1))

i = 0
err = []
for iter in range(1000):
S_init = []
for i in range(len(V_init)):
S_init.append(1 / v_init[i])
S_init = np.reshape(S_init, (9, 1))
t_init = np.mat(B) * np.mat(S_init)

# Mendapatkan delta t
del_t = np.mat(tobs) - np.mat(t_init)

# Inversi
I = np.eye(9)
e = 0.1
E = (0.1 ** 2) * I
d = del_t
del_m = np.linalg.inv((np.re-
shape(B, (9, 5)) * np.mat(B)) + np.mat(E)) * (np.reshape(B, (9, 5)) * np.mat(d))

# Estimasi V baru
for i in range(len(V_init)):
X = del_m * (v_init[i] ** 2)
Y = del_m * (v_init[i])
del_V = (-1 * X) / (1 + Y)
V_baru = v_init + del_V

# Estimasi error

for j in range(len(V_baru)):
res = []
res = (v_true[j] - v_init[j]) ** 2
err.append(np.sqrt(np.sum(res)))
v_init = V_baru
Mat_V = [[8.89559944e-
001, 3.76789760e+000, 5.29822893e+001], [4.00000000e+000, 2.48505698e+001, -
4.04355132e+001],[-1.44857459e-011, 9.36830144e+000, 9.15871924e-163]]

plt.imshow(Mat_V)
plt.colormaps()
plt.title('Damped Solution')
plt.colorbar()
plt.figure()
plt.show()
Output :

Pembahasan :
Pada partikum inversi ini kita melakukan percobaan Informasi “A Priori” Model Refer-
ensi,Flatness Dan Smoothness. Pada pratikum dilakukan dua percobaan yaitu membuat Penentuan
lokasi hiposenter gempa dengan model referensi dengan bobot dan tanpa bobot. Dan melakukan
perhitungan Inversi dengan Kondisi Under-determined menggunakan codingan dan manual. Pada
percobaan pertama didapatkan true hiposenter dekat stasiun jika percobaan menggunakan bobot.se-
dangkan percobaan tanpa bobot titik true hiposenter jauh dari stasiun. Pada permasalahan pertama
yaitu mengenai pengaruh pembobotan pada data observasi terhadap model parameter hasil inversi
dalam penentuan lokasi hiposenter gempa dengan model referensi. Hasilnya didapat inversi linear
berbobot dan tanpa bobot dengan misfit. Misfit adalah nilai kurva ketidakcocokan, jika nilai misfit
semakin kecil maka nilai ketidakcocokannya semakin kecil juga, sehingga model berarti bagus jika
memiliki misfit yang kecil. Ketelitian tertinggi jika dilihat pada gambar adalah dengan dilakukannya
pembobotan untuk memaksimalkan hasil.
Pada percobaan kedua didapatkan perhitungan codingan sebesar hasil sebesar
A=0.14365812733711014, B= -0.16551990220451862, C= 0.09276604204467179 dan perhi-
tungan manual didapatkan nilai sebesar A=0,143543275,B=-0,168038549,C= 0,093656293. Dapat
disimpulkan bahwa hasil perhitungan codingan dan manual mengahsilkan nilai yang sama dan tidak
ada perbedaan yang signifikan antara kedua perhitungan tersebut. pada percobaan ini juga dilakukan
perhitungan inversi menngunakan matriks slowness dan flatness, solusi inversi dengan matriks
slowness dan solusi inversi dengan matriks flatness. Dimana fungsi dari slowness dan flatness ini
yaitu untuk meminimumkan harga parameter model yang saling berdekatan. Dapat kita lihat pada
hasil pemrograman bahwa hasil solusi inversi dengan menggunakan slowness dan flatness lebih
baik dari pada solusi inversi tanpa menggunakan matriks slowness dan flatness.
Pada problem 3 dilakukan percobaan solusi inversi tomografi kecepatan seismic 2D. Dilihat
pada gambar, warna kuning memiliki kecepatan yang paling tinggi sedangkan kecepatan yang pal-
ing rendah berwarna ungu hal ini ditunjukkan oleh skala warna yang ditampilkan.
V. Kesimpulan
Kesimpulan pratikum modul ini yaitu :
1. Untuk melakukan perhitungan inversi dapat menggunakan Informasi “a priori” untuk
menghadirkan solusi pada inversi dimana jumlah data observasi (N) lebih sedikit
dibandingkan jumlah parameter model yang ingin dicari (M), N<M, yang lebih dikenal
dengan kondisi under-determined.
2. Pembobotan pada perhitungan dapat meminimalkan olutlier pada dat
3. Penggunaan flatness dan smothnes pada data berfungsi untuk meminimumkan harga pa-
rameter model yang saling berdekatan.
4. Perhitungan inversi dapat dingunakan untuk mencari tomografi kecepatan seismik 2D.\

DAFTAR PUSTAKA
Grandis,hendra. 2008. Buku Inversi Geofisika. Teknik Geofisika Geofisika,FTTM – ITB.
Modul 3 Inversi. INFORMASI “A PRIORI” MODEL REFERENSI, FLATNESS DAN
SMOOTHNESS. Institut Teknologi Sumatera.
LAMPIRAN

Anda mungkin juga menyukai