commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Phil Steitz (JIRA)" <j...@apache.org>
Subject [jira] Closed: (MATH-358) ODE integrator goes past specified end of integration range
Date Sat, 03 Apr 2010 03:02:27 GMT

     [ https://issues.apache.org/jira/browse/MATH-358?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Phil Steitz closed MATH-358.
----------------------------


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


Mime
View raw message