This looks an awful lot like you are trying to solve for d' in an m-alternative forced choice experiment for an unbiased observer. Try the function dprime.mAFC from the psyphy package. For comparison with your example, it's code is:

 psyphy:::dprime.mAFC
function (Pc, m)
{
    m <- as.integer(m)
    if (m < 2)
        stop("m must be an integer greater than 1")
    if (!is.integer(m))
        stop("m must be an integer")
    if (Pc <= 0 || Pc >= 1)
        stop("Pc must be in (0,1)")
    est.dp <- function(dp) {
        pr <- function(x) dnorm(x - dp) * pnorm(x)^(m - 1)
        Pc - integrate(pr, lower = -Inf, upper = Inf)$value
    }
    dp.res <- uniroot(est.dp, interval = c(-10, 10))
    dp.res$root
}
<environment: namespace:psyphy>

Hope that helps,

best,

Ken


On Sat, May 27, 2017 at 9:16 AM, Neetu Shah <nshah.0452 at gmail.com> wrote:
Dear Sir/Ma'am,

I am trying to make a function to solve an equation that is given below:
findH <- function(p_star, k){
fun <- function(y){
(pnorm(y+h))^(k-1)*dnorm(y)
}
lhs <- integrate(fun, -Inf, Inf)$value
return(uniroot(lhs, lower = -10, upper = 10,
tol = p_star)$root)
}
In lhs, I integrated a function with respect to y and there would be an
unknown h that I need to find.
I need to equate this lhs to p_star value in order to find h. Which
function should I use to solve this equation?
Please guide me regarding this.
Thank you.

--
With Regards,
Neetu Shah,
B.Tech.(CS),
3rd Year,
IIIT Vadodara.
--
Kenneth Knoblauch
Inserm U1208
Stem-cell and Brain Research Institute
18 avenue du Doyen Lépine
69500 Bron
France
tel: +33 (0)4 72 91 34 77
fax: +33 (0)4 72 91 34 61
portable: +33 (0)6 84 10 64 10
http://www.sbri.fr/members/kenneth-knoblauch.html

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to