使用 R 查找具有四个未知数的两个非线性方程的决策边界



考虑两个方程,(1-b1(*(.4*Y1-5(和(1-b2(*(.4*Y2-5(,其中b1和b2是从0到1的概率,b2必须始终大于b1,Y1和Y2可以是50到100之间的任何数字,但Y2必须始终大于Y2。我试图使用 R 找到这些方程在 b2 和 Y2 的给定约束内彼此相等的决策边界。

我尝试过单根求解,但是,似乎单根只能在有一个未知并且求解需要线性方程组时使用。

是否有任何函数可以设置两个方程,其中四个未知数彼此相等,以确定决策边界的位置。

由于有多个变量需要求解,因此您可以使用optim而不是uniroot

optim(c(0.5, 0.6, 75, 80),
function(x) {
b1 <- x[1L]
b2 <- x[2L]
Y1 <- x[3L]
Y2 <- x[4L]
if (b1 < 0 | b1 > 1 | b2 < 0 | b2 > 1 | b1 > b2)
return(Inf)
if (Y1 < 50 | Y1 > 100 | Y2 < 50 | Y2 > 100 | Y1 > Y2)
return(Inf)
abs((1-b1)*(.4*Y1-5) - (1-b2)*(.4*Y2-5))
})

输出:

$par
[1]  0.5098563  0.5917020 75.1616219 87.7225153
$value
[1] 3.52709e-08
$counts
function gradient 
205       NA 
$convergence
[1] 0
$message
NULL

最新更新