【发布时间】:2016-01-06 19:53:05
【问题描述】:
我正在使用 gaussquad 包对一些积分进行数值计算。
我认为 ghermite.h.quadrature 命令通过在点 x1、...、xn处评估函数 f(x) 来工作> 然后构造总和 w1*f(x1) + ... + wn*f(xn),其中 x1, .. ., xn 和 w1, ..., wn 是用户提供的节点和权重。
所以我想到了命令
ghermite.h.quadrature(f,rule)
sum(sapply(rule$x,f)*rule$w)
对于任何函数f都会产生相同的输出,其中''rule''是一个数据框,它将节点存储在标记为''x''的列中,权重存储在标记为"的列中w”。对于许多函数,输出确实是相同的,但对于某些函数,我得到的结果却大不相同。有人可以帮我理解这种差异吗?
谢谢!
代码:
n.quad = 50
rule = hermite.h.quadrature.rules(n.quad)[[n.quad]]
f <- function(z){
f1 <- function(x,y) pnorm(x+y)
f2 <- function(y) ghermite.h.quadrature(f1,rule,y = y)
g <- function(x,y) x/(1+y) / f2(y)*pnorm(x+y)
h <- function(y) ghermite.h.quadrature(g,rule,y=y)
h(z)
}
ghermite.h.quadrature(f,rule)
sum(sapply(rule$x,f)*rule$w)
【问题讨论】:
-
@SeverinPappadeux 好的,我添加了它
-
可以确认值确实不同,0.34 vs 0.203
-
标准化问题?结果的比率接近 \sqrt(\pi)
标签: r math statistics