我想用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中的包'nlqslv'吗?使用它,你可以很容易地得到一个解决方案。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=0.16 会给你一个解决方案!