[ 
https://issues.apache.org/jira/browse/MATH-519?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12997260#comment-12997260
 ] 

Gilles commented on MATH-519:
-----------------------------

{quote}
[...] pass parameters that are not necessarily valid [...]
{quote}

What would that mean?
To direct its search, the optimizer needs feedback from the objective function; 
in case of invalid parameters, the objective function cannot provide feedback 
(i.e. compute the theoretical curve)!

The only issue is how to "tell" the optimizer that it should discard invalid 
parameters (i.e. make it consider that they are far away from a solution).


> GaussianFitter Unexpectedly Throws NotStrictlyPositiveException
> ---------------------------------------------------------------
>
>                 Key: MATH-519
>                 URL: https://issues.apache.org/jira/browse/MATH-519
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 3.0
>            Reporter: Ole Ersoy
>             Fix For: 3.0
>
>         Attachments: GaussianFitter.java, GaussianFitter2Test.java
>
>   Original Estimate: 4h
>  Remaining Estimate: 4h
>
> Running the following:
>       double[] observations = 
>       { 
>                       1.1143831578403364E-29, 
>                        4.95281403484594E-28, 
>                        1.1171347211930288E-26, 
>                        1.7044813962636277E-25, 
>                        1.9784716574832164E-24, 
>                        1.8630236407866774E-23, 
>                        1.4820532905097742E-22, 
>                        1.0241963854632831E-21, 
>                        6.275077366673128E-21, 
>                        3.461808994532493E-20, 
>                        1.7407124684715706E-19, 
>                        8.056687953553974E-19, 
>                        3.460193945992071E-18, 
>                        1.3883326374011525E-17, 
>                        5.233894983671116E-17, 
>                        1.8630791465263745E-16, 
>                        6.288759227922111E-16, 
>                        2.0204433920597856E-15, 
>                        6.198768938576155E-15, 
>                        1.821419346860626E-14, 
>                        5.139176445538471E-14, 
>                        1.3956427429045787E-13, 
>                        3.655705706448139E-13, 
>                        9.253753324779779E-13, 
>                        2.267636001476696E-12, 
>                        5.3880460095836855E-12, 
>                        1.2431632654852931E-11 
>       };
>   
>       GaussianFitter g = 
>               new GaussianFitter(new LevenbergMarquardtOptimizer());
>       
>       for (int index = 0; index < 27; index++)
>       {
>               g.addObservedPoint(index, observations[index]);
>       }
>               g.fit();
> Results in:
> org.apache.commons.math.exception.NotStrictlyPositiveException: -1.277 is 
> smaller than, or equal to, the minimum (0)
>       at 
> org.apache.commons.math.analysis.function.Gaussian$Parametric.validateParameters(Gaussian.java:184)
>       at 
> org.apache.commons.math.analysis.function.Gaussian$Parametric.value(Gaussian.java:129)
> I'm guessing the initial guess for sigma is off.  

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to