Anda di halaman 1dari 43

LAPORAN AKHIR

INVERSI GEOFISIKA TG 3004

MODUL KE – 3
INFORMASI “A PRIORI” MODEL REFERENSI, FLATNESS DAN SMOOTHNESS

Oleh:
Muhamad Arif Samsudin 120120158

Asisten :
Alifah Iftinan 119120042
Andika Bonardo Sipahutar 119120122
Bernard Cavin Ronlei 119120087
Kiki Harfianza 119120111
Mu'amar Hafiz 119120084
Nisa Nur Azizah 119120027

PROGRAM STUDI TEKNIK GEOFISIKA


JURUSAN TEKNOLOGI PRODUKSI DAN INDUSTRI
INSTITUT TEKNOLOGI SUMATERA
2022/2023
I. TUJUAN

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

A. 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 berikut,

Solusi inversi dikatakan sederhana jika 𝐿 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 under-determined adalah
sebagai berikut,

Meskipun demikian, Banyak kasus permasalahan dalam inversi geofisika merupakan gabungan
antara under-determined dan over-determined sehingga disebut mixed determined. Contohnya
pada inversi tomografi akustik.
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
dominan, 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
meminimumkan 𝛷(𝐦) adalah dengan mencari turunanya terhadap model dan dibuat sama dengan
nol. Solusi 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
data pada bagian under-determined. Nilai 𝜀 2 disebut sebagai faktor redaman atau parameter
regularisasi. 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, 𝐸 = ‖𝐞‖ ≤ 𝛿
ii. Kesalahan prediks data minimum dengan norm model
B. MODEL REFERENSI, FLATNESS DAN SMOOTHNESS

Sebelumnya sudah disebutkan bahwa konsep solusi inversi yang sederhana pada kondisi
underdetermined 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 sebagai 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
berdekatan tidak terlampau jauh. Secara matematis dapat dituliskan dalam bentuk persamaan
sebagai berikut,

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 𝐖𝐦 = 𝐃𝐓𝐃, maka solusi umum inversi dengan model flatness dan smoothness adalah sebagai
berikut,

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

Jika pada data diberikan bobot, 𝐖𝒆 maka bentuk umum persamaan solusi inversi dengan informasi
“a priori” adalah sebagai berikut,

III. LANGKAH PENGERJAAN

a) Langkah Kerja
1) Problem 1 Penentuan lokasi hiposenter gempa dengan model referensi

1. Import modul numpy, matplotlib dan copy


import numpy as np
import matplotlib.pyplot as plt
import copy
2. Input data posisi station
x = [0, 10, 20, 30]
z = [0, 0, 0, 0]
n = len(x)
3. Input Hiposenter
x0 = 12
z0 = 10
t0 = 0
4. Lakukan Forward Modelling
t = []
for i in range (n):
t.append((1/v) * np.sqrt((z[i]- z0)**2 + (x[i] -x0)**2 ))
5. Tambahkan noise pada travel time
noise = np.random.rand() * 0.03 * np.mean(t)
ti = t + noise
6. Tambahkan data Outlier
ti[n-1] = ((1/v) * np.sqrt((z[n-1]- z0)*2 + (x[n-1] -x0)**2 )) +
np.random.rand() * 0.5 * np.mean(t)
7. Tembakan awal posisi hiposenter
M = [15, 30]
init_position = copy.deepcopy(M) M1 = []
8. Tambahkan bobot / Tanpa bobot
W [n-1][n-1] = 0.1
print(W)
xhipo = [init_position[0]]
yhipo = [init_position[1]]
Erms = []
9. 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])
10. Menghitung nilai rms error
dt = ti - gm
Erms.append(np.sqrt(np.average(dt**2)))
11. Plot hasil (selesai).

2) Problem 2 Inversi dengan Kondisi Under-determined


1. Import modul
import numpy as np
import math
2. Input parameter
Sudut_Datang1=10
Sudut_Datang2=25
teta1=math.radians(Sudut_Datang1)
teta2=math.radians(Sudut_Datang2)
Sudut=[teta1, teta2]
3. Input data matrik G
Sx=(math.sin(Sudut[0]))**2
Sy=(math.sin(Sudut[1]))**2
Tx=(math.tan(Sudut[0]))**2
Ty=(math.tan(Sudut[1]))**2
ST1=Sx*Tx
print(ST1)
ST2=Sy*Ty
print(ST2)
d=np.reshape(Robs,(2,1))
print('d=',d)

G=np.zeros((2,3))
for i in range(2):
G[i][0]=1
G[0][1]=Sx
G[1][1]=Sy
G[0][2]=ST1
G[1][2]=ST2
print('G=',G)
4. Input fungsi under-determinan
m=np.mat(G.transpose())*np.linalg.inv(np.mat(G)*np.mat(G.transpose()
))*np.mat(d)
m=m.tolist()
A=m[0][0]
B=m[1][0]
C=m[2][0]
5. Print hasil
print('A=',A)
print('B=',B)
print('C=',C)

3) Problem 3 Inversi Tomografi Kecepatan Seismic 2D


1. Tentukan konfigurasi Source dan Receiver secara berpasangan.

2. Lakukan forward modelling untuk mengestimasi nilai tobs dari nilai V(model
kecepatan) yang telah diketahui.

3. Lakukan inisiasi nilai V, S , dan t

4. Lakukan perhitungan delay time

5. Lakukan inverse modelling dengan mengestimasi nilai kecepatan setiap blok


Estimasikan V baru

6. Estimasi nilai error dan lakukan pembentukan matriks untuk V baru.

7. Lakukan forward modelling dengan memvariasikan kecepatan pada salah satu


model yang berbeda

8. Buat konfigurasi source dan receiver sesuai yang akan kehendaki. ( 20model)

9. Hitung waktu tempuh masing – masing pasangan source dan receiver Lakukan

10. kembali langkah diatas pada problem 3 dengan menggunakan solusi inversi, tanpa
matrik flatness atau smoothness, menggunakan matriks flatness dan menggunakan
matriks smoothness
b) Diagram Alir
1) Problem 1
2) Problem 2
3) Problem 3
IV. HASIL DAN PEMBAHASAN

1) Problem 1 Penentuan lokasi hiposenter gempa dengan model referensi


a. Tanpa Bobot
1.1 Variasi V = 4

Kurva Erms Vs N Iterasi V = 4

Hypocenter Determination V = 4
1.2 Variasi V = 5

Kurva Erms Vs N Iterasi V = 5

Hypocenter Determination V = 5
1.3 Variasi V = 6

Kurva Erms Vs N Iterasi V = 6

Hypocenter Determination V= 6
1.4 Variasi V = 7

Kurva Erms Vs N Iterasi V = 7

Hypocenter Determination V = 7
b. Dengan Bobot

1.5 Variasi V = 4

Kurva Erms Vs N Iterasi V = 4

Hypocenter Determination V= 4
1.6 Variasi V = 5

Kurva Erms Vs N Iterasi V = 5

Hypocenter Determination V= 5
1.7 Variasi V = 6

Kurva Erms Vs N Iterasi V = 6

Hypocenter Determination V= 6
1.8 Variasi V = 7

Kurva Erms Vs N Iterasi V = 7

Hypocenter Determination V= 7
2) Problem 2 Inversi dengan Kondisi Under-determined

Tampilan VScode Problem 2

Hasil Perhitungan Problem 2 Menggunakan Python


3) Problem 3 Inversi Tomografi Kecepatan Seismic 2D

3.1 Solusi inversi tanpa model flatness dan smothness (3x3)

Matrik inversi tanpa model flatness dan smothness (3x3)


3.2 Solusi inversi tanpa model flatness dan smothness (8x8)

Matrik inversi tanpa model flatness dan smothness (8x8)


3.3 Model flatness (8×8)

Matrik model flatness (8×8)


3.4 Model smoothness (8x8)

Matrik model smoothness (8x8)


PEMBAHASAN
Pada Problem 1 dilakukan Penentuan lokasi hiposenter gempa dengan model referensi.
Penentuan lokasi hiposenter gempa dengan model referensi melibatkan pengukuran waktu
kedatangan gelombang seismik dari gempa pada beberapa stasiun seismik yang terletak di sekitar
daerah gempa. Model referensi yang digunakan adalah model matematis yang menggambarkan
bagaimana kecepatan gelombang seismik bervariasi di dalam Bumi. Pada problem 1 ini dilakukan
dengan variasi model keccepatan gelombang 1 layer dengan nilai V = 4,5,6,7,8 yang dilakukan
pada pembobotan dan tanpa pembobotan. Hasilnya pada kurva yang memiliki bobot memiliki data
yang mendekati hiposenter sebenarnya sedangkan pada kurva yang tidak memiliki bobot memiliki
jarak yang cukup jauh. Dengan demikian, pengaruh data outlier tersebut perlu kita minimalkan
dampaknya terhadap hasil inversi, yaitu dengan cara memberikan bobot pafda setiap data. Data
outlier diberikan bobot rendah dengan tujuan memerkecil pengaruhnya terhadap hasil inversi. Pada
kasus satu lapisan dimana hanya terdapat satu nilai kecepatan (misal V) maka sinar gelombang
dapat diasumsikan berupa garis lurus, sehingga persamaan untuk menghitung waktu tempuh adalah
sebagai berikut,

Dimana 𝑇𝑜 merupakan waktu asal (origin time), yaitu waktu awal terjadinya rupture dan 𝑆
merupakan jarak yang ditempuh sinar dari sumber gempa ke stasiun yang dihitung melalui
persamaan jarak. jika pada prakteknya data waktu tempuh yang kita observasi terdapat kesalahan,
misal pada saat kita picking waktu tiba gelombang P, karena faktor noise maka kita tidak terlalu
yakin dengan hasil picking kita (onsite pertama dari gelombang P tidak jelas) maka data tersebut
akan menyebakan kesalahan pula pada penentuan posisi hiposenter. Dengan demikian, pengaruh
data outlier tersebut perlu kita minimalkan dampaknya terhadap hasil inversi, yaitu dengan cara
memberikan bobot pafda setiap data. Data outlier diberikan bobot rendah dengan tujuan
memerkecil pengaruhnya terhadap hasil inversi.
Data outlier juga dapat mempengaruhi teknik inversi yang digunakan untuk mengoptimalkan
perkiraan awal lokasi hiposenter gempa. Jika data outlier tidak dihapus, teknik inversi mungkin
akan memberikan perkiraan akhir lokasi hiposenter yang tidak akurat. Oleh karena itu, penting
untuk mengidentifikasi dan menghilangkan data outlier sebelum melakukan penentuan lokasi
hiposenter gempa dengan model referensi. Namun, jika data outlier sulit untuk dihapus karena
adanya faktor-faktor yang mempengaruhinya, dapat dilakukan analisis sensitivitas untuk
memperkirakan pengaruhnya terhadap hasil akhir dan mengambil tindakan yang sesuai untuk
memperbaiki hasilnya.
Pengaruh bobot dalam penentuan lokasi hiposenter gempa dengan model referensi Bobot dapat
meningkatkan keakuratan lokasi hiposenter gempa dengan memperhitungkan ketidakpastian data
waktu tiba pada setiap stasiun seismik. Dengan memberikan bobot yang lebih besar pada data
waktu tiba yang lebih akurat, perkiraan awal lokasi hiposenter gempa yang dihasilkan dapat
menjadi lebih akurat. Bobot dapat menurunkan pengaruh data yang buruk atau tidak akurat pada
hasil akhir penentuan lokasi hiposenter gempa. Dengan memberikan bobot yang lebih kecil pada
data waktu tiba yang buruk atau tidak akurat, teknik inversi yang digunakan untuk mengoptimalkan
perkiraan awal lokasi hiposenter dapat menyesuaikan dengan data yang lebih baik dan akurat.
Namun, jika bobot diberikan secara tidak tepat, hal ini dapat menyebabkan kesalahan dalam
penentuan lokasi hiposenter gempa. Misalnya, jika bobot diberikan secara tidak seimbang pada
beberapa stasiun seismik, maka lokasi hiposenter gempa yang dihasilkan dapat terdistorsi secara
signifikan. Oleh karena itu, penting untuk memberikan bobot yang tepat pada data waktu tiba pada
setiap stasiun seismik dalam penentuan lokasi hiposenter gempa dengan model referensi. Bobot
yang tepat harus didasarkan pada tingkat kepercayaan atau ketidakpastian pada data waktu tiba
yang diukur pada masing-masing stasiun seismik, sehingga dapat meningkatkan akurasi hasil akhir
penentuan lokasi hiposenter gempa.
Pada problem 2 dilakukan Inversi dengan Kondisi Under-determined. Jika sistem linear
memiliki lebih sedikit persamaan daripada variabel, maka itu disebut sistem under-determined.
Dalam kasus ini, mungkin tidak mungkin untuk menyelesaikan sistem secara eksak dan solusinya
menjadi tidak terdefinisi atau memiliki solusi yang tidak unik. adapun data yang diperoleh adalah
data hasil Suatu pengamatan koefisien refleksi gelombang seismic terhadap sudut dating (incident
angle).

Pada kasus under-determined data tidak cukup memberikan kendala untuk menentukan solusi atau
model secara unik (tunggal). Untuk mengatasi masalah itu, diperlukan informasi tambahan yang
diharapkan dapat memberikan kendala atau batasan terhadap model yang dicari. Pada contoh
regresi garis lurus informasi tersebut misalnya:
- Informasi mengenai titik lain (diperoleh secara independent) yang harus dilalui garis yang
dimaksud sehingga N=M
- Asumsi berdasarkan sumber informasi lainnya mengenai harga salah satu parameter model.
Dengan demikian N=M=1, karena harga salah satu parameter model sudah diketahui
Jika ditinjau permasalahan inversi linier d = Gm dimana N<M (purely under-determined). Terdapat
banyak solusi dengan kesalahan prediksi data E=0. Selama hubungan antara data dengan parameter
model d = Gm bersifat konsisten maka sebenarnya data memberikan informasi mengenai parameter
model, namun belum mampu menentukan model secara unik. Untuk memperoleh solusi maka kita
perlu suatu cara yang dapat menentukan atau memilih secara objektif salah satu dari tak-hingga
solusi dengan E=0. Untuk itu perlu ditambahkan informasi lain yang tidak ada dalam hubungan d
= Gm.
Informasi tambahan yang sering disebut informasi ‘a priori’ merupakan kuantifikasi harapan
mengenai karakteristik solusi yang tidak didasarkan pada data pengukuran. Contohnya adalah pada
regresi garis lurus dengan hanya satu data. Informasi a priori dapat mempersempit daerah pencarian
solusi yang mungkin. Pemilihan informasi a priori harus dilakukan dengan cermat sehingga solusi
yang diperoleh memang dapat menjelaskan data pengamatan dan bukan sebagai akibat pengaruh
informasi a priori yang dominan. Salah satu informasi a priori yang dapat digunakan dalam
penyelesaian masalah inversi purely under-determined adalah asumsi bahwa solusi yang dicari
bersifat sederhana.
Adapun hasil yang didapat dengan python yaitu:

Dan pada perhitungan manual:


A= 0.163
B= -0.362
C= -0.094

Jika dilihat, hasil perhitungan dengan python dan manual memiliki selisih yang tidak terlalu
signifikan, bahkan bisa dapat dikatakan sama. Kriteria norm model minimum dapat mengarah pada
solusi inversi atau model yang dekat dengan nol yang jelas tidak realistis. Meskipun demikian,
penggunaan informasi ‘a priori’ terbukti dapat mengatasi permasalahan inversi linier
underdetermined maupun mixed-determined.
Pada problem 3 dilakukan Inversi Tomografi Kecepatan Seismic 2D. Tomografi Kecepatan
Seismic 2D adalah teknik untuk menghasilkan gambar 2D dari kecepatan gelombang seismik di
dalam bumi. Pada problem 3 ini dilakukan beberapa variasi, diantaranya:

Solusi inversi tanpa model flatness dan smothness dengan matriks 3x3 dan matriks 8x8
pada dasarnya ukuran matrik ini tidak akan mempengaruhi perbedaan pada proses perhitungan,
karena berapapun ukurannya akan memiliki konsep perhitungan yang sama. Operasi matriks pada
data yang tidak memiliki sifat flatness dan smoothness dapat dilakukan seperti pada data yang
memiliki sifat tersebut. Namun, hasilnya mungkin tidak seakurat atau sebaik pada data yang halus
dan datar. Berikut ini adalah beberapa hal yang perlu diperhatikan ketika melakukan operasi
matriks pada data yang tidak memiliki sifat flatness dan smoothness:

1) Menyesuaikan ukuran matriks: Pastikan bahwa ukuran matriks yang digunakan sesuai
dengan dimensi data. Pada kali ini digunakan ukuran 3x3 dan 8x8.
2) Pilih metode operasi yang tepat: Pilihlah metode operasi yang tepat untuk data yang Anda
miliki. Misalnya, untuk data yang tidak halus, Anda mungkin perlu menggunakan kernel
yang lebih besar saat melakukan konvolusi.
3) Normalisasi data: Lakukan normalisasi data sebelum melakukan operasi matriks.
Normalisasi dapat membantu memperbaiki akurasi operasi pada data yang tidak halus dan
datar.
4) Lakukan operasi dengan hati-hati: Operasi pada data yang tidak halus dan datar
memerlukan perhatian ekstra dan hati-hati. Pastikan bahwa Anda memeriksa hasil operasi
secara berkala untuk memastikan bahwa tidak ada kesalahan yang terjadi.
5) Pertimbangkan penggunaan teknik pemrosesan gambar: Jika Anda bekerja dengan data
yang tidak halus dan datar secara konsisten, pertimbangkan untuk menggunakan teknik
pemrosesan gambar seperti penghalusan (smoothing) atau normalisasi citra (image
normalization) untuk memperbaiki kualitas data sebelum melakukan operasi matriks.
Dalam semua kasus, penting untuk diingat bahwa hasil operasi matriks pada data yang tidak halus
dan datar mungkin tidak sama akuratnya seperti pada data yang halus dan datar. Oleh karena itu,
pastikan bahwa Anda memeriksa hasil operasi secara berkala untuk memastikan bahwa tidak ada
kesalahan yang terjadi.

Inversi tomografi kecepatan seismic 2D dengan Model flatness (8×8). Inversi tomografi
kecepatan seismic 2D dengan model flatness merupakan metode untuk memperkirakan distribusi
kecepatan gelombang di bawah permukaan Bumi dengan menggunakan data seismik 2D dan
model flatness sebagai prior. Model flatness adalah suatu bentuk prior yang digunakan selama
proses inversi untuk membantu mengurangi ambiguitas dalam memperkirakan distribusi kecepatan
gelombang seismik. Dalam model flatness, diasumsikan bahwa distribusi kecepatan gelombang
seismik di dalam bumi cenderung mengikuti pola yang relatif datar, dengan perubahan kecepatan
yang terjadi secara bertahap dan tidak tiba-tiba. Dengan menerapkan model flatness sebagai prior,
proses inversi menjadi lebih stabil dan memiliki kecenderungan untuk menghasilkan solusi yang
lebih realistis dan konsisten. Namun, seperti halnya metode inversi lainnya, hasil dari metode
inversi tomografi kecepatan seismic 2D dengan model flatness juga bergantung pada kualitas data
seismik dan kesesuaian model prior yang digunakan.

Inversi tomografi kecepatan seismic 2D dengan model Smoothness (3x3). Pada dasarnya,
metode ini juga melibatkan penerapan prinsip inversi untuk memperkirakan kecepatan gelombang
seismik di dalam bumi dengan mengukur waktu tiba gelombang seismik yang direkam pada
permukaan bumi. Selama proses inversi, data seismik diolah untuk menghasilkan gambaran yang
lebih baik tentang bagaimana gelombang seismik merambat di dalam bumi. Model smoothness
adalah suatu bentuk prior yang digunakan selama proses inversi untuk membantu mengurangi
ambiguitas dalam memperkirakan distribusi kecepatan gelombang seismik. Dalam model
smoothness, diasumsikan bahwa distribusi kecepatan gelombang seismik di dalam bumi cenderung
berubah secara perlahan dan mulus, tanpa terjadi perubahan yang tiba-tiba atau tidak wajar.
Dengan menerapkan model smoothness sebagai prior, proses inversi menjadi lebih stabil dan
memiliki kecenderungan untuk menghasilkan solusi yang lebih halus dan konsisten. Hal ini karena
prior smoothness mengurangi kemungkinan terjadinya nilai kecepatan yang tidak wajar atau tidak
konsisten pada permukaan batas lapisan bumi. Namun, seperti halnya metode inversi lainnya, hasil
dari metode inversi tomografi kecepatan seismic 2D dengan model smoothness juga bergantung
pada kualitas data seismik dan kesesuaian model prior yang digunakan. Selain itu, seiring dengan
semakin kompleksnya model prior yang digunakan, semakin sulit juga untuk menentukan nilai-
nilai parameter yang sesuai untuk memperoleh hasil inversi yang optimal.
V. KESIMPULAN

1. Menyelesaikan persamaan inversi dalam bidang geofisika menggunakan model referensi,


flatness, dan smoothness adalah hal yang umum dilakukan dalam praktik geofisika. Model
referensi, flatness, dan smoothness adalah model prior yang digunakan selama proses
inversi untuk membantu memperkirakan distribusi kecepatan gelombang seismik yang
lebih akurat.

2. Model referensi memiliki fungsi untuk menyesuaikan nilai-nilai kecepatan gelombang awal
yang digunakan selama proses inversi. Hal ini dilakukan untuk memastikan bahwa solusi
inversi tetap konsisten dengan data seismik yang diukur dan tidak menghasilkan nilai-nilai
kecepatan yang tidak wajar atau tidak konsisten pada permukaan batas lapisan bumi.

Model flatness memiliki fungsi untuk memberikan sinyal kepada proses inversi bahwa
distribusi kecepatan gelombang seismik di dalam bumi cenderung berubah secara perlahan
dan tidak tiba-tiba. Model flatness dapat membantu mengurangi kemungkinan terjadinya
nilai kecepatan yang tidak konsisten pada permukaan batas lapisan bumi dan menghasilkan
solusi inversi yang lebih halus.

Model smoothness memiliki fungsi untuk memberikan sinyal kepada proses inversi bahwa
distribusi kecepatan gelombang seismik di dalam bumi cenderung berubah secara perlahan
dan mulus, tanpa terjadi perubahan yang tiba-tiba atau tidak wajar. Model smoothness dapat
membantu mengurangi ambiguitas dalam memperkirakan distribusi kecepatan gelombang
seismik dan menghasilkan solusi inversi yang lebih stabil dan konsisten.

DAFTAR PUSTAKA

Grandis, D. H. (2009). Pengantar Pemodelan Inversi Geofisika. Bandung: Himpunan Ahli


Geofisika Indonesia (HAGI).

Menke, W. (2012). Geophysical Data Analysis: Discrete Inverse Theory. Elsevier Science.

Heryandoko, N., & Nurhandoko, B. E. (2014). Penentuan Model Kecepatan Rambat


Gelombang Seismik 2D pada Daerah Berstruktur Kompleks Menggunakan Metode
Tomografi Terbalik. Jurnal Fisika Flux, 11(1), 45-54.

Nugroho, Y. S., Santoso, D., & Pranowo, W. S. (2017). Inversi Kecepatan Rambat
Gelombang Seismik 2D Metode Traveltime Tomografi pada Data Seismik Refleksi
di Lapangan Gas Cepu, Jawa Timur. Jurnal Fisika FLUX, 14(1), 45-51.

Adnyana, A. A. N., & Febriani, F. (2017). Inversi Tomografi Kecepatan Gelombang


Seismik 2D untuk Mengetahui Karakteristik Bawah Permukaan pada Daerah Gunung
Kelud, Jawa Timur. Jurnal Geologi Kelautan, 15(1), 1-9.

Karyono, K., & Santoso, D. (2020). Inversi Kecepatan Rambat Gelombang Seismik 2D
Dengan Metode Regularisasi Model Flatness. Jurnal Fisika FLUX, 17(1), 15-21.
LAMPIRAN
Script Problem 1 (Tanpa Bobot)
# Modul 3
# Problem 1 tanpa bobot
# Muhamad Arif Samsudin_120120158

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 Hiposenter
x0 = 12
z0 = 10
t0 = 0
# Model Kecepatan Gelombang 1 layer
v = 7
# Forward modelling untuk menghitung travel time dari hiposenter ke station
t = []
for i in range (n):
t.append((1/v) * np.sqrt((z[i]- z0)**2 + (x[i] -x0)**2 ))
# Tambahkan noise pada travel time
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]- z0)**2 + (x[n-1] - x0)**2 )) +
np.random.rand() * 0.5 * np.mean(t)
# tebakan awal posisi hiposenter
M = [15, 30]
init_position = copy.deepcopy(M)
M1 = []
# Buat Matriks Bobot
W = np.eye(n)
# Menetapkan matrik bobot
W [n-1][n-1] = 0.1
print(W)
xhipo = [init_position[0]]
yhipo = [init_position[1]]
Erms = []
# Inversi Tanpa Bobot Faktor
# Iterasi 1000
for niter in range(1000):
gm = []
dgm_dm1 = []
dgm_dm2 = []
for i in range(n):
gm.append(t0 + (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((z[i] - M[1]) **2 +
(x[i] - M[0]) **2)))
dgm_dm2.append((1 / v) * (-1 * (z[i] -M[1])) / (np.sqrt((z[i] - M[1]) **2 +
(x[i] - M[0]) **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.transpose()) * 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])

# Menghitung rms error


dt = ti - gm
Erms.append(np.sqrt(np.average(dt**2)))
# Print (Xhipo)
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(x0, z0, 'o',alpha = 0.5, color = 'red', label='truehypocenter')
plt.title('Hypocenter Determination(With Weighted)_158')
plt.xlabel('x koordinat')
plt.ylabel('z koordinat')
plt.legend()
plt.figure()

plt.plot(Erms)
plt.title('Kurva Erms vs N Iterasi_158')
plt.xlabel('Rms Eror')
plt.ylabel('N Iterasi')
plt.show()
Script Problem 1 (menggunakan bobot)
# Modul 3
# Problem 1 Dengan Bobot
# Muhamad Arif Samsudin_120120158

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)

# Hiposenter
x0 = 12
z0 = 10
t0 = 0

# Model Kecepatan Gelombang 1 layer


v = 7

# Forward modelling untuk menghitung travel time dari hiposenter ke station


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

# Tambahkan noise pada travel time


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]- z0)*2 + (x[n-1] -x0)**2 )) + np.random.rand()
* 0.5 * np.mean(t)

# tebakan awal posisi hiposenter


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

# Buat Matriks Bobot


W = np.eye(n)
# Menetapkan matrik bobot
W [n-1][n-1] = 0.1
print(W)
xhipo = [init_position[0]]
yhipo = [init_position[1]]
Erms = []
# Inversi Tanpa Bobot Faktor
for niter in range(1000):
gm = []
dgm_dm1 = []
dgm_dm2 = []
for i in range(n):
gm.append(t0 + (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((z[i] - M[1]) **2 +
(x[i] - M[0]) **2)))
dgm_dm2.append((1 / v) * (-1 * (z[i] - M[1])) / (np.sqrt((z[i] - M[1]) **2 +
(x[i] - M[0]) **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.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])

# Menghitung rms error


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(x0, z0, 'o',alpha = 0.5, color = 'red', label='truehypocenter')
plt.title('Hypocenter Determination(With Weighted)_158')
plt.xlabel('x koordinat')
plt.ylabel('z koordinat')
plt.legend()
plt.figure()
plt.plot(Erms)
plt.title('Kurva Erms vs N Iterasi_158')
plt.xlabel('Rms Eror')
plt.ylabel('N Iterasi')
plt.show()
Script Problem 2
# Modul 3
# Problem 2
# Muhamad Arif Samsudin_120120158

import numpy as np
import math
#Diketahui
Sudut_Datang1=10
Sudut_Datang2=25
teta1=math.radians(Sudut_Datang1)
teta2=math.radians(Sudut_Datang2)
Sudut=[teta1, teta2]
print('maka sudut teta 1 dan teta 2 adalah',Sudut)
Robs=[0.1523,0.0947]
print('Data koefisien refleksi',Robs)
#Data matrik G
Sx=(math.sin(Sudut[0]))**2
Sy=(math.sin(Sudut[1]))**2
Tx=(math.tan(Sudut[0]))**2
Ty=(math.tan(Sudut[1]))**2
ST1=Sx*Tx
print(ST1)
ST2=Sy*Ty
print(ST2)
d=np.reshape(Robs,(2,1))
print('d=',d)
G=np.zeros((2,3))
for i in range(2):
G[i][0]=1
G[0][1]=Sx
G[1][1]=Sy
G[0][2]=ST1
G[1][2]=ST2
print('G=',G)
#Gunakan rumus Under-Determinan
m=np.mat(G.transpose())*np.linalg.inv(np.mat(G)*np.mat(G.transpose()))*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)
Script Problem 3 (Tanpa Flatness dan Smoothness 3x3)
#Problem 3
#Tanpa Flatness dan Smoothness 3x3
#Muhamad Arif Samsudin_120120158
import numpy as np
import matplotlib.pyplot as plt
from numpy.linalg import inv
# 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,0,1.414,0,0,0,1.4142],[0,0,0,1,1,1,0,0,0],[0,0,0,0,0,0,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)
#V initial
V_init = [[4.5],[4.5],[4.5],[4.5],[4.5],[4.5],[4.5],[4.5],[4.5]]
v_init = np.reshape(V_init,(9,1))
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.reshape(B,(9,5)) * np.mat(B)) + np.mat(E)) *
(np.reshape(B,(9,5)) * np.mat(d))
#Estimasi V baru
if np.array([del_m]).size > np.array([v_init]).size :
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
else :
X = del_m * (v_init[i]**2)
V_baru = v_init + X
#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
V_new = np.zeros((3, 3))
V_new[0,0] = V_baru[0][0]
V_new[0,1] = V_baru[1][0]
V_new[0,2] = V_baru[2][0]
V_new[1,0] = V_baru[3][0]
V_new[1,1] = V_baru[4][0]
V_new[1,2] = V_baru[5][0]
V_new[2,0] = V_baru[6][0]
V_new[2,1] = V_baru[7][0]
V_new[2,2] = V_baru[8][0]
Mat_V = np.mat(V_new)
plt.imshow(Mat_V, cmap = 'hot')
plt.colormaps()
plt.title('Matrik 3x3 Tanpa Flatness dan smoothness_158')
plt.colorbar()
plt.show()

Script Problem 3 (Tanpa Flatness dan Smoothness 8x8)


#Problem 3
#Tanpa Flatness dan Smoothness 8x8
#Muhamad Arif Samsudin_120120158
import numpy as np
import matplotlib.pyplot as plt
from numpy.linalg import inv
v=[100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
100,124,124,124,124,100,100,100,100,124,124,124,124,100,100,100,100,
124,124,124,124,100,100,100,100,124,124,124,124,100,100,100,100,100,
100,100,100,100,100,100,100,100,100,100,100,100,100]
s1=[0,0]
s2=[0,-1.5]
s3=[0,-2.5]
s4=[1.5,-3]
s5=[2.5,-3]
s=[s1,s2,s3,s4,s5]
r1=[1.5,0]
r2=[2.5,0]
r3=[-3,-1.5]
r4=[-3,-2.5]
r5=[-3,-3]
r=[r5,r3,r4,r1,r2]
rp=[[1,10,19,28,37,46,55,64],[33,34,35,36,37,38,39,40],[49,50,51,52,53,54,55,
56],[5,13,21,29,37,45,53,61],[7,15,23,31,39,47,55,63]]
l=[]
for i in range(len(s)):
l.append(np.sqrt((s[i][0]-r[i][0])**2+(s[i][1]-r[i][1])**2))
tobs=[]
lz=[]
for i in range(len(s)):
sum_t=0
_l_=[]
for j in rp[i]:
l_=l[i]/8
_l_.append(l_)
sum_t=sum_t + l_/v[j-1]
lz.append(_l_)
tobs.append(sum_t)
vo=[120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,
124,124,124,124,100,100,100,100,124,124,124,124,100,100,100,100,124,124,
124,124,100,100,100,100,124,124,124,124,158,158,158,158,158,158,158,158,
158,158,158,158,158,158,158,158,158,158]
G = np.zeros((len(l),len(v)))
for i in range(len(l)):
for j in range(len(rp[i])):
G[i][rp[i][j]-1]=lz[i][j]
mo=0
v_=vo
rmse=[]
for i in range(1000):
tcal=[]
for i in range(len(l)):
tcal_=0
sum_tcal=0
for j in range(len(rp[i])):
tcal_=l[i]/v_[rp[i][j]-1]
sum_tcal=sum_tcal+tcal_
tcal.append(sum_tcal)
d = []
err_=0
for i in range(len(tobs)):
dt=tobs[i]-tcal[i]
err_=err_+dt**2
d.append(dt)
d=np.reshape(d,(len(l),1))

rmse.append(err_)
m=mo+np.linalg.pinv(G.T@G)@G.T@d
mo=m
vi=[]
for i in range(len(m)):
vi_=vo[i]-(mo[i][0]*vo[i]**2)
vi.append(vi_)
v_=vi
vi = np.reshape(vi,(8,8))
fig1, (ax1, ax2)= plt.subplots(2,figsize=(5, 10))
ax1.imshow(vi, interpolation ='none', aspect =
'auto',extent=[3,0,0,3],cmap='jet')
ax2.plot(rmse)
for (j,i),label in np.ndenumerate(vi):
ax1.text(i*3/8+0.1875,j*3/8+0.1875,round(label,2),ha='center',va='center')
plt.title('Matriks 8x8 Tanpa Flatness dan smoothness_158')
plt.show()

Script Problem 3 (Flatness 8x8)


#Problem 3
#Flatness 8X8
#Muhamad Arif Samsudin_120120158
import numpy as np
import matplotlib.pyplot as plt
from numpy.linalg import inv
v=[120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,
124,124,124,124,100,100,100,100,124,124,124,124,100,100,100,100,124,124,
124,124,100,100,100,100,124,124,124,124,158,158,158,158,158,158,158,158,
158,158,158,158,158,158,158,158,158,158]
s1=[0,0]
s2=[0,-1.5]
s3=[0,-2.5]
s4=[1.5,-3]
s5=[2.5,-3]
s=[s1,s2,s3,s4,s5]
r1=[1.5,0]
r2=[2.5,0]
r3=[-3,-1.5]
r4=[-3,-2.5]
r5=[-3,-3]
r=[r5,r3,r4,r1,r2]
rp=[[1,10,19,28,37,46,55,64],[33,34,35,36,37,38,39,40],[49,50,51,52,53,54,55,
56],[5,13,21,29,37,45,53,61],[7,15,23,31,39,47,55,63]]
l=[]
for i in range(len(s)):
l.append(np.sqrt((s[i][0]-r[i][0])**2+(s[i][1]-r[i][1])**2))
tobs=[]
lz=[]
for i in range(len(s)):
sum_t=0
_l_=[]
for j in rp[i]:
l_=l[i]/8
_l_.append(l_)
sum_t=sum_t + l_/v[j-1]
lz.append(_l_)
tobs.append(sum_t)
vo=[100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
124,124,124,124,100,100,100,100,124,124,124,124,100,100,100,100,124,124,
124,124,100,100,100,100,124,124,124,124,100,100,100,100,100,100,100,100,
100,100,100,100,100,100,100,100,100,100]
G = np.zeros((len(l),len(v)))
for i in range(len(l)):
for j in range(len(rp[i])):
G[i][rp[i][j]-1]=lz[i][j]
D = np.zeros((len(v)-1,len(v)))
for i in range(len(v)):
try:
D[i][i]=-1
D[i][i+1]=1
except:
pass
W=D.T@D
e=1000
damp=np.dot(e**2,W)
mo=0
v_=vo
rmse=[]

for i in range(1000):
tcal=[]
for i in range(len(l)):
tcal_=0
sum_tcal=0
for j in range(len(rp[i])):
tcal_=l[i]/v_[rp[i][j]-1]
sum_tcal=sum_tcal+tcal_
tcal.append(sum_tcal)
d = []
err_=0
for i in range(len(tobs)):
dt=tobs[i]-tcal[i]
err_=err_+dt**2
d.append(dt)
d=np.reshape(d,(len(l),1))
rmse.append(err_)
m=mo+np.linalg.pinv(G.T@G+damp)@G.T@d
mo=m
vi=[]
for i in range(len(m)):
vi_=vo[i]-(mo[i][0]*vo[i]**2)
vi.append(vi_)
v_=vi
vi = np.reshape(vi,(8,8))
fig1, (ax1, ax2)= plt.subplots(2,figsize=(5, 10))
ax1.imshow(vi, interpolation ='none', aspect =
'auto',extent=[3,0,0,3],cmap='Accent')
ax2.plot(rmse)
for (j,i),label in np.ndenumerate(vi):
ax1.text(i*3/8+0.1875,j*3/8+0.1875,round(label,2),ha='center',va='center')
plt.title('Matrik 8x8 Model Flatness')
plt.show()

Script Problem 3 (Smoothness 8x8)


#Problem 3
#Smoothness 8x8
#Muhamad Arif Samsudin_120120158
import numpy as np
import matplotlib.pyplot as plt
from numpy.linalg import inv
v=[100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
100,124,124,124,124,100,100,100,100,124,124,124,124,100,100,100,100,
124,124,124,124,100,100,100,100,124,124,124,124,100,100,100,100,100,
100,100,100,100,100,100,100,100,100,100,100,100,100]
s1=[0,0]
s2=[0,-1.5]
s3=[0,-2.5]
s4=[1.5,-3]
s5=[2.5,-3]
s=[s1,s2,s3,s4,s5]
r1=[1.5,0]
r2=[2.5,0]
r3=[-3,-1.5]
r4=[-3,-2.5]
r5=[-3,-3]
r=[r5,r3,r4,r1,r2]
rp=[[1,10,19,28,37,46,55,64],[33,34,35,36,37,38,39,40],[49,50,51,52,53,54,55,
56],[5,13,21,29,37,45,53,61],[7,15,23,31,39,47,55,63]]
l=[]
for i in range(len(s)):
l.append(np.sqrt((s[i][0]-r[i][0])**2+(s[i][1]-r[i][1])**2))
tobs=[]
lz=[]
for i in range(len(s)):
sum_t=0
_l_=[]
for j in rp[i]:
l_=l[i]/8
_l_.append(l_)
sum_t=sum_t + l_/v[j-1]
lz.append(_l_)
tobs.append(sum_t)
vo=[120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,
124,124,124,124,100,100,100,100,124,124,124,124,100,100,100,100,124,124,
124,124,100,100,100,100,124,124,124,124,158,158,158,158,158,158,158,158,
158,158,158,158,158,158,158,158,158,158]
G = np.zeros((len(l),len(v)))
for i in range(len(l)):
for j in range(len(rp[i])):
G[i][rp[i][j]-1]=lz[i][j]
D = np.zeros((len(v)-1,len(v)))
for i in range(len(v)):
try:
D[i][i]=1
D[i][i+1]=-2
D[i][i+2]=1
except:
pass
W=D.T@D
e=1000
damp=np.dot(e**2,W)
mo=0
v_=vo
rmse=[]
for i in range(1000):
tcal=[]
for i in range(len(l)):
tcal_=0
sum_tcal=0
for j in range(len(rp[i])):
tcal_=l[i]/v_[rp[i][j]-1]
sum_tcal=sum_tcal+tcal_
tcal.append(sum_tcal)
d = []
err_=0
for i in range(len(tobs)):
dt=tobs[i]-tcal[i]
err_=err_+dt**2
d.append(dt)
d=np.reshape(d,(len(l),1))
rmse.append(err_)
m=mo+np.linalg.pinv(G.T@G+damp)@G.T@d
mo=m
vi=[]
for i in range(len(m)):
vi_=vo[i]-(mo[i][0]*vo[i]**2)
vi.append(vi_)
v_=vi
vi = np.reshape(vi,(8,8))
fig1, (ax1, ax2)= plt.subplots(2,figsize=(5, 10))
ax1.imshow(vi, interpolation ='none', aspect =
'auto',extent=[3,0,0,3],cmap='Blues')
ax2.plot(rmse)
for (j,i),label in np.ndenumerate(vi):
ax1.text(i*3/8+0.1875,j*3/8+0.1875,round(label,2),ha='center',va='center')
plt.title('Matrik 8x8 Model Smoothness')
plt.show()
Perhitungan manual problem 2

Anda mungkin juga menyukai