下面是一个寄生虫生长模型:
Ni(a,t)表示在时间t的预期a龄寄生虫数量,ki(a,t)表示杀灭效果,而PMF表示增殖因子。这是一个离散模型,a等于1,2,3...48。谁能告诉我如何使用差分方程在R中实现这个方程?非常感谢您的支持。
发布于 2013-07-22 10:39:15
这是我对你提供的信息所能做的最好的事情了。告诉我剩下的部分,我也许能让它真正工作,因为我认为它会无限地重复出现。
Ki <- function(a, t){ ## You need to actually define this properly
return(1)
}
Ni <- function(a, t, PMF){
if ((a %% 1 != 0)) stop("Only Takes Integer values of a")
if ((t %% 1 != 0)) stop("Only Takes Integer values of t")
if (a == 1){
x = Ni(48, t-1, PMF)
y = exp(-Ki(48,t-1))
result = PMF * x * y
return(result)
}
if (a > 1){
x = Ni(a-1, t-1, PMF)
y = exp(-Ki(a-1,t-1))
result = x * y
return(result)
}
}
发布于 2013-07-22 08:45:56
你没有一套初始条件。得到N(a=1..48,t=1)的初始48个值后,从第二个方程计算N(a=1,t=2),然后从第一个方程计算N(a=2..48,t=2)。对t=3重复上述步骤,以此类推。
你得到的是一个递归关系,而不是微分方程。正如我刚才解释的那样,您将逐步执行递归关系。
可以通过查看N(t)-N(t-1)/dt并求解,将其转换为微分方程系统,但这是一项数学工作,而不是编程工作。
https://stackoverflow.com/questions/17782002
复制相似问题