-
Notifications
You must be signed in to change notification settings - Fork 0
/
Investigate_besselK.R
127 lines (86 loc) · 2.57 KB
/
Investigate_besselK.R
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#====================
# Investigate besselK
#====================
# modified Bessel function of the 3rd kind
# Arg:
# x: numeric, >= 0
# nu: order of the Bessel, >=0 in practice, but can be negative in theory
#----------
# Settings
#----------
rm(list = ls())
image.path <- "./Image/"
#----------------
# Bessel function
#----------------
x <- seq(0.5, 10, length.out = 100)
plt_besselK <- function(x, nu) {
b <- besselK(x, nu = nu)
plot(x, b, type = "l", xlab = "distance",
main = bquote(atop("Modified Bessel K_nu",
atop("nu:"~ .(nu), "rho: "~ 1))))
}
#----
# plot
#----
nu = 1.5
b <- besselK(x, nu = nu)
par(mfrow = c(1, 1), mar = c(5, 3, 4, 1))
plt_besselK(x = x, nu = nu)
abline(h = 0, lty = 2)
#------
# Save
#------
png(paste0(image.path, "Bessel_nu_1.5.png"), width = 8, height = 7,
units = "in", res = 300)
nu = 1.5
b <- besselK(x, nu = nu)
par(mfrow = c(1, 1), mar = c(5, 3, 4, 1), cex = 1.2)
plt_besselK(x = x, nu = nu)
abline(h = 0, lty = 2)
dev.off()
#--------------
# Conclusion 1:
#--------------
# Modified Bessel function of the 3rd kind is a decreasing function
# In K_v(d / rho), where rho is the large scale range parameter
# the larger the rho, the larger the K_v, hence the spatial correlation
# and the slower such correlation decays as spatial distance increases
# and at small spatial scale, the correlation is less variable,
# the surface is smooth
# the smaller the rho, the smaller the K_v, hence the smaller the spatial correlation
# the more speedy such correlation decays as distance increases
# and at small spatial scale, the correlation is very variable
# the surface is relatively rough
#-------------
# different nu
#-------------
#N <- seq(0.5, 10, by = 1)
length(N) # [1] 10
par(mfrow = c(3, 3), mar = c(4, 3, 3, 1), mgp = c(1.75, 1, 0),
cex = 2)
plt_besselK_2 <- function(x, nu) {
b <- besselK(x, nu = nu)
plot(x, b, type = "l", xlab = "distance",
ylab = "Bessel K",
main = bquote(atop("Modified Bessel K_nu",
atop("nu:"~ .(nu)))))
}
for (nu in N) {
plt_besselK_2(x, nu)
}
# try N with more constrast but less choices
png(paste0(image.path, "Bessel_different_nu.png"),
width = 8, height = 7, units = "in", res = 300)
par(mfrow = c(2, 2), mar = c(3, 3, 3.5, 1), mgp = c(1.85, 1, 0),
cex = 1.1)
N <- c(0.1, 1.5, 15, 50)
for (nu in N) {
plt_besselK_2(x, nu)
}
dev.off()
#--------------
# Conclusion 2:
#--------------
# The larger the order nu
# the more speedy the BesselK decreases to zero.