Author: luc
Date: Tue Dec 22 19:30:10 2009
New Revision: 893281

URL: http://svn.apache.org/viewvc?rev=893281&view=rev
Log:
Fixed a convergence discrepancy with respect to theory in Gragg-Bulirsch-Stoer 
integrator.
JIRA: MATH-324

Modified:
    
commons/proper/math/trunk/src/main/java/org/apache/commons/math/ode/nonstiff/GraggBulirschStoerIntegrator.java
    commons/proper/math/trunk/src/site/xdoc/changes.xml
    
commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/GraggBulirschStoerStepInterpolatorTest.java

Modified: 
commons/proper/math/trunk/src/main/java/org/apache/commons/math/ode/nonstiff/GraggBulirschStoerIntegrator.java
URL: 
http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/ode/nonstiff/GraggBulirschStoerIntegrator.java?rev=893281&r1=893280&r2=893281&view=diff
==============================================================================
--- 
commons/proper/math/trunk/src/main/java/org/apache/commons/math/ode/nonstiff/GraggBulirschStoerIntegrator.java
 (original)
+++ 
commons/proper/math/trunk/src/main/java/org/apache/commons/math/ode/nonstiff/GraggBulirschStoerIntegrator.java
 Tue Dec 22 19:30:10 2009
@@ -746,7 +746,7 @@
                     // estimate if there is a chance convergence will
                     // be reached on next iteration, using the
                     // asymptotic evolution of error
-                    final double ratio = ((double) sequence [k] * 
sequence[k+1]) /
+                    final double ratio = ((double) sequence [targetIter] * 
sequence[targetIter + 1]) /
                                          (sequence[0] * sequence[0]);
                     if (error > ratio * ratio) {
                       // we don't expect to converge on next iteration

Modified: commons/proper/math/trunk/src/site/xdoc/changes.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/math/trunk/src/site/xdoc/changes.xml?rev=893281&r1=893280&r2=893281&view=diff
==============================================================================
--- commons/proper/math/trunk/src/site/xdoc/changes.xml (original)
+++ commons/proper/math/trunk/src/site/xdoc/changes.xml Tue Dec 22 19:30:10 2009
@@ -39,6 +39,10 @@
   </properties>
   <body>
     <release version="2.1" date="TBD" description="TBD">
+      <action dev="luc" type="fix" issue="MATH-324" due-to="Vincent Morand">
+        Fixed a convergence discrepancy with respect to theory in 
Gragg-Bulirsch-Stoer
+        integrator.
+      </action>
       <action dev="luc" type="fix" due-to="Dimitri Pourbaix">
         Fixed a wrong dimension check in SVD solver.
       </action>

Modified: 
commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/GraggBulirschStoerStepInterpolatorTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/GraggBulirschStoerStepInterpolatorTest.java?rev=893281&r1=893280&r2=893281&view=diff
==============================================================================
--- 
commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/GraggBulirschStoerStepInterpolatorTest.java
 (original)
+++ 
commons/proper/math/trunk/src/test/java/org/apache/commons/math/ode/nonstiff/GraggBulirschStoerStepInterpolatorTest.java
 Tue Dec 22 19:30:10 2009
@@ -78,8 +78,8 @@
         oos.writeObject(handler);
     }
 
-    assertTrue(bos.size () > 34000);
-    assertTrue(bos.size () < 35000);
+    assertTrue(bos.size () > 33000);
+    assertTrue(bos.size () < 34000);
 
     ByteArrayInputStream  bis = new ByteArrayInputStream(bos.toByteArray());
     ObjectInputStream     ois = new ObjectInputStream(bis);
@@ -101,7 +101,7 @@
       }
     }
 
-    assertTrue(maxError < 5.0e-11);
+    assertTrue(maxError < 5.0e-10);
 
   }
 


Reply via email to