此的平方之和是,我想中的R的代碼的功能,寫一個程序,以儘量減少遞歸指數函數
i = 1,2,3,....j-1
A,B,C,F,克將被從NLS確定(與起始值任意設定爲7,30,15,1,2)
S且Y是在數據集中
功能可以在一個更大的計算量被呈現人友好的遞推方程,
這裏是我的代碼的嘗試,但我無法得到它的收斂,
S=c(235,90,1775,960,965,1110,370,485,667,140,588,10,0,1340,600,0,930,1250,930,120,895,825,0,935,695,270,0,610,0,0,445,0,0,370,470,819,717,0,0,60,0,135,690,0,825,730,1250,370,1010,261,0,865,570,1425,150,1515,1143,0,675,1465,375,0,690,290,0,430,735,510,270,450,1044,0,928,60,95,105,60,950,0,1640,3960,1510,500,1135,0,0,0,181,568,60,1575,247,0,1270,870,290,510,0,540,455,120,580,420,90,525,1116,499,0,60,150,660,1080,1715,90,1090,840,975,280,850,633,30,1530,1765,880,150,225,77,1380,810,835,0,540,1017,1108,0,300,600,90,370,910,0,60,60,0,0,0,0,50,0,735,900)
Y=c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,7.7,NA,NA,7.2,NA,NA,NA,NA,NA,NA,7.4,NA,NA,NA,NA,NA,NA,10.7,NA,NA,NA,NA,8.1,8.5,NA,NA,NA,NA,NA,9.9,NA,7.4,NA,NA,NA,9.5,NA,NA,9,NA,NA,NA,8.8,NA,NA,8.5,NA,NA,NA,6.9,NA,NA,7.9,NA,NA,NA,7.3,NA,7.9,8.3,NA,NA,NA,11.5,NA,NA,12.3,NA,NA,NA,6.1,NA,NA,9,NA,NA,NA,10.3,NA,NA,9.7,NA,NA,8.6,NA,9.1,NA,NA,11,NA,NA,12.4,11.1,10.1,NA,NA,NA,NA,11.7,NA,NA,9,NA,NA,NA,10.2,NA,NA,11.2,NA,NA,NA,11.8,NA,9.2,10,9.8,NA,9.5,11.3,10.3,9.5,10.2,10.6,NA,10.8,10.7,11.1,NA,NA,NA,NA,NA,NA,NA,NA,12.6,NA)
mydata = data.frame(Y,S)
f <- function(a,b,f,c,g,m) {
model <- matrix(NA,nrow(m)+1,3)
model[1,1]=0
model[1,2]=0
model[1,3]=a
for (i in 2:nrow(model)){
model[i,1]=exp(-1/c)*model[i-1,1] + m$S[i-1]
model[i,2]=exp(-1/g)*model[i-1,2] + m$S[i-1]
model[i,3]=a+b*model[i,1]-f*model[i,2]
}
model <- as.data.frame(model)
colnames(model) = c('l','m','Y')
model$Y[which(m$Y>0)]
}
Y=mydata$Y
nls(Y ~ f(a,b,f,c,g,mydata), start=list(a=7,b=5.3651,f=5.3656,c=16.50329,g=16.5006),control=list(maxiter=1000,minFactor=1e-12))
的錯誤,我已經得到依賴於初始值:
錯誤NLS(Y〜F(A,b,F,C,G,MYDATA),開始=列表(= 7,:
迭代次數超過10最大00錯誤NLS(Y〜F(A,B,F,C,G,MYDATA),開始=列表(= 7,:
奇異梯度
我卡和不知道該怎麼做,任何幫助將不勝感激。
a)您必須構造MYDATA爲data.frame使用$:'MYDATA < - data.frame(Y,S)'。 b)什麼是'p0'? c)你可以運行'f(7,5,16,16,mydata)'嗎?你會得到正確的結果嗎?如果不是,nls不會工作... –
對不起,p0 = a,更正了更正。 f(7,5,16,16,mydata)有效,它會生成預測的Y – mct