【发布时间】:2017-08-29 07:13:16
【问题描述】:
我正在为一些数据拟合 Lotka-Volterra 模型,我的简单代码是:
LCC<-c(11953.36,27413.50, 54823.75, 90904.73, 119250.34, 137679.14, 137750.79, 141107.43, 146356.56, 179280.00, 213037.07, 286138.03, 373380.14, 483474.16, 561950.42, 644919.07)
AAR<-c(476068.4, 468621.0, 459684.1, 439587.9, 433429.0, 423889.7, 430239.4, 436614.3, 467925.9, 477742.2, 479049.2, 446933.5, 440711.2, 431425.5, 426563.1, 408660.5)
KAL<-c(888507, 887066, 875788, 872448, 855472, 817319, 787635, 793101, 800911, 787032, 763142, 733607, 706539, 673969, 656770, 672431)
PA<-c(457695.9,476068.4, 468621.0, 459684.1, 439587.9, 433429.0, 423889.7, 430239.4, 436614.3, 467925.9, 477742.2, 479049.2, 446933.5, 440711.2, 431425.5, 426563.1)
PK<-c(893515.0,888507, 887066, 875788, 872448, 855472, 817319, 787635, 793101, 800911, 787032, 763142, 733607, 706539, 673969, 656770)
PL<-c(11953.36,11953.36,27413.50, 54823.75, 90904.73, 119250.34, 137679.14, 137750.79, 141107.43, 146356.56, 179280.00, 213037.07, 286138.03, 373380.14, 483474.16, 561950.42)
LCCmodel<-nls(LCC~a1*PL/1+b1*PL+c1*PA+d1*PK, start=list(a1=-4.132e+05,b1=1.251e+00,c1=7.470e-01,d1=8.771e-02))
但它会返回:
"Error in nls(LCC ~ a1 * PL/1 + b1 * PL + c1 * PA + d1 * PK, start = list(a1 = 122400, :
奇异梯度”
如果我从公式中删除与 a1 相乘的“PL”,那么它可以工作。 我不能跳过它请帮助
【问题讨论】:
-
请查看stackoverflow.com/questions/5963269/…,然后使用适当的数据等编辑您的帖子。
-
谢谢你威廉姆斯我是一个新手...我已经编辑了我的帖子并添加了输入数据..
-
你能提供确切的公式吗?另外你的起始a1值是不是太高了?
-
L_(t+1)=(α * L_t)/(1+β *L_t+γ *A_t+δ *K_t ) 这是精确的公式 Prem.. 我只是把这个值从分子中省略 PL 并运行代码...我找不到任何其他方法来猜测初始值..
标签: r nonlinear-optimization nls