如何使用 R 求解具有正态 CDF (pnorm) 的两个符号方程

How to solve two symbolic equations with Normal CDF (pnorm) using R

我想用 R

数值求解这两个方程

等式 1:pnorm((c2+1)/5)-pnorm((c1+1)/5) = 0.025

公式 2:pnorm((c2-1)/5)-pnorm((c1-1)/5) = 0.025

我需要找到 c1 和 c2 的值

我尝试使用 rSymPy 和 Ryacas,但实际上不知道如何使用。

我试过的R代码

求解([Eq(pnorm((c2+1)/5)-pnorm((c1+1)/5), 0.025), Eq(pnorm((c2-1)/5)-pnorm( (c1-1)/5), 0.02)]

你看过 R 中的包 'nleqslv' 了吗?使用它,您可以轻松获得解决方案。 Solve 不起作用,因为您有一个不能用矩阵表示的非线性方程组。请参阅下面的问题:

library(nleqslv)


eqs_fun <- function(x) {
  y = numeric(2)
  y[1] = pnorm(q = (x[2]+1)/5) - pnorm(q = (x[1]+1)/5) - .025
  y[2] = pnorm(q = (x[2]-1)/5) - pnorm(q = (x[1]-1)/5) - .025
  y
}

xstart = c(0,1)
nleqslv(xstart, eqs_fun)

运行 这应该给你以下输出:

list(x = c(-0.159856055122849, 0.159854416799285), fvec = c(1.006390991376e-09, 
-6.31374431903087e-10), termcd = 1L, message = "Function criterion near zero", 
    scalex = c(1, 1), nfcnt = 8L, njcnt = 1L, iter = 6L)

你可以自己验证 c1 = -.16, c2 = .16 会给你一个解决方案!