如何使用 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 会给你一个解决方案!
我想用 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 会给你一个解决方案!