- 阅读权限
- 255
- 威望
- 0 级
- 论坛币
- 2444 个
- 通用积分
- 60.5031
- 学术水平
- 69 点
- 热心指数
- 78 点
- 信用等级
- 44 点
- 经验
- 4348 点
- 帖子
- 160
- 精华
- 0
- 在线时间
- 399 小时
- 注册时间
- 2008-4-14
- 最后登录
- 2025-7-29
|
- # x and y follow independent normal
- sd.x <- 1
- sd.y <- 2
- x <- c(-50:50/10)*sd.x
- y <- c(-50:50/10)*sd.y
- z <- outer(dnorm(x, sd = sd.x), dnorm(y, sd = sd.y))
- # Target z value (half of the maxium)
- z.tgl <- max(z)/2
- # Inverse of dnorm (x > 0 part)
- inv.dnorm <-
- function(d, mean = 0, sd = 1)
- {
- return(mean + sqrt(-2*sd*sd*log(sqrt(2*pi)*sd*d)))
- }
- # Half range
- hlfrng.x <-
- seq(0, inv.dnorm(z.tgl/max(dnorm(y, sd = sd.y)), sd = sd.x), length.out = 51)
- hlfrng.y <-
- inv.dnorm(z.tgl/dnorm(hlfrng.x, sd = sd.x), sd = sd.y)
- # Target x, y value
- x.tgl <-
- c(hlfrng.x, rev(head(hlfrng.x, -1)), -1*head(hlfrng.x[-1], -1), rev(-1*hlfrng.x[-1]))
- y.tgl <-
- c(hlfrng.y, rev(-1*hlfrng.y)[-1], -1*head(hlfrng.y[-1], -1), head(rev(hlfrng.y), -1))
- # Assert correct length
- stopifnot(length(x.tgl) == length(y.tgl))
- # Normal surface
- persp(x, y, z, theta = 30, scale = T, box = F, axes = F, zlim = c(0, 0.15), border = "green4") -> res
- # Eclipse
- polygon(trans3d(x.tgl, y.tgl, rep(z.tgl, times = length(x.tgl)), res), border = "Navy", col = "#00007F3F")
复制代码Result:
|
-
总评分: 经验 + 50
论坛币 + 60
学术水平 + 4
热心指数 + 4
信用等级 + 4
查看全部评分
|