commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From S├ębastien Brisard (JIRA) <j...@apache.org>
Subject [jira] [Commented] (MATH-797) Single step integrators
Date Wed, 27 Jun 2012 03:37:44 GMT

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

S├ębastien Brisard commented on MATH-797:
----------------------------------------

Not really, no. Gauss integrator is the generic name for a bunch of integration schemes which
read
{noformat}
 b                n - 1
/                 ====
[                 \
I  f(t) w(t) dt =  >    w  f(t )
]                 /      i    i
/                 ====
a                i = 0
{noformat}
where {{w(t)}} is a weighting function. The Gauss points t[i] and weights w[i] are chosen
so that the above formula is *exact* for {{f(t)}} polynomial, {{deg(f) <= 2 * n - 1}}.
Various choices of {{w(t)}} lead to various Gauss integration rules
* {{w(t) = 1}} is the so-called Gauss-Legendre rule,
* {{w(t) = (1 - x^2)^(-1 / 2)}}: Gauss-Chebyshev,
* etc...

So, we basically need a mother class to handle Gauss points and Gauss weights, as well as
the above formula. Then, to implement a new Gauss integration rule, we would only need to
derive it from this mother class.
                
> Single step integrators
> -----------------------
>
>                 Key: MATH-797
>                 URL: https://issues.apache.org/jira/browse/MATH-797
>             Project: Commons Math
>          Issue Type: Wish
>    Affects Versions: 3.0
>            Reporter: Gilles
>            Assignee: Gilles
>            Priority: Trivial
>             Fix For: 3.1
>
>
> CM assumes that the user wants to integrate a complex function on a large interval, so
the large interval has to be subdivided into many subintervals. CM does the partition, and
performs convergence checks, using an iterative approach.
> However, if the function is smooth enough, no subdivision of the integration interval
is required. Those use-cases could benefit from the efficiency gain of not performing a convergence
check.
> The proposal is to provide a new interface "UnivariateSingleStepIntegrator":
> {code}
> interface SingleIntervalIntegrator {
>     /**
>      * Method for implementing a single interval integration.
>      * There is no convergence checks because it is not iterative.
>      *
>      * @param f Function to integrate.
>      * @param lower Lower bound of the interval over which to integrate.
>      * @param upper Upper bound of the interval over which to integrate.
>      * @return the integrated value.
>      */
>     double integrate(UnivariateFunction f,
>                      double lower,
>                      double upper);
> }
> {code}
> In effect, the implementation of the above "integrate" method of a new "LegendreGaussIntegratorSingleStepIntegrator"
would the equivalent of "stage(1)" in the current "LegendreGaussIntegrator".

--
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