多变量优化保持返回相同的初始值

时间:2013-08-19 21:59:05

标签: r optimization

我有代码

INJ.1<-"I01 I02 I03 I04 I05         
2.78E+02    1.82E+03    3.62E+02    2.90E+02    7.73E+02
7.92E+02    1.21E+03    9.33E+02    6.32E+02    5.10E+02
2.30E+03    7.54E+02    9.60E+02    6.29E+02    1.05E+03
3.61E+03    3.05E+02    7.77E+02    5.87E+02    1.02E+03
3.89E+02    1.35E+03    7.66E+02    4.00E+02    7.43E+02
1.31E+03    1.63E+03    8.95E+02    3.85E+02    1.10E+02
1.39E+03    1.16E+03    9.07E+02    4.99E+02    2.48E+02
1.94E+03    1.09E+03    8.34E+02    5.22E+02    2.48E+02
2.04E+03    1.11E+03    7.85E+02    2.67E+02    4.27E+02
1.06E+03    1.36E+03    8.80E+02    6.13E+02    7.16E+02
1.40E+03    1.29E+03    8.65E+02    6.17E+02    9.79E+02
1.20E+03    1.68E+03    6.78E+02    6.10E+02    9.30E+02
1.45E+03    1.49E+03    7.66E+02    3.81E+02    1.07E+03
1.16E+03    1.58E+03    1.09E+03    5.33E+02    8.38E+02
1.33E+03    1.38E+03    9.10E+02    6.29E+02    8.80E+02

"
INJ<-as.matrix(read.table(text=INJ.1, header=T))
PRD.1<-"P01                
981.32019             
1062.5702             
1439.7673             
1694.0723             
1085.1016             
1243.6089             
1191.5941             
1302.2167             
1333.5266             
1242.0212             
1342.6954             
1371.2767             
1394.1171             
1400.7926             
1373.1791             
"
PRD<-as.matrix(read.table(text=PRD.1, header=T))
tao=as.matrix(c(1,1,1,1,1))
lambda=as.matrix(c(0.0251879,0.1599486,0.1812318,0.2626731,0.3355733,0.3221295,-1.3343501))
i.dash=matrix(ncol=ncol(INJ), nrow=(nrow(INJ)))
fn1 <- function (tao){
  for (i in 1:ncol(INJ))
    for (j in 1:nrow (INJ))
      temp=0
  for (k in 1:j)
    i.dash[j,i]=(1/tao[i])*exp((k-j)/tao[i])*INJ[k,i]+i.dash[j,i]



  target = abs(700-sum(colSums(i.dash)))
}
ini=c(1, 1, 1, 1, 1)

ans1<-optim(par=ini,fn1,hessian=TRUE)

我需要优化函数中显示的tao的值。除了我注意到函数fn1内的矩阵计算没有完成之外,代码保持给出相同的初始值。除了主要问题之外,我还有一个以上的问题是如何解决这个案例以实现o target的最小值:

  1. 我们可以在函数内部发出非计算命令,例如:分配和创建矩阵,向量运算和操作......等等?
  2. 退出该功能后,这些更改是否可用?
  3. 在我的情况下,我首先在一些计算中使用参数values来准备目标函数,然后我对它们进行优化是否是R中可接受的方法?
  4. 我希望有人能给我一个开始优化此功能的起点。

0 个答案:

没有答案