commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gilles (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MATH-832) Brent solver calculates incorrect root (namley Double.MAX_VALUE)
Date Thu, 26 Jul 2012 11:30:35 GMT

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

Gilles commented on MATH-832:
-----------------------------

bq. [...] But now i think i know where the problem is [...]

I do not. Is there a problem in Commons Math?

bq. An upper bound for the interval sufficiently smaller than infinity causes no problems

The initial report seems to indicate that you wanted to obtain the minimum of "uf". Then,
in your last comment, you still use "BrentSolver" which will search for the root (of that
same "uf").
Which is it?

Also, please correct the links in your previous comment; they seem broken (parts not being
interpreted as links). Even better would be to upload files (either figures, or source code
to reproduce the problem) to this page, instead of those unreadable links!
Thanks.

                
> Brent solver calculates incorrect root (namley Double.MAX_VALUE)
> ----------------------------------------------------------------
>
>                 Key: MATH-832
>                 URL: https://issues.apache.org/jira/browse/MATH-832
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 3.0
>         Environment: Netbeans 7.1.2
>            Reporter: Alex
>
> *Wolfram-Alpha-Solution:*
> [http://www.wolframalpha.com/input/?i=min+100*sqrt%28x%29%2B1000000%2Fx%2B10000%2Fsqrt%28x%29+with+x%3E0]
> {code:borderStyle=solid}min{100 sqrt(x)+1000000/x+10000/sqrt(x)|x>0}~~4431.94 at x~~804.936{code}
> *Java-Input:*{code:borderStyle=solid}
> int startValue1 = 100 + 1000000 + 10000;
> int startValue2 = 100;
> UnivariateFunction uf = new UnivariateFunction() {
>     @Override
>     public double value(double x) {
>         return 100/(2*Math.sqrt(x)) - 1000000/Math.pow(x,2) - 10000/(2*Math.pow(x,(double)
3/2));
>     }
> };
> System.out.println(
>     (new BrentSolver()).solve(Integer.MAX_VALUE, uf, 1/Double.MAX_VALUE, Double.MAX_VALUE,
startValue1)
> );
> System.out.println(
>     (new BrentSolver()).solve(Integer.MAX_VALUE, uf, 1/Double.MAX_VALUE, Double.MAX_VALUE,
startValue2)
> );{code}
> *Java-Output:*{code:borderStyle=solid}
> 804.9355821866686
> 1.7976931348623157E308 (= Double.MAX_VALUE){code} 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message