MODUL KE – 02
INVERSI LINEAR MENGGUNAKAN BOBOT
Oleh:
Asisten :
Wahyu Eko Junian
Lestari Sukma Apriliana
Dwinda Aldatri
Mustika
Rury Delvatiwi Martianda
Yola Wulanda Masri
2020/2021
I. Tujuan Praktikum:
Mampu mendemonstrasikan pengaruh ketidak pastian data pada solusi inversi linier dan
ketidakpastian solusi pada inversi linier.
II. Dasar teori
Metode inversi yang baik hendaknya dapat memperhitungkan kesalahan data atau
ketelitian data dalam proses penyelesaian inversi. Dengan demikian solusi yang diperoleh
secar objektif sesuai dengan kualitas data. Umumnya pengaruh data dengan kesalahan
cukup besar (atau tingkat ketelitian rendah). Harus diminimumkan agar hasil inversinya
merupakan representasi data dengan tingkat ketelitian yang baik. Hal tersebut dapat
dilakukan melalui pemboboan data dalam penyelesaian masalah inversi.
Pada dasarnya kita dapat memberikan bobot relatif pada data sedemikian hingga
data dengan kesalahan besar tidak akan berpengaruhpada solusi inversi. Dengan kata lain,
solusi inversi akan lebih ditentukan oleh data yang berkualitas baik. Faktor pembobot data
ke-i atau wi dimasukkan pada perhitungan kesalahan kuadratik sehingga diperoleh:
Jika data dianggap memiliki kesalahan cukup besar maka diberi bobot kecil agar kontribusi
pada penjumlahan tidak terlau signifikan. Jika informasi mengenai tingkat ketelitian data
tersedia lebih lengkap maka pembobotan dapat dilakukan dengan mengacu pada tingkat
ketelitian data tersebut dan tidak bersifat subjektif dengan menggunakan harga ekstrim.
Pemberian bobot secara objektif dapat dilakukan dengan menggunakan standar
deviasi data sebagai bobot sehingga persamaan menjadi.
Dalam hal ini wi = σi-2 adalah kuadrat dari standar deviasi atau variansi. Data dengan
ketelitian rendah memiliki standar deviasi yang besar sehingga bobotnya kecil dan
sebaliknya data dengan ketelitian tinggi memiliki standar deviasi sehingga bobotnya besar.
Penggunaan standar deviasi sebagai bobot juga dapat diartikan bahwa data yang
tidak terlalu akurat (dengan standar deviasi cukup besar) akan memberikan toleransi yang
juga cukup besar pada prediksi dcal untuk dianggap cocok dengan data hasil pengamatan.
Demikian pula sebaliknya, perbedaan kecil antara data perhitungan dengan data
pengamatan yang cukup teliti (dengan standar deviasi kecil ) akan memberikan konstribusi
cukup besar pada perhitungan kesalahan kuadratik total yang harus diminimumkan. Oleh
karen aitu harus dicari model yang respon nya sangat dekat dengan data yang yang cukup
teliti tersebut agar mengahsilkan kesalahan total minimun.
Secara lebih umum pembobotan data dapat dinyatakan dalam bentuk matriks.
Dalam notasi matriks dapat dituliskan sebagai berikut :
Untuk kasus lebih umum maka We bukan berbentuk matriks diagonal, namun We = Cd-1
dimana Cd disebut sebagai matriks ko-variansi (covaiance) dengan elemen – elemen
sebagai berikut :
Ko-variansi adalah fungsi dari variansi masing – masing data dan koefiensi korelasi
yang menyatakan keterkaitan antara satu data dengan lainnya jika i = j makan
elemen diagonal matriks Cd adalah variansi data ke-i atau cii = σi2 .
Solusi permasalahan inversi linera dengan pembobotan data dapat diperoleh
dengan cara sam aseperti pada penurunan persamaan dan dapat
dibuktikan bahwa hasilnya adalah sebagai berikut :
Pada umumnya untuk menyederhanakan masalah maka data dianggap tidak terkorelasi satu
dengan yang lainnya atau independen sehingga matriks pembobotan We adalah matriks
diagonal dengan elemen diagonal adalah variansi data. Inversi linear dengan pembobtan
data sangat umum digunakan untuk memperoleh solusi optimal. Metode inversi linear
berbobot sering sebagai weighted linear inversion.
III. Langkah Pengerjaan
1. Buka python atau google collab.
2. Tulis script problem 1 untuk Melakukan perhitungan inversi linear berbobot versus
non berbobot (forward modeling)
3. input data yang digunakan
4. Input rumus yang akan digunakan
5. Ketik print yang nantinya akan menampilkan hasil run
6. jika sudah selesai klik kanan dan cari tulisan RUN.
7. Setelah mucul hasilnya, screenshoot hasil dan analisis.
8. Jika sudah semuah ulangi tahap-tahap diatas pada percobaan problem 2 untuk
Melakukan perhitungan non berbobot dan berbobot. problem 3 untuk Melakukan
perhitungan inversi Aplikasi Inversi Linear Berbobot pada Tomografi Seismik.
Diagram alir
Mulai
Input
modul
Input
data
Melakukan
perhitungan inversi
Plot hasil
selesai
IV. Hasil dan Pembahasan
Problem 1 :
import numpy as np
import matplotlib.pyplot as plt
from numpy.linalg import inv
#bobot=0.01
#for i in range(N):
#w[i][i]=bobot
#print(w)
d=np.reshape(Tobs,(N,1))
inv_weighted=[]
for i in range(len(Z)):
inv_weighted.append(b0+b1*Z[i])
inv_without_weighted=[]
for i in range(len(Z)):
inv_without_weighted.append(a0+a1*Z[i])
import numpy as np
import matplotlib.pyplot as plt
import copy
from numpy.linalg import inv
# Station Position
x = [8, 10, 15, 20]
z = [0, 0, 0, 0]
n = len(x)
# Hiposenter
x0 = 15
z0 = 12
t0 = 0
print(W)
xhipo = [init_position[0]]
yhipo = [init_position[1]]
Erms = []
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.transpose())*np.mat(W) *np.mat(J)))
* np.mat(J.transpose())*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])
plt.show()
output :
Problem 2 (tanpa bobot) :
import numpy as np
import matplotlib.pyplot as plt
import copy
from numpy.linalg import inv
# Station Position
x = [8, 10, 15, 20]
z = [0, 0, 0, 0]
n = len(x)
# Hiposenter
x0 = 15
z0 = 12
t0 = 0
print(W)
xhipo = [init_position[0]]
yhipo = [init_position[1]]
Erms = []
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.transpose())*np.mat(W) *np.mat(J)))
* np.mat(J.transpose())*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])
plt.show()
output :
Problem 3 :
Script :
r1=2000; r2=-1000
s1a=0; s1b=-250; s2a=0; s2b=-663; s3a=1000; s3b=0
t1=1.580
t2=1.480
t3=1.160 #0.780 + 0.380
#mencari nilai l
l1=((r1-s1a)**2+(r2-s1b)**2)**0.5
l2=((r1-s2a)**2+(r2-s2b)**2)**0.5
l3=((r1-s3a)**2+(r2-s3b)**2)**0.5
#print(l1,l2,l3)
la=l1/2
lb=l2/2
lc=l3
#print(la,lb,lc)
#mencari V0
v0=((l1/t1)+(l2/t2)+(l3/t3))/3
#print(v0)
#menghitung Tc
tc1=l1/v0
tc2=l2/v0
tc3=l3/v0
#print(tc1,tc2,tc3)
#menghitungde delay time
d1=t1-tc1
d2=t2-tc2
d3=t3-tc3
#print(d1,d2,d3)
z=[la,lb,lc]
z1=[la,lb,0]
t=[d1,d2,d3]
G=np.zeros((len(z),2))
#membuat pembobotan
w=np.identity(len(z))
bobot =0.313
w1=w*1/(bobot**2)
print ('matriks bobot: ')
print (w1)
d = np.reshape(t,(3,1))
m=np.mat(inv(np.mat(G.transpose())*np.mat(w)*np.mat(G)))*np.mat(G.transpose())*np
.mat(w)*np.mat(d)
m = m.tolist()
a0 = m[0][0]
a1 = m[1][0]
#print(a0,a1)
#menghitung nilai delta v
dv1=-a0*((v0)**2)
dv2=-a1*((v0)**2)
#print(dv1,dv2)
#nilai travel time
V1=v0+dv1
V2=v0+dv2
output
perhitungan software
perhitungan manual
Pembahasan :
Pada pratikum ini kita melakukan percobaan untuk menampilkan grafik inversi
linear menggunakan bobot. Penggunaan bobot ini berfungsi untuk mengurangi pengaruh
dari oulier pada hasil inversi. Pada script pertama didapatkan grafik inversi berbobot vs
tanpa bobot. Pada hasil, dapat dilihat sebaran data ketika diberi pembobotan mendapatkan
misfit yang kecil atau error yang kecil sehingga data yang dihasilkan mendekati data yang
sebenanrnya. Sedangkan untuk data yang tanpa pembobotan mengahsilkan nilai misfit yang
besar. Pada percobaan ini jika kita mengulang – ulang compile pada pyhthon akan
mengahasilkan misfit yang berbeda-beda hal ini dikarenakan pengaruh dari error nya dan
untuk mengahsilkan misfit ini menggunakan metode trial error atau coba-coba.
DAFTAR PUSTAKA
Grandis, Hendra., Pengantar Pemodelan Inversi, (2009),Himpunan Ahli Geofisika Indonesia
(HAGI).
Kurniawan, D. 2008. Regresi Linear (Linear Regression). R Foundation for Statistical
computing
Tim Penyusun Modul Pratikum Inversi.2021.Inversi Linear Menggunakan bobot.ITERA
LAMPIRAN