我正在尝试解决 R 中的非线性方程组,但它一直给我这个错误“要替换的项目数不是替换长度的倍数”。
我的代码如下所示:
my_data <- Danske
D <- my_data$D
V <- my_data$V
r <- my_data$r
s <- my_data$s
fnewton <- function(x)
{
y <- numeric(2)
d1 <- (log(x[1]/D)+(r+x[2]^2/2))/x[2]
d2 <- d1-x[2]
y[1] <- V - (x[1]*pnorm(d1) - exp(-r)*D*pnorm(d2))
y[2] <- s*V - pnorm(d1)*x[2]*x[1]
y
}
xstart <- c(239241500000, 0.012396)
nleqslv(xstart, fnewton, method="Newton")
D、V、r 和 s 是数字 [1:2508] 值,我认为这就是问题所在。如果我有单个值 1x1,它可以很好地解决它,但是,如果我插入具有 2508 个值的向量,它只会计算第一个 x1 和 x2,然后会出现带有我上面写的消息的警告。
感谢您的任何帮助。
丽娜