Anda di halaman 1dari 19

TUGAS

Mata Kuliah : Kapita Selekta Sains Komputasi


Materi : Inverse Problem







Oleh
Dinan Andi wij ayakusuma
NIM : 20913007








Program Studi Magister Sains Komputasi
Fakultas Matematika dan Ilmu Pengetahuan
Institut Teknologi Bandung
2014


Problem 1

Pada problem 1 ini akan dilakukan pemodelan suatu sistem dan dilkukan proses inversi untuk
mendekati suatu sinyal observasi dengan pendekatan model yang dikembangkan. Suatu sistem pada
fenomena geologis untuk mencari nilai gravitasi pada suatu wilayah, dimodelkan dengan persamaan
berikut :
g =k.p.t._log
1+
h
2
2
x
2
1+
h
1
2
x
2
_ (1)
Dimana nilai parameter-parameter pada persamaan tersebut adalah :
p =200
k =1.33e-2
t =200
h
1
=500
h
2
=1000

Dilakukan plot grafik untuk model dengan persamaan di atas dengan variabel nilai x mulai dari x =-
1000 hingga 1000 dengan kenaikan atau delta x =100. Maka diperoleh plot grafik sbb :

Gambar 1. Plot Grafik dari model matematis pada persamaan (1)


Pada Gambar 1 merupakan plot grafik dari model matematis pada persamaan (1) merupakan model
ideal dengan persamaan model yang telah diketahui. Selanjutnya dilakukan gangguan data atau
noise pada model tersebut untuk kita jadikan seolah-olah sebagai sinyal atau model yang diperoleh
dari hasil observasi. Untuk setiap kali running program, bentuk noise yang dihasilkan akan berbeda
mengingat digunakannya bilangan random untuk menghasilkan sinyak noise sebagai sinyal observasi
tersebut. Diperoleh plot grafik sebagai berikut :

Gambar 2. Plot Grafik dari model matematis dan model dengan gangguan (noise)

Sinyal model yang diberi noise di atas kita gunakan seolah-olah sebagai sinyal hasil observasi. Sinyal
hasil observasi tersebut kemudian dilakukan hampiran menggunakan sinyal baru. Sinyal baru dibuat
dengan model persamaan (1) dimulai dengan nilai p =100, sehingga diperoleh plot grafik sebagai
berikut :

Gambar 3. Plot Grafik dari model dengan gangguan (noise) dan model dengan approksimasi
p =100
Selanjutnya dilakukan perhitungan sinyal sistem baru dengan menggunakan nilai delta rho yang
berbeda dan membandingkan sinyal hasil perhitungan baru tersebut dengan dengan sinyal observe
untuk diketahui seberapa jauh/dekat eror nya. Perhitungan terus dilakukan hingga nilai rata-rata
error mendekati batas toleransi (dalam kasus ini batas toleransi sebesar 1.10
-6
) yang kita berikan
untuk kemudian dapat diketahui nilai delta rho terbaik dengan nilai error terkecil.
Berikut hasil running program, diperoleh hasil terbaik pada itersi ke 46597 dengan nilai delta rho
200.244115 dan nilai eror rata2 sebesar 0.000001
Tugas Kapita Selekta Sains Komputasi
Dinan Andiwijayakusuma
20913007

Iterasi delta_rho Eror Rata2
==================================
0 100.010000 242.991897
1000 110.527591 217.504881
2000 122.151268 189.337512
3000 134.997355 158.207911
4000 149.194404 123.804553
5000 164.884492 85.783153
6000 182.224635 43.763217
7000 200.263737 0.047559
8000 200.262736 0.045132
9000 200.261734 0.042706
10000 200.260733 0.040279
11000 200.259732 0.037852
12000 200.258731 0.035425
13000 200.257729 0.032998
14000 200.256728 0.030571
15000 200.255727 0.028144
16000 200.254725 0.025717
17000 200.253724 0.023290
18000 200.252723 0.020864
19000 200.251722 0.018437
20000 200.250720 0.016010
21000 200.249719 0.013583
22000 200.248718 0.011156
23000 200.247717 0.008730
24000 200.246715 0.006303
25000 200.245714 0.003876
26000 200.244713 0.001449
27000 200.283764 0.000977
28000 200.282763 0.003404
29000 200.281762 0.005831
30000 200.280760 0.008257
31000 200.279759 0.010684
32000 200.278757 0.013111
33000 200.277756 0.015537
34000 200.276755 0.017964
35000 200.275753 0.020391
36000 200.274752 0.022817
37000 200.273751 0.025244
38000 200.272749 0.027670
39000 200.271748 0.030097
40000 200.270746 0.032524
41000 200.269745 0.034950
42000 200.268744 0.037377
43000 200.267742 0.039803
44000 200.266741 0.042230
45000 200.265740 0.044656
46000 200.264738 0.047083
46597 200.244115 0.000001

Dari hasil perhitungan model dengan nilai delta rho terbaik, kita dapat lakukan plot grafik untuk
mengetahui aproksimasi yang dihasilkan dalam bentuk grafik sebagai berikut

Gambar 4. Plot Grafik dari model aproksimasi terhadap data sinyal observe dan diperoleh nilai
p =200.244115 pada iterasi ke-46597

Kode Program dalam bahasa python
# - *- codi ng: ut f - 8 - *-
" ""
Cr eat ed on Mon Mar 24 14: 15: 27 2014

@aut hor : di nan_andi wi j ayakusuma
" ""

i mpor t numpy as np
i mpor t mat pl ot l i b. pyl ab as pl t
i mpor t r andom

t =200
k=1. 33e- 2
del t a_r ho_1=200
del t a_r ho_2=100
h1=500. 0
h2=1000. 0
t ol er ansi =1e- 6

def pl ot _i ni t i al ( ar X, g_model , g_noi se, g_st ar t ) :
pl t . pl ot ( ar X, g_model )
pl t . scat t er ( ar X, g_noi se)
pl t . l egend( [ ' g_model ' , ' g_noi se' ] , l oc=' best ' )
pl t . xl i m( - 1010, 1010)
pl t . xl abel ( ' j ar ak' )
pl t . yl abel ( ' g' )
pl t . t i t l e( ' Pl ot Model Per hi t ungan Gr avi t asi Pada Suat u Ar ea' )
pl t . savef i g( ' i ni t i al _model _wi t h_noi se. png' )
pl t . show( )

pl t . pl ot ( ar X, g_model )
pl t . pl ot ( ar X, g_st ar t )
pl t . scat t er ( ar X, g_noi se)
pl t . l egend( [ ' g_model ' , ' g_st ar t ' , ' g_obser ve' ] , l oc=' best ' )
pl t . xl i m( - 1010, 1010)
pl t . xl abel ( ' j ar ak' )
pl t . yl abel ( ' g' )
pl t . t i t l e( ' Pl ot Model Per hi t ungan Gr avi t asi Pada Suat u Ar ea' )
pl t . savef i g( ' i ni t i al _model _obser ve_wi t h_st ar t _appr ox. png' )
pl t . show( )

def pl ot _hampi r an( ar X, g_st ar t , g_new, r ho, i t er asi ) :
pl t . pl ot ( ar X, g_st ar t )
pl t . pl ot ( ar X, g_new)
pl t . scat t er ( ar X, g_obser ve)
pl t . l egend( [ ' g_st ar t ' , ' g_updat e' , ' g_obser ve' ] , l oc=' best ' )
pl t . xl i m( - 1010, 1010)
pl t . xl abel ( ' j ar ak' )
pl t . yl abel ( ' g' )
pl t . t i t l e( ' Pl ot Model Per hi t ungan Gr avi t asi Pada Suat u Ar ea\ n i t er asi
ke- %i ' %i t er asi )
#pl t . show( )
#pl t . savef i g( ' g_updat e_i t er - %i . png' %i t er asi )

def pl ot _best ( ar X, g_st ar t , g_best , r ho, i t er asi ) :
pl t . pl ot ( ar X, g_st ar t )
pl t . pl ot ( ar X, g_best )
pl t . scat t er ( ar X, g_obser ve)
pl t . l egend( [ ' g_st ar t ' , ' g_best ' , ' g_obser ve' ] , l oc=' best ' )
pl t . xl i m( - 1010, 1010)
pl t . xl abel ( ' j ar ak' )
pl t . yl abel ( ' g' )
pl t . t i t l e( ' Pl ot Model Per hi t ungan Gr avi t asi Pada Suat u Ar ea\ n i t er asi
ke- %i dengan del t a_r ho %f ' %( i t er asi , r ho) )
pl t . savef i g( ' g_updat e_i t er - %i . png' %i t er asi )
pl t . show( )

def i ni t i al ( del t a_r ho_1, del t a_r ho_2, h1, h2, k, t ) :
ar X=[ ]
ar F=[ ]
ar F_noi se=[ ]
ar F_st ar t =[ ]

h=- 1000
whi l e h<=1000:
i f h==0:
ar X. append( 0. 001)
el se:
ar X. append( h)
h=h+100

N=l en( ar X)
f or i i n r ange( 0, N) :
a=1. 0+( h2*h2) / ( ar X[ i ] *ar X[ i ] )
b=1+( h1*h1) / ( ar X[ i ] *ar X[ i ] )
c=np. l og( a/ b)

# g_model si gnal
F=k*del t a_r ho_1*t *c
ar F. append( F)

# g_noi se as obser ve si gnal
F_noi se=25*r andom. r andom( ) *r andom. r andi nt ( - 1, 1) +k*del t a_r ho_1*t *c
ar F_noi se. append( F_noi se)

# g_appr oxi mat i on wi t h del t a r ho=100
F_st ar t =k*del t a_r ho_2*t *c
ar F_st ar t . append( F_st ar t )

r et ur n ( N, ar X, ar F, ar F_noi se, ar F_st ar t )

# I ni si al i sasi kondi si awal
N, ar X, g_model , g_obser ve, g_st ar t =
i ni t i al ( del t a_r ho_1, del t a_r ho_2, h1, h2, k, t )
pl ot _i ni t i al ( ar X, g_model , g_obser ve, g_st ar t )

del t a_r ho=100
maxI t er =1000000
ar GNew=[ ]
i t er asi =0
aveSQE=100
aveSQE_t emp=0

pr i nt ' Tugas Kapi t a Sel ekt a Sai ns Komput asi '
pr i nt ' Di nan Andi wi j ayakusuma'
pr i nt ' 20913007 \ n'
pr i nt ' ====================================='
pr i nt ' I t er asi \ t del t a_r ho\ t Er or Rat a2'
pr i nt ' ====================================='
# Pr oses Hampi r an
whi l e i t er asi <maxI t er :
sumEr r =0
f or i i n r ange( 0, N) :
a=1. 0+( h2*h2) / ( ar X[ i ] *ar X[ i ] )
b=1+( h1*h1) / ( ar X[ i ] *ar X[ i ] )
c=np. l og( a/ b)

# g_hampi r an
g_new=k*del t a_r ho*t *c
ar GNew. append( g_new)

# Hi t ung Er r or
er r = g_obser ve[ i ] - g_new
sumEr r = sumEr r + er r
aveSQE = sumEr r / N

# Kondi si kan si st en dengan er r or yang t er j adi
i f aveSQE>0:
del t a_r ho=del t a_r ho+( del t a_r ho/ 10000. 0)
el se:
del t a_r ho=del t a_r ho- ( del t a_r ho/ 10000. 0)

# pl ot Gr af i k pada i t er asi t er t ent u
i f i t er asi %1000==0:
pr i nt ' %i \ t %f \ t %f ' %( i t er asi , del t a_r ho, np. abs( aveSQE) )
aveSQE_t emp = aveSQE
#pl ot _hampi r an( ar X, g_st ar t , ar GNew, del t a_r ho, i t er asi )

# Bandi ngkan Er r or dengan t ol er ansi
i f np. abs( aveSQE) < t ol er ansi :
pr i nt ' %i \ t %f \ t %f ' %( i t er asi , del t a_r ho, np. abs( aveSQE) )
g_best = ar GNew
pl ot _best ( ar X, g_st ar t , g_best , del t a_r ho, i t er asi )
br eak
el se:
ar GNew=[ ]
i t er asi =i t er asi +1

Problem 2
Pada problem yang kedua ini dilakukan pemodelan sinyal seismik untuk kemudian dilakukan proses
inversi sinyal seismik tersebut.
Pada tahan pertama membuat sinyal model reflektifitas dengan memanfaatkan bilangan random.
Diperoleh plot grafik reflektifitas sebagai berikut :

Gambar 5. Plot Grafik sinyal reflektifitas, digenerate secara random

Berikutnya kita menggunakan sinyal wavelet jenis Ricker Wavelet untuk mendapatkan
bentuk model sinyal seismik dari sinyal reflektivitas. Dilakukan operasi konvolusi antara
sinyal reflektivitas dengan sinyal wavelet Ricker tersebut.Bentuk sinyalnya adalah sebagai
berikut.

Gambar 6. Plot Grafik dari model Ricker wavelet
Operasi konvolusi antara sinyal reflektivitas (Gambar 5) dengan sinyal wavelet (Gambar 6)
akan menghasilkan sebuah sinyal baru yang kemudian disebut sebagai sinyal model seismik.
Ditunjukkan pada Gambar 3. (Setiap kali menjalankan program sangat mungkin
mendapatkan sinyal seismik yang berbeda-beda, karena reflektivitas yang dipakai dibuat
dengan mengenerate bilangan random)

Gambar 7. Plot Grafik operasi konvolusi Sinyal Reflektifitas dengan Ricker wavelet
Sinyal hasil konvolusi tersebut akan dijadikan sebagai model untuk membuat sinyal
observasi, dengan cara menambahkan noise terhadap sinyal model tersebut. Hasil
penambahan noisenya ditunjukkan pada Gambar 7.


Gambar 7. Plot Grafik Sinyal Observe (sinyal orisinil yang telah diberi noise)
Dilakukan kembali hampiran terhadap sinyal observe pada Gambar 7. Membuat sinyal
reflektivitas baru yang nilainya berbeda dengan sinyal reflektivitas pertama. Misalkan sinyal
yang dibuat adalah sebagai berikut :

Gambar 8. Plot Grafik Reflektifitas yang kedua untuk memulai hampiran

Dari nilai reflektivitas tersebut kembali dilakukan operasi konvolusi dengan sinyal wavelet
sehingga menghasilkan sinyal seismik hampiran yang pertama atau pada iterasi ke-0,
selanjutnya kita menghitung kuadrat simpangan rata-ratanya atau RMSE (Root Mean Square
Error). Bentuk sinyalnya adalah sebagai berikut :
Gambar 9. Plot Grafik hampiran dengan operasi konvolusi pada iterasi ke-0
Dilakukan perulangan proses untuk melakukan hampiran hingga RMSE lebih kecil dari nilai
tolerasi yaitu eps =1.10
-3
. Hasil yang didapatkan setelah melakukan 64 kali iterasi adalah
sebagai berikut :




Gambar 10. Plot Grafik hampiran dengan operasi konvolusi pada iterasi ke-5 s/d iterasi ke-60

Diperoleh hampiran terbaik dengan nilai RMSE < 1.10
-3
adalah pada iterasi ke-64.
Ditunjukkan pada plot grafik berikut :

Gambar 11. Plot Grafik hampiran terbaik pada iterasi ke-64 dengan nilai RMSE=0.000929

Pada Gambar 11 di atas terlihat bawha sinyal hampiran sudah hampir rapat dengan sinyal
observasi. Hal tersebut menujukkan hampiran atau pemodelan sinyal pada iterasi ke-64
sangat mendekati atau sesuai dengan sinyal observasi.




Berikut adalah hasil running program, diperoleh hasil terbaik pada iterasi ke 64 dengan nilai
nilai RMSE sebesar 0.000929

Tugas Kapita Selekta Sains Komputasi
Dinan Andiwijayakusuma
20913007
=====================================
Iterasi RMSE
=====================================
0 0.787645
5 0.465097
10 0.274635
15 0.162169
20 0.095759
25 0.056545
30 0.033389
35 0.019716
40 0.011642
45 0.006875
50 0.004059
55 0.002397
60 0.001415
64 0.000929
=====================================

Berikut adalah kode program, menggunakan bahasa pemrograman python2.6
# - *- codi ng: ut f - 8 - *-
" ""
Cr eat ed on Wed Mar 26 10: 48: 57 2014

@aut hor : di nan_andi wi j ayakusuma
" ""
i mpor t r andom
i mpor t numpy as np
i mpor t mat pl ot l i b. pypl ot as pl t
f r omsci py i mpor t si gnal


# wavel et r i cker
def gener at e_r i cker _wavel et ( f , l engt h=0. 512, dt =0. 0011) :
t = np. l i nspace( - l engt h/ 2, ( l engt h- dt ) / 2, l engt h/ dt )
y = ( 1. 0 - 2. 0*( np. pi **2) *( f **2) *( t **2) ) * np. exp( -
( np. pi **2) *( f **2) *( t **2) )
r et ur n t , y


def gener at e_r ef l ek_si gnal ( ) :

Ref _si gnal =[ ]
f or i i n r ange( 0, 100) :
i f i %4==0:
r =( r andom. r andom( ) - 0. 5) *4. 0
el se:
r =0
Ref _si gnal . append( r )

pl t . t i t l e( ' Ref l ect i vi t y Si gnal ' )
pl t . pl ot ( Ref _si gnal )
pl t . show( )
#pl t . savef i g( ' Ref l ect i vi t y_Si gnal . PNG' )
r et ur n Ref _si gnal

def gener at e_obser ve_si gnal ( Ref _si gnal ) :
obser ve_si gnal =[ ]
# Buat Noi se pada si nyal dummy
f or i i n r ange( 0, l en( Ref _si gnal ) ) :
noi se=( r andom. r andom( ) - 0. 5) *1e- 1
obser ve_si gnal . append( Ref _si gnal [ i ] +noi se)
#pl t . savef i g( ' obser ve_si gnal . PNG' )
r et ur n obser ve_si gnal

def mai n( ) :
# Buat Si nyal Random
Ref _si gnal = gener at e_r ef l ek_si gnal ( )

# Buat Ri cker Wavel et
f = 15
t , y = gener at e_r i cker _wavel et ( f )

# Konvol usi Si nyal
convol ut i on_si gnal = si gnal . convol ve( Ref _si gnal , y)
pl t . t i t l e( ' Convol ut i on Si gnal ' )
pl t . pl ot ( convol ut i on_si gnal )
pl t . show( )

# Ber i kan Noi se dan j adi kan sebagai Obser ve Si gnal
obser ve_si gnal = gener at e_obser ve_si gnal ( Ref _si gnal )
conv_obser ve_si gnal = si gnal . convol ve( obser ve_si gnal , y)
pl t . t i t l e( ' Obser ve Si gnal ' )
pl t . pl ot ( convol ut i on_si gnal , ' - r ' , conv_obser ve_si gnal , ' - b' )
pl t . l egend( [ ' or i gi nal _si gnal ' , ' obser ve_si gnal ' ] , l oc=' best ' )
pl t . show( )

# Buat ni l ai bar u unt uk mendekat i si nyal
new_Ref _si gnal =gener at e_r ef l ek_si gnal ( )

# Hampi r an Si gnal
eps=1e- 3
i t er asi =0
pr i nt ' Tugas Kapi t a Sel ekt a Sai ns Komput asi '
pr i nt ' Di nan Andi wi j ayakusuma'
pr i nt ' 20913007 \ n'
pr i nt ' ====================================='
pr i nt ' I t er asi \ t RMSE'

whi l e i t er asi <100000 :
f or i i n r ange( l en( new_Ref _si gnal ) ) :
di st ance = new_Ref _si gnal [ i ] - obser ve_si gnal [ i ]
#pr i nt j ar ak
i f di st ance<0:
new_Ref _si gnal [ i ] = new_Ref _si gnal [ i ] +
0. 1*np. abs( di st ance)
el i f di st ance>0:
new_Ref _si gnal [ i ] = new_Ref _si gnal [ i ] -
0. 1*np. abs( di st ance)
el se:
new_Ref _si gnal [ i ] = new_Ref _si gnal [ i ]

convol ut i on_new=si gnal . convol ve( new_Ref _si gnal , y)

r mse=np. sqr t ( ( 1. 0/ l en( convol ut i on_new) ) *np. sum( ( conv_obser ve_si gnal -
convol ut i on_new) *( conv_obser ve_si gnal - convol ut i on_new) ) )

i f r mse < eps:
pr i nt ' %i \ t %f ' %( i t er asi , r mse)
pl t . t i t l e( ' Hampi r an Si nyal Ter bai k pada i t er asi ke- %i ni l ai
r mse=%f ' %( i t er asi , r mse) )
pl t . pl ot ( conv_obser ve_si gnal , ' - b' , convol ut i on_new, ' - r ' )
pl t . l egend( [ ' obser ve si gnal ' , ' i t er at i on si gnal ' ] , l oc=' best ' )
pl t . show( )
#pl t . savef i g( ' si nyal _hampi r an_t er bai k_i t er asi _ke-
%i . png' %i t er asi )
pr i nt ' ====================================='
br eak
el se:
i f i t er asi %5==0:
pr i nt ' %i \ t %f ' %( i t er asi , r mse)
pl t . t i t l e( ' Hampi r an Si nyal pada i t er asi ke- %i , ni l ai
r mse=%f ' %( i t er asi , r mse) )
pl t . pl ot ( conv_obser ve_si gnal , ' - b' , convol ut i on_new, ' - r ' )
pl t . l egend( [ ' obser ve si gnal ' , ' i t er at i on
si gnal ' ] , l oc=' best ' )
pl t . show( )
#pl t . savef i g( ' si nyal _hampi r an_i t er asi _ke- %i . png' %i t er asi )
i t er asi =i t er asi +1

mai n( )

Anda mungkin juga menyukai