You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Luc Maisonobe (JIRA)" <ji...@apache.org> on 2010/03/24 23:13:27 UTC
[jira] Resolved: (MATH-358) ODE integrator goes past specified end
of integration range
[ https://issues.apache.org/jira/browse/MATH-358?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Luc Maisonobe resolved MATH-358.
--------------------------------
Resolution: Fixed
fixed in subversion repository as of r927202
> ODE integrator goes past specified end of integration range
> -----------------------------------------------------------
>
> Key: MATH-358
> URL: https://issues.apache.org/jira/browse/MATH-358
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 2.0
> Environment: Linux
> Reporter: Luc Maisonobe
> Assignee: Luc Maisonobe
> Priority: Critical
> Fix For: 2.1
>
>
> End of integration range in ODE solving is handled as an event.
> In some cases, numerical accuracy in events detection leads to error in events location.
> The following test case shows the end event is not handled properly and an integration that should cover a 60s range in fact covers a 160s range, more than twice the specified range.
> {code}
> public void testMissedEvent() throws IntegratorException, DerivativeException {
> final double t0 = 1878250320.0000029;
> final double t = 1878250379.9999986;
> FirstOrderDifferentialEquations ode = new FirstOrderDifferentialEquations() {
>
> public int getDimension() {
> return 1;
> }
>
> public void computeDerivatives(double t, double[] y, double[] yDot)
> throws DerivativeException {
> yDot[0] = y[0] * 1.0e-6;
> }
> };
> DormandPrince853Integrator integrator = new DormandPrince853Integrator(0.0, 100.0,
> 1.0e-10, 1.0e-10);
> double[] y = { 1.0 };
> integrator.setInitialStepSize(60.0);
> double finalT = integrator.integrate(ode, t0, y, t, y);
> Assert.assertEquals(t, finalT, 1.0e-6);
> }
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.