Rabu, 23 Mei 2012

PENENTUAN HYPOCENTER MENGGUNAKAN MATLAB


Telah terjadi sebuah event Gempa pada sebuah lokasi (unknown) . Gempa tersebut tercatat di seismograf 7 stasiun pencatat. Berikut tabel hasil pencatatan 7 stasiun tersebut :


Berdasarkan data pada tabel tersebut, tentukanlah : 1.) Hipocenter Gempa Bumi yang dicatat
                                                                              2.) Origin Time (calculated)
                                                                              3.) Jumlah Iterasi ( use MATLAB software)

Penyelesaiannya, kita menggunakan software MATLAB . Pengunaan Software MATLAB pastinya harus berdasarkan script (m.file) yang di-running .
Berikut kami lampirkan script yang kami gunakan dalam menyelesaikan persoalan di atas:


  % PENENTUAN HYPOCENTER 3D METODE INVERSI NON LINIER DENGAN PENDEKATAN INVERSI LINIER
clear all;clc;
% input data
fid=fopen('plot_data_3d.dat');
data=textscan(fid,'%s %f %f %f','delimiter');
fclose(fid);
code=data{1};
x=data{2};
y=data{3};
t=data{4};
N=length(x);
xp=[];yp=[];zp=[];

% model awal
x0=input('masukan longitude awal:');
y0=input('masukan latitude awal:');
z0=input('masukan depth awal:');
vp=4;Erms=1;

%pemodelan inversi dengan iterasi
k=0;
while Erms > 0.001
tp=sqrt((x0-x).^2+(y0-y).^2+(z0).^2)/vp;
t0_i=abs(t-tp);t0=mean(t0_i);
tcal=t0+sqrt((x0-x).^2+(y0-y).^2+(z0).^2)/vp;
dt=t-tcal;

%membuat matriks jacobi
J1=(x0-x)./(vp*sqrt((x0-x).^2+(y0-y).^2+(z0).^2));
J2=(y0-y)./(vp*sqrt((x0-x).^2+(y0-y).^2+(z0).^2));
J3=(z0)./(vp*sqrt((x0-x).^2+(y0-y).^2+(z0).^2));
J=[J1 J2 J3];

%menghitung eror/misfit
Erms=sqrt(sum((tcal-t).^2)./N);
dm=inv(J'*J)*J'*dt;
xp=[xp;x0]
yp=[yp;y0]
zp=[zp;z0]

%model perturbation
x0=x0+dm(1,1);
y0=y0+dm(2,1);
z0=z0+dm(3,1);
k=k+1;
if Erms <=0.1
break
end
end
initial_x = xp(1,1);
initial_y = yp(1,1);
initial_z = zp(1,1);
z=zeros(N,1);
pusat_x=x0;
pusat_y=y0;
pusat_z=z0;
figure(1)
plot3(xp,yp,zp,'--or','markerfacecolor','b')
text(initial_x,initial_y,initial_z,'model awal','verticalalignment','top');
hold on
plot3(x0,y0,z0,'kp','markerfacecolor','y','markersize',14)
text(pusat_x,pusat_y,pusat_z,'pusat gempa','verticalalignment','top')
hold on
plot3(x,y,z,'^b','markerfacecolor','b')
text(x,y,z,code,'verticalalignment','top')
grid on
set(gca,'zDir','rev')
xlabel('bujur');ylabel('lintang');zlabel('kedalaman');
fprintf(1,'origin time=%6.2f\n',t0_i)
fprintf(1,'longitude=%6.2f\n',x0)
fprintf(1,'latitude=%6.2f\n',y0)
fprintf(1,'depth=%6.2f\n',z0)
fprintf(1,'iterasi=%6d\n',k)


Setelah di running pada command window MATLAB, maka kami menginput data sebagai berikut :

     * Longitude awal : 35 km
     * Latitude awal    :  35 km
     * Depth awal       :  10 km

kemudian 'ENTER', maka kami mendapatkan output "KOORDINAT HIPOCENTER"  sebagai berikut :
   
        *  Longitude = 39.13 km
         * Latitude = 29.26 km
         * Depth = 27.80k km

dan ORIGIN TIME pada masing-masing stasiun pencatat sebagai berikut:

STS1 origin time = 2.67 detik
STS2 origin time = 2.68 detik
STS3 origin time = 2.48 detik
STS4 origin time = 2.52 detik
STS5 origin time = 2.41 detik
STS6 origin time = 2.60 detik
STS7 origin time = 2.68 detik

* Jumlah iterasi sebanyak 90 kali dengan Erms= 0,1




                                 Gambar 1.) Output Plotting Hypocenter_3D


Demikian proses penyelesaian mencari Hypocenter berdasarkan data dari stasiun pencatat yang telah diketahui. Sekiranya bagi sobat pembaca sekalian, bisa membantu jika memang ingin mempelajari hal yang kami jabarkan dalam tulisan ini. 
GEOFISIKA angkatan 45, AKADEMI METEOROLOGI dan GEOFISIKA - JAKARTA

*group Five : -*- Alexander Felix Taufan Parera (email: alexis.de.felixcille@gmail.com)
                     -*- Basri Kamarudin
                     -*- Muhamad Zulkifli

Related Post:

1 komentar:

Unknown mengatakan...

Mas, maaf kok ketika di running beda ya hasilnya?
dan juga kok parameter modelnya cm 3, bukannya 4 ya dengan waktu.
thx

Posting Komentar

 
;