美好的一天。我正在尝试检查函数是否具有最小值。
为此我使用衍生物和Hessian矩阵。
问题是衍生品存储在“语言”类型中,而我需要“数字”。
例如,我使用
der_x1 <- D(expression(3 + 2 * x_1 + 3 * x_2 + 2 * (x_1)^2 + 2 * x_1 * x_2 + 6 * (x_2)^2), "x_1")
der_x1x1 <- D(der_x1, "x_1")
获取der_x1x1 = 2 * 2
。
typeof(der_x1x1)
返回“language
”。
但是为了找到Hessian矩阵的行列式,我需要R将2 * 2
简化为4
并将其转换为数字。
如果我尝试as.numeric(der_x1x1)
,我会得到Error: 'pairlist' object cannot be coerced to type 'double'
答案 0 :(得分:1)
尝试以下代码:
eval(der_x1x1)
x_1 <- 1
x_2 <- 1
eval(der_x1)