0

私はコードを持っています

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. この関数の最適化を開始するための出発点と同じくらい誰かに教えてもらいたいです。
4

0 に答える 0