Zbatime të Informatikës në Minierakorini.dibmin-fgjm.org/ZbatInf_L8_GjeoMat2020.pdf · 1/28/2020...
Transcript of Zbatime të Informatikës në Minierakorini.dibmin-fgjm.org/ZbatInf_L8_GjeoMat2020.pdf · 1/28/2020...
1/28/2020
1
Zbatime të Informatikës në Miniera
Th.Korini, 2020
Fakulteti i Gjeologjisë dhe i Minierave
Ma
ste
r P
rofe
sio
na
l, G
jeo
ma
tik
ë
Leksioni 7
Interpolimet
përm
bajt
ja
zx
x
Metoda e inversit të distances të peshuarIdeja bazë e metodës së inversit të distancës bazohet në faktin që ndikimi i pikave më të afërta është më i madh se i atyre të largëta. Në këtë mënyrë, vlera e panjohur e kuotes z në pikën e interpoluar llogaritet duke peshuar vlerat e z të pikave rrethuese në përputhje me distancën e tyre e duke i mesatarizuar ato. Le të jetë P = P1, ... , Pn bashkësia e n pikave. Vlera z në çdo pikë (x,y) mund të llogaritet sipas formulës:
1
1
i i i
n
i ii
n
ii
z x x y y
w zz x
Py
w
1i p
i
wd
ku:
p është një parametër që përfaqëson se sa shpejt pesha e një pike të dhënash zvogëlohet me rritjen e distancës. Zakonishtmerret p=2.
1/28/2020
2
Shembuj interpolimi në 2D dhe 3D sipas inversit të distancës të peshuar me p=2
% Interpolimi sipas metodes se inversit te peshuar te distances (p=2)
clear all
close all
clc
x = [288;285.6; etj… 345.6];
y = [311;288; etj… 216];
vz =[11.5;8.5;7; etj… 9.9];
k = length(vz);
pp = 2;
dx = 4;
dy = 4;
ti1 = 250:dx:500;
ti2 = 100:dy:350;
vepsi = 0.01*sqrt(dx*dx+dy*dy);
ix = length(ti1);
iy = length(ti2);
for i1=1:ix
for i2=1:iy
snum = 0.0;
sem = 0.0;
% pika ime e rrjetit:x,y=ti1(i1),ti2(i2)
xx = ti1(i1);
yy = ti2(i2);
indz = 0;
for i3=1:k
vd = [x(i3) - xx, y(i3) - yy];
dd = sqrt(vd(1)*vd(1) + vd(2)*vd(2));
if dd < vepsi
valz = vz(i3);
indz = 1;
break
else
wi = 1.0/(dd^pp);
snum = snum + wi*vz(i3);
sem = sem + wi;
end
end
qx(i1,i2) = xx;
qy(i1,i2) = yy;
if indz == 1
zi(i1,i2) = valz;
else
zi(i1,i2) = snum/sem;
end
end
end
Shembull 1 (Matlab/Octave):
1/28/2020
3
figure(1)
mesh(qx,qy,zi, 'LineWidth',1);
meshc(qx,qy,zi);
hold on;
plot3(x,y,vz,'ro');
xlabel('X (m)');
ylabel('Y (m)');
zlabel('Cadmium (ppm)');
title('Inversi i distances i peshuar: permbajtja e Kadmiumit (ppm)');
view(-37.5+90, 35) % ndryshimi i pikes se shikimit: view(azimut, kend vertikal)
figure(2)
title('Inversi i peshuar i distances: Permbajtja e kadmiumit (ppm)','FontSize',13)
vv = [2 4 6 8 10 12 14];
[C,h] = contour(qx,qy,zi,vv, 'r')
clabel(C,h,'LabelSpacing',200, 'FontSize',9)
xlabel('X (m)');
ylabel('Y (m)');
title('Inversi i distances i peshuar: permbajtja e Kadmiumit (ppm)');
1/28/2020
4
Interpolimi sipas metodës së fqinjëve natyrore
Le të jenë n pika pi (xi,yi) të shpërndara në një zonë D për të cilat njohim vlerën zi.
Për të përcaktuar vlerën e z në një pikë të çfarëdoshme p0 përdoret mesatarja e ponderuar sipas relacionit:
01 1
ku 1
n n
i i ii i
z( ) = z pp
Ndërmjet metodave të bazuara në ndarjen e sipërfaqes më e thjeshta është ajo e fqinjëve natyrorë
1/28/2020
5
Ndërtohen poligonet e Thiessen (Voronoi)
Zona e Voronoit asociuar një pike p të bashkësisë S të pikave të dhëna quhet zona e kufizuar nga një poligon (poligoni i Thiessen) për të cilën gjithë pikat xbrenda tij janë më pranë p se çdo pikë tjetër të bashkësisë së të dhënave.
/ ( , ) ,sVor p x E q S d x p d x q
Poligonet e Thiessen janë poligone konvekse.
Poligonet e Thiessen për pikat e dhëna
p3
Poligonet e Thiessen për pikat e dhëna
Poligonet e Thiessen duke shtuar edhe pikën që do të
vlerësohet
p1
p2
p5
p7
p3
p4
p0
A 1A2
A7A6
A5
Përcaktimi i sipërfaqeve elementare të zonës së
ndërprerjes
Për të vlerësuar parametrin e panjohur në një pikë p0 ndërtohen poligonet e Thiessen, fillimisht pa pikën p0, e në vijim duke shtuar këtë pikë në bashkësinë e pikave të të dhënave. Poligonet e rinj (me pikën që do të vlerësohet) mbivendosen mbi ata të rrjetit (me pikat e të dhënave) duke përcaktuar ndërprerjet ndërmjet poligonit të pikës p0 dhe poligoneve fillestare të pikave pi në trajtën e sipërfaqeve Ai. Në këtë mënyrë pesha e çdo pike pi në vlerësimin e p0 do të jetë raporti ndërmjet sipërfaqes Ai dhe sipërfaqes totale të poligonit të pikës p0 .
7
10 7
1
( )i ii
ii
A z p
z p
A
ku në këtë rast A3 dhe A4 janë të barabarta me zero
1/28/2020
6
Rrjeti poligonal i Thiessen mund të ndërtohet duke u nisur nga triangulacioni i Delauney. Triangulacioni i Delauney është një rrjet i çrregullt trekëndor i ndërtuar në mënyrë të tillë që të kënaqë kriterin e Delauney: brenda rrethit të përcaktuar nga tre pikat e çdo trekëndshi të mos ndodhet asnjë pikë tjetër e rrjetit.
250 300 350 400 450 500100
150
200
250
300
350Triangulacioni i Delauney dhe diagrama e Voronoit (Poligonet e Thiessen)
x
y
% Triangulacioni i Delauney dhe diagrama e Voronoit
clear all
close all
clc
x = [288;285.6; etj…345.6];
y = [311;288; etj… 216];
dt=delaunay(x,y)
triplot(dt, x, y)
hold on;
voronoi(x,y, ':r')
title('Triangulacioni i Delauney dhe diagrama e Voronoit(Poligonet e Thiessen)','FontSize',14)
xlabel('x')
ylabel('y')
Shembull 2 (Matlab):
1/28/2020
7
% Metoda e fqinjeve natyroreclear allclose allclcx = [288;285.6;etj…345.6];y = [311;288; etj… 216];vz =[11.5;8.5;etj…9.9];
% Ndertimi i interpoluesit:F = TriScatteredInterp(x,y,vz,'natural' )ti1 = 250:5:500;ti2 = 100:5:350;% ndertimi i rrjetit te vleresimit (qx, qy):[qx,qy] = meshgrid(ti1,ti2);
% vleresimi i qz ne pikat e rrjetit (qx, qy):qz = F(qx,qy);meshc(qx,qy,qz);hold on;plot3(x,y,vz,'o');title('Metoda e fqinjeve natyrore: Harta e permbajtjes se kadmiumit (ppm)','FontSize',14)xlabel('x')ylabel('y')
Shembull 3 (Matlab):
250
300
350
400
450
500
100
150
200
250
300
350
0
2
4
6
8
10
12
14
16
18
x
Metoda e fqinjeve natyrore: Harta e permbajtjes se kadmiumit (ppm)
y
1/28/2020
8
1 1( , )x y
2 2( , )x y
3 3( , )x y
4 4( , )x y 5 5( , )x y
( , )i ix y
( , )n nx y
i
ii
D f x y
1D 2D
3D 5D4D
nD
Sheshimi sipas metodës së katrorëve më të vegjël
Jepet një bashkësi n pikash eksperimentale (xi, yi). Kërkohet që mbi bazën e të dhënave eksperimentale të përafrohet ligji i ndryshimit të y në funksion të x-it, duke përjashtuar sa të jetë e mundur ndikimin e gabimeve të kryera në matje.Përgjithësisht funksioni supozohet i njohur (duke ju referuar ligjësisë së fenomenit). Ai mund të jetë linear (y=a1+a2*x) ose edhe i rendit më të lartë (polinom ose edhe ndonjë lloj tjetër funksioni).Quajmë Di diferencën ndërmjet vlerës së funksionit f(xi) dhe vlerës yi të përcaktuar nga Di=f(xi)-yi.Formojmë shumën e katrorëve të shmangieve në të gjithë pikat xi:
2 2 2 21 2 ... ...i nK D D D D
Sheshimi më i mirë realizohet nga vija për të cilën K (shuma e katrorëve të shmangieve të pikave nga vija) është minimale.
Rasti i sheshimit sipas një vije të drejtë: (y=a1+a2*x)
Koeficientët a1 dhe a2 përftohen nga zgjidhja e sistemit të ekuacioneve lineare:
1
22i
i i
i i i
n x ya
x x x ya
Ku n është numri i pikave, ndërsa shumatoretrealizohen në raport me abscisat dheordinatat e pikave të të dhënave.
Në Matlab/Octave koeficientët përftohen nga zgjidhjae sistemit (me më shumë ekuacione se të panjohura):
1 1
2 2 1
2
1
1
... ... ...
1n n
y x
y x a
a
y x
1 1
2 2 1
2
1
1, X , B=
... ... ...
1n n
y x
y x aY
a
y x
Në se shënojmë:
Në Matlab/Octave zgjidhja përftohet nga B = X\Yku \ përfaqëson funksionin (operatorin) mldivide.
1/28/2020
9
Shembull 4 (Matlab/Octave):
% sheshimi sipas vijes y=b1+b2*x
x=[1; 1.5; 2.2; 3; 3.5; 4];
y=[1.45; 2; 2.25; 2.7; 2.8; 3.1];
z = [ones(length(x),1) x];
b = z\y
scatter(x,y)
hold on
yllog = z*b;
plot(x,yllog,'--')
legend('Te dhenat','Vija e regresit');
xlabel('x');
ylabel('y');
title('Regresioni linear');
coef=cov(x,y)/(std(x)*std(y));
txt = ['Koef. korelacionit = ' num2str(coef)];
text(0.8*max(x), 1.05*min(y),txt);
1/28/2020
10
% sheshimi sipas vijes y=b1+b2*x+b3*x^2
x=[1; 1.5; 2.2; 3; 3.5; 4];
y=[1.45; 2; 2.25; 2.7; 2.8; 3.1];
z = [ones(length(x),1) x x.*x];
b = z\y
scatter(x,y)
hold on
yllog = z*b;
plot(x,yllog,'--')
legend('Te dhenat','Vija e regresit');
xlabel('x');
ylabel('y');
title('Perafrimi sipas MKV');
Shembull 5 (Matlab/Octave):
1/28/2020
11
Sheshimi sipas metodës së katrorëve më të vegjël në rastin 3 përmasor
Shembull: llogaritja e parametrave të një sipërfaqe polinomiale të rendit të tretë:
2 2 3 2 2 30 1 2 3 4 5 6 7 8 9z a a x a y a x a xy a y a x a x y a xy a y
sheshon bashkësinë e n pikave eksperimentale.P1(x1, y1, z1) , P2(x2, y2, z2) .......... Pi(xi, yi, zi) .......... Pn(xn, yn, zn)
2
2 2 30 1 2 8 9
1
K= ..........n
i i i i i i ii
D a a x a y a x y a y z
0 1
0 0 0q
K K K
a a a
aa a x a y a y z
aa a x a y a y z
aa a x a y a y z
i i i ii
n
i i i ii
n
i i i ii
n
00 1 2 9
3 2
1
10 1 2 9
3 2
1
20 1 2 9
3 2
1
0
0
0
.......
........
........
............................
......................................
........
aa a x a y a y zi i i i
i
n
90 1 2 9
3 2
1
0
369
58
323
42
31
30
2329
238
43
22
31
20
49
38
23
2210
39
228
332
210
39
28
23210
....
.............................................................................
...
.....
......
........
zyyaxyayxayaxyaya
zxyxayxaxayxaxaxa
zyyaxyayxayaxyaya
xzxyayxaxaxyaxaxa
zyaxyaxayaxana
3
2
9
3
2
1
0
6532433
32234232
4322
32232
322
......
...
.....................
...
...
...
...
zy
zx
zy
xz
z
a
a
a
a
a
yxyyxyxyy
yxyxxyxxx
yxyyxyxyy
xyyxxxyxx
yxyxyxn
ose:
1/28/2020
12
Shembull 6 (Matlab/Octave):
x = [.2 .5 .6 .8 1.0 1.1 1.3]';
y = [.1 .3 .4 .9 1.1 1.4 1.7]';
z = [.17 .26 .28 .23 .27 .24 .47]';
% y=a1+a2*x+a3*y+a4*x^2+a5*x*y
vi = [ones(size(x)) x y x.*x x.*y];
a = vi\z
% Rezultati:y=0.06947+1.07639*x-1.03609*y-0.58167*x^2+0.77682*x*y
scatter3(x,y,z)
hold on
[xg,yg] = meshgrid(0:.1:2);
zg = a(1) + a(2)*xg +a(3)*yg +a(4)*xg.^2 + a(5)*xg.*yg
surf(xg,yg,zg)
250
300
350
400
450
500
100150
200250
300350
-5
0
5
10
15
20
x
Sheshimi sipas MKV: Kadmium
y
z