From issues-return-27293-apmail-commons-issues-archive=commons.apache.org@commons.apache.org Sun Jun 3 14:05:24 2012
Return-Path:
X-Original-To: apmail-commons-issues-archive@minotaur.apache.org
Delivered-To: apmail-commons-issues-archive@minotaur.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
by minotaur.apache.org (Postfix) with SMTP id 1101F9DD4
for ; Sun, 3 Jun 2012 14:05:24 +0000 (UTC)
Received: (qmail 71454 invoked by uid 500); 3 Jun 2012 14:05:23 -0000
Delivered-To: apmail-commons-issues-archive@commons.apache.org
Received: (qmail 71403 invoked by uid 500); 3 Jun 2012 14:05:23 -0000
Mailing-List: contact issues-help@commons.apache.org; run by ezmlm
Precedence: bulk
List-Help:
List-Unsubscribe:
List-Post:
List-Id:
Reply-To: issues@commons.apache.org
Delivered-To: mailing list issues@commons.apache.org
Received: (qmail 71394 invoked by uid 99); 3 Jun 2012 14:05:23 -0000
Received: from issues-vm.apache.org (HELO issues-vm) (140.211.11.160)
by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 03 Jun 2012 14:05:23 +0000
Received: from isssues-vm.apache.org (localhost [127.0.0.1])
by issues-vm (Postfix) with ESMTP id A05DD14285F
for ; Sun, 3 Jun 2012 14:05:23 +0000 (UTC)
Date: Sun, 3 Jun 2012 14:05:23 +0000 (UTC)
From: =?utf-8?Q?S=C3=A9bastien_Brisard_=28JIRA=29?=
To: issues@commons.apache.org
Message-ID: <384381045.31726.1338732323658.JavaMail.jiratomcat@issues-vm>
In-Reply-To: <2109077117.22041.1338474743374.JavaMail.jiratomcat@issues-vm>
Subject: [jira] [Comment Edited] (MATH-797) Single step integrators
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394
[ https://issues.apache.org/jira/browse/MATH-797?page=3Dcom.atlassian.j=
ira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=3D132881=
63#comment-13288163 ]=20
S=C3=A9bastien Brisard edited comment on MATH-797 at 6/3/12 2:04 PM:
----------------------------------------------------------------
I have a jQuadrature project sitting in my workspace for almost two years n=
ow, which I'm very happy to refactor and contribute if we settle on a prope=
r interface for Gauss integrators. I have currently implemented: Gauss-Lege=
ndre, Gauss-Chebyshev (first and second kinds), Gauss-Hermite. Integration =
points and weights are computed and cached if needed, so the order is not l=
imited.
In NR for example, the integration points were computed with built-in Newto=
n iterations. I chose bracketing instead. It may be a bit slower, but it's =
not called very often (only when new Gaussian rules are needed), and accura=
cy of the computed roots is then garanteed (to within 1ulp). It's more diff=
icult to insure the accuracy of the weights (when you compute them on-the-f=
ly), and I wrote a high accuracy computation of integration points and weig=
hts for the Gauss-Legendre rule, using {{BigDecimal}} (at that time, I knew=
but did not use Commons-Math, shame on me!).
If any of this seems interesting to you, it's right here !
One point worth noting: with Gauss integration schemes, I always wondered w=
hether naming the integration method {{integrate(f, a, b)}} was a good idea=
. Indeed, generic integration schemes do not integrate the provided univari=
ate function {{f( x )}}, but the weighted function {{f( x ) * w( x )}}, whi=
ch might be confusing. Of course, there is no such ambiguity with Gauss-Leg=
endre...
=20
was (Author: celestin):
I have a jQuadrature project sitting in my workspace for almost two yea=
rs now, which I'm very happy to refactor and contribute if we settle on a p=
roper interface for Gauss integrators. I have currently implemented: Gauss-=
Legendre, Gauss-Chebyshev (first and second kinds), Gauss-Hermite. Integrat=
ion points and weights are computed and cached if needed, so the order is n=
ot limited.
In NR for example, the integration points were computed with built-in Newto=
n iterations. I chose bracketing instead. It may be a bit slower, but it's =
not called very often (only when new Gaussian rules are needed), and accura=
cy of the computed roots is then garanteed (to within 1ulp). It's more diff=
icult to insure the accuracy of the weights (when you compute them on-the-f=
ly), and I wrote a high accuracy computation of integration points and weig=
hts for the Gauss-Legendre rule, using {{BigDecimal}} (at that time, I knew=
but did not use Commons-Math, shame on me!).
If any of this seems interesting to you, it's right here !
One point worth noting: with Gauss integration schemes, I always wondered w=
hether calling the integration method {{integrate(f, a, b)}} was a good ide=
a. Indeed, generic integration schemes do not integrate the provided univar=
iate function {{f( x )}}, but the weighted function {{f( x ) * w( x )}}, wh=
ich might be confusing. Of course, there is no such ambiguity with Gauss-Le=
gendre...
=20
> 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 subinterval=
s. CM does the partition, and performs convergence checks, using an iterati=
ve approach.
> However, if the function is smooth enough, no subdivision of the integrat=
ion 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 "UnivariateSingleStepIntegrato=
r":
> {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 "L=
egendreGaussIntegratorSingleStepIntegrator" 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 administrato=
rs: https://issues.apache.org/jira/secure/ContactAdministrators!default.jsp=
a
For more information on JIRA, see: http://www.atlassian.com/software/jira