Anda di halaman 1dari 6

GridSearch

a. Script

clc
clear all
%DEFINISI parameter PUSAT model hiposenter
xhipo=40;
yhipo=30;
v_avg=4;
noise=random('Normal',2,0.2);
%tentukan koordinat stasiun pengukuran
x=[20 50 40 10]; Perhitungan waktu tempuh dengan
y=[10 25 50 40]; persamaan
%menghitung DATA t_obs
t_obs=zeros(length(x),1)
for i=1:length(x)
t_obs(i)=sqrt((x(i)-xhipo)^2+(y(i)-yhipo)^2)/v_avg
end Pada setiap nilai x (stasiun)
%perhitungan systematic grid search
p=1;
L=1;
Pembuatan grid sebanyak 60x60 =3600.
xo=[0:L:60];
yo=[0:L:60];
t_cal=zeros(length(x),1);
for j=1:length(xo) Perhitungan
for k=1:length(yo) waktu tempuh
for i=1:length(x)
dan nilai eror
t_cal(i)=(sqrt((x(i)-xo(j))^2+(y(i)-yo(k))^2)/v_avg)+ ...
noise; (Erms) untuk
end setiap grid.
dt=t_obs-t_cal; Noise
Erms(k,j)=sqrt(mean(dt.^2));
if Erms(k,j)<p ditambah agar
p=Erms(k,j); nilai mendekati
end data
end
sebenarnya
end

[C,h]=contour(xo,yo,Erms,20); Untuk Memunculkan


set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2)
countur
clabel(C,h,'FontSize',8,'Color','k','Rotation',0);
colormap(bone);
hold on
plot(xhipo,yhipo,'p','MarkerSize',20,'MarkerFaceColor','r',...
Untuk memunculkan
'MarkerEdgeColor','r')
hold on titik episenter
plot(x,y,'v','MarkerSize',15,'MarkerFaceColor','b',...
'MarkeredgeColor','b')
xlim([0 60]);
ylim([0 60]); Untuk memunculkan
xlabel('Koord.X(m)'); titik 4 stasiun dan Label
ylabel('Koord.Y(m)'); pada grafik
title('Model Prediksi Posisi Hiposenter dengan Kontur Erms');
b. Hasil Running

c. Penjelasan
GridSearch merupakan cara untuk memperoleh solusi inversi non-linear dengan membuat ruang
model dengan menentukan secara apriori yang kemudian dilakukan diskretisasi dan diperoleh
grid. Setiap grid mempresentasikan satu sampel model
SP

a. Script

clc;close all;clear all;


% nomer 1
%h1=20;q1=1.5;the1=25;k1=200;
%mobs=[h1;q1;the1;k1]
%n=numel(x);
%for i=1:n;
%v(i)=sp(k1,x(i),the1,h1,q1);
%end Memasukkan data yang terdapat
data=xlsread('datasp.xls',1,'A1:B62'); pada axcel kedalam script.
x=data(:,1);
v=data(:,2); x yaitu titik pengukuran, v yaitu nilai
n=numel(x)
potential yang didapat
% nomer 2
%m=[k,theta,z,q]
mold=[9763;-150.75;20.76;1];
for ii=1:n; Menjalankan fungsi sp untuk
v1(ii)=sp(mold(1),x(ii),mold(2),mold(3),mold(4)); mendapatkan nilai potensial
end pada model awal
figure
plot(x,v,'xb','linewidth',2);
hold on;
plot(x,v1,'-r','linewidth',2)
grid on
legend ('Data lapangan','Pendekatan awal')
k=numel(mold);
%jacob(k,x,the,h,q);
Error=[];
for ii=1:300;
mn=mold;
for i=1:n;
J(i,:)=jacob(mn(1),x(i),mn(2),mn(3),mn(4));
dv(i)=sp(mn(1),x(i),mn(2),mn(3),mn(4));
% nomer 3
delm(i)=v(i)-dv(i);
end Menjalankan fungsi jacob untuk
Err=(delm*delm'); menggunakan matriks jacobi.
Error=[Error;Err];
deriv=J; Data digantikan dengan
[U,S,V]=svd(J) perturbasi data dan model
W=zeros(1,k);
for i=1:k; digantikan dengan perturbasi
W(i)=S(i,i); model
end
dm=svbksb(U,W,V,n,k,delm);
mold=mold+dm';
% Marquard
% k=(J'*J)+7.e3*eye(4);
% kin=inv(k)*J'*delm';
% mold=mold+kin;
end
minversi=mold
figure
plot(x,v,'xb','linewidth',2);
hold on;
plot(x,dv,'-r','linewidth',2)
grid on
legend ('Observasi','Prediksi')
figure
plot(sqrt(Error),'.r','linewidth',2) Plotting error
xlabel 'Iterasi Ke-'
ylabel 'Error'
grid on
title ('Error hasil inversi')
b. asil Running
c. penjelasan

aplikasi inversi non-linear pada metode Self Potential menggunakn matriks jacobian yang berfungsi
sebagai pangganti matriks kernel yang menyatakan sejauhmana data prediksi berubah sebagai
akibat dari perubahan atau perturbasi model.Fungsi perturbasi adalah untuk mendapatkan
kecocokan antara data hasil model dengan data sebenarnya.

Anda mungkin juga menyukai