-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathDNDA.jl
46 lines (46 loc) · 1.59 KB
/
DNDA.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
function DNDA(ALPHA,BETA);
A=[0.0010 0.0020 -0.0060 -0.0110 -0.0150 -0.0240 -0.0220
-0.0270 -0.0140 -0.0080 -0.0110 -0.0150 -0.0100 0.0020
-0.0170 -0.0160 -0.0060 -0.0100 -0.0140 -0.0040 -0.0030
-0.0130 -0.0160 -0.0060 -0.0090 -0.0120 -0.0020 -0.0050
-0.0120 -0.0140 -0.0050 -0.0080 -0.0110 -0.0010 -0.0030
-0.0160 -0.0190 -0.0080 -0.0060 -0.0080 0.0030 -0.0010
0.0010 -0.0210 -0.0050 0 -0.0020 0.0140 -0.0090
0.0170 0.0020 0.0070 0.0040 0.0020 0.0060 -0.0090
0.0110 0.0120 0.0040 0.0070 0.0060 -0.0010 -0.0010
0.0170 0.0160 0.0070 0.0100 0.0120 0.0040 0.0030
0.0080 0.0150 0.0060 0.0040 0.0110 0.0040 -0.0020
0.0160 0.0110 0.0060 0.0100 0.0110 0.0060 0.0010]
#
S= 0.2 * ALPHA
K= floor(S)+3
if(K <= 1)
K= 2
end
if(K >= 12)
K= 11
end
DA= S - K +3
L = K + fix( 1.1*sign(DA) )
#
S= 0.1 * BETA
M= floor(S)+4
if(M <= 1)
M= 2
end
if(M >= 7)
M= 6
end
DB= S - M + 4
N= M + fix( 1.1*sign(DB) )
#
K=convert(Int64, K)
L=convert(Int64, L)
M=convert(Int64, M)
N=convert(Int64, N)
T= A[K,M]
U= A[K,N]
V= T + abs(DA) * (A[L,M] - T)
W= U + abs(DA) * (A[L,N] - U)
return dndav = V + (W-V) * abs(DB)
end