# https://w...content-available-to-author-only...t.cc/bbs/R_Language/M.1540859231.A.848.html
theta <- 8 # 本例以 theta = 8 為例
n.delta <- 500 # 設定方格在 x 和 y 的格數
x.sim <- seq(-theta, theta, length = n.delta)
y.sim <- seq(-14, 14, length = n.delta) # 太窄或太寬可以調整
f.xy <-
function(x, y, th) {
1 / (2 * th
* sqrt(2 * pi
)) * exp(-1 / 2 * (y
- x
) ^ 2) }
# 求 Pxy(x,y): z.sim 為 200 * 200 方格
z.sim <- outer(x.sim, y.sim, FUN = f.xy, th = theta)
# 求 Py(y),已知 Px 是均勻分配故可簡化算法
Py <- apply(z.sim, 2, sum) / n.delta * (2 * theta)
# trapezoidal integration 檢查 Py dy 積分
sum((Py[1:(length(Py) - 1)] + Py[2:(length(Py))]) * diff(y.sim)[1] / 2)
# Pxy 視覺化
windows(5, 5)
surf3D(
matrix(rep(x.sim, n.delta), ncol = n.delta),
matrix(rep(y.sim, each = n.delta), ncol = n.delta),
z.sim,
bty = "f",
theta = 110,
phi = 30,
r = 3,
ticktype = "detailed"
)
# Py 視覺化
windows(5, 5)
plot(y.sim,
Py,
xlab = "y",
ylab = "P_y(y)",
type = "l")
IyBodHRwczovL3cuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLnQuY2MvYmJzL1JfTGFuZ3VhZ2UvTS4xNTQwODU5MjMxLkEuODQ4Lmh0bWwKCnRoZXRhIDwtIDggIyDmnKzkvovku6UgdGhldGEgPSA4IOeCuuS+iwpuLmRlbHRhIDwtIDUwMCAjIOioreWumuaWueagvOWcqCB4IOWSjCB5IOeahOagvOaVuAp4LnNpbSA8LSBzZXEoLXRoZXRhLCB0aGV0YSwgbGVuZ3RoID0gbi5kZWx0YSkKeS5zaW0gPC0gc2VxKC0xNCwgMTQsIGxlbmd0aCA9IG4uZGVsdGEpICMg5aSq56qE5oiW5aSq5a+s5Y+v5Lul6Kq/5pW0CmYueHkgPC0KICBmdW5jdGlvbih4LCB5LCB0aCkgewogICAgMSAvICgyICogdGggKiBzcXJ0KDIgKiBwaSkpICogZXhwKC0xIC8gMiAqICh5IC0geCkgXiAyKQogIH0KIyDmsYIgUHh5KHgseSk6IHouc2ltIOeCuiAyMDAgKiAyMDAg5pa55qC8Cnouc2ltIDwtIG91dGVyKHguc2ltLCB5LnNpbSwgRlVOID0gZi54eSwgdGggPSB0aGV0YSkKCiMg5rGCIFB5KHkp77yM5bey55+lIFB4IOaYr+Wdh+WLu+WIhumFjeaVheWPr+ewoeWMlueul+azlQpQeSA8LSBhcHBseSh6LnNpbSwgMiwgc3VtKSAvIG4uZGVsdGEgKiAoMiAqIHRoZXRhKQoKIyB0cmFwZXpvaWRhbCBpbnRlZ3JhdGlvbiDmqqLmn6UgUHkgZHkg56mN5YiGCnN1bSgoUHlbMToobGVuZ3RoKFB5KSAtIDEpXSArIFB5WzI6KGxlbmd0aChQeSkpXSkgKiBkaWZmKHkuc2ltKVsxXSAvIDIpCgojIFB4eSDoppboprrljJYKd2luZG93cyg1LCA1KQpzdXJmM0QoCiAgbWF0cml4KHJlcCh4LnNpbSwgbi5kZWx0YSksIG5jb2wgPSBuLmRlbHRhKSwKICBtYXRyaXgocmVwKHkuc2ltLCBlYWNoID0gbi5kZWx0YSksIG5jb2wgPSBuLmRlbHRhKSwKICB6LnNpbSwKICBidHkgPSAiZiIsCiAgdGhldGEgPSAxMTAsCiAgcGhpID0gMzAsCiAgciA9IDMsCiAgdGlja3R5cGUgPSAiZGV0YWlsZWQiCikKCiMgUHkg6KaW6Ka65YyWCndpbmRvd3MoNSwgNSkKcGxvdCh5LnNpbSwKICAgICBQeSwKICAgICB4bGFiID0gInkiLAogICAgIHlsYWIgPSAiUF95KHkpIiwKICAgICB0eXBlID0gImwiKQo=