Do I have a bad day? This my older code is working....
In[1]:= ClearAll["Global`*"]
SetDirectory[NotebookDirectory[]];
In[3]:= data =
ReadList["test66-2-0000000949-MOD2.out", Real, RecordLists -> True];
In[4]:= X = data[[All, 2]];
V = data[[All, 3]];
Fexp = data[[All, 4]];
data =.;
In[8]:= odezva[k1o_, k2o_, n1o_, n2o_, d1o_Integer, d2o_Integer, e1o_,
e2o_, Xo_, Vo_] :=
Module[{k1 = k1o, k2 = k2o, n1 = n1o, n2 = n2o, d1 = d1o, d2 = d2o,
e1 = e1o, e2 = e2o, X = Xo, V = Vo, Xu, Vu, jadroX, jadroV,
odezva, Fmean},
jadroX = k1*(Table[(1 - i/d1)^n1, {i, 0, d1}]);
jadroV = k2*(Table[(1 - i/d2)^n2, {i, 0, d2}]);
Xu = Sign[X]*Abs[X]^e1;
Vu = Sign[V]*Abs[V]^e2;
odezva =
ListConvolve[jadroX, Xu, 1, 0] + ListConvolve[jadroV, Vu, 1, 0] ;
odezva
]
In[9]:= krit[k1o_, k2o_, n1o_, n2o_, d1o_Integer, d2o_Integer, e1o_,
e2o_, Fo_, Xo_, Vo_] :=
Module[{k1 = k1o, k2 = k2o, n1 = n1o, n2 = n2o, d1 = d1o, d2 = d2o,
e1 = e1o, e2 = e2o, F = Fo, X = Xo, V = Vo, kriterium, o, Fmean},
Fmean = Mean[Abs[F]];
o = odezva[k1, k2, n1, n2, d1, d2, e1, e2, X, V];
kriterium = 100.*Mean[Abs[o - F]]/Fmean;
kriterium
]
In[10]:= krit[10000., 3000., 0.5, 0.01, 3000, 2000, 3.5, 1.8, Fexp, \
X, V]
Out[10]= 58.8654
In[11]:= res =
NMinimize[{krit[k1, k2, n1, n2, d1, d2, e1, e2, Fexp, X, V],
k1 > 150 && k2 > 10 &&
d1 > 10 && d2 > 10 &&
n1 > .01 && n2 > .01 &&
e1 > .01 && e2 > .01},
{k1, k2, n1, n2, d1 \[Element] Integers, d2 \[Element] Integers ,
e1, e2}
, MaxIterations -> 5
]
Speak["Calculation finished!"]
During evaluation of In[11]:= NMinimize::cvmit: Failed to converge to the requested accuracy or precision within 5 iterations. >>
Out[11]= {20.3068, {k1 -> 150.043, k2 -> 10.9215, n1 -> 1.94636,
n2 -> 0.712322, d1 -> 12, d2 -> 13, e1 -> 0.679406, e2 -> 0.95152}}