我有一个ODE函数LVM(),它接受时间,人口,携带容量和增长率的参数。我需要通过使用'pracma'R包或'rootSolve'包找到Jacobian来计算其稳定性,但是我得到一个错误
fun(x,...)中的错误:缺少参数“r”,没有默认值
我的功能是;
LVM <- function(t,pop,int_mat,str_mat,carry_cap,r){
dN=r*pop*((carry_cap-(int_mat*str_mat)%*%pop)/carry_cap)
return(dN)
}
当我按下面计算雅可比矩阵时;
jacobian(LVM,c(0.287778,0.2553485,0.147619,0.3661074,0.4390739,0.1270218,0.4533318,0.2236241,0.3555208,0.2102366))
其中数值是人口密度,我得到一个错误
fun(x,...)中的错误:缺少参数“r”,没有默认值
您的意见将受到高度赞赏。
答案 0 :(得分:0)
使用修改后的函数LVM_V2
来取代参数向量
在6个参数中,我得到以下输出。这是预期的输出
参数映射:
#r=>x[6]
#pop => x[2]
#carry_cap => x[5]
#int_mat => x[3]
#str_mat => x[4]
LVM_V2 <- function(x){
dN=x[6]*x[2]*((x[5]-(x[3]*x[4])%*%x[2])/x[5])
return(dN)
}
pracma::jacobian(LVM_V2,c(0.287778,0.2553485,0.147619,0.3661074,0.4390739,0.1270218,0.4533318,0.2236241,0.3555208,0.2102366))
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
#[1,] 0 0.1190372 -0.006905828 -0.002784515 0.002321776 0.2473229 0 0 0 0
请注意,参数t
在函数