Integration, Minimization and complex numbers Problem
- To: mathgroup at smc.vnet.net
- Subject: [mg45860] Integration, Minimization and complex numbers Problem
- From: mfific <mfific at indiana.edu>
- Date: Tue, 27 Jan 2004 04:51:21 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
I have one integration and minimization problem. A function of interest
is defined as follows:
model[l_,h_,scale_,shape_,tt]=Integrate[{den[l, h,
t]*PDF[GammaDistribution[shape, scale], {tt - t}]}, {t, 0, tt}]
model[l_,h_,scale_,shape_,tt] is convolution function between first
den[l, h, t] which is in my calculation cumulative distribution function
and probability density function GammaDistribution[shape, scale]. So the
convoluted function is strictly positive and should be continuous and
differentiable at all points. Now it is NOT possible to get closed form
for this convolution function, and as an output I get some long
expression. When I had plot this function for some parameter values it
turned out to be correct.
Now the problem I run into was when I try to use this
model[l_,h_,scale_,shape_,tt] function to fit actual data. I used
NMinimize on the function that is to be minimized (see bellow). This is
standard routine for minimization. Dat2 file is a data file.
squares =Plus @@ Table[((model[l, h, scale, shape, tt] /.tt ->
(dat2[[i,1]] -dat2[[i,2]]))^2, {i, Length[dat2]}];
nminsol=NMinimize[{squares}, {l, h, scale, shape},Method->{"NelderMead"}]
The problem was that it did not converge and I got report that the
"The function (145.080813 -(6.93321450269*10^-18 [maginaryI] did not
evaluate to a number at the point (h
->0.006370727396825097`,(l->0.128041641382088), (scale->
72.43025153),(shape-> 5.8088417556)?
(Note that I constrained parameters which is not presented in NMinimize
function! above)
I tried different methods for minimization but it did not work out. When
I paid close attention to the output of the table in squares above,
I found some complex number (real + imaginary). After some further
research I found that convoluted function model[l_,h_,scale_,shape_,tt]
behaves chaotically for some parameter values, which was surprised for
me, because both function that were used to construct it were regular
probability functions. I guess these irregularities were because of
mathematica used some numerical integration in order to approximate
complicated convolution function.
Also, I used realonly package in order to turn-off imaginary part of
the function output but it did not help. Obviously realonly will not
prevent imaginary number when NMinimize is used.
I would appreciate any suggestion.
Mario Fific
Department of Cognitive Psychology
Indiana University