// limit the output to every 10th step and increase the precision to make
// the test more robust
if (step_number % 10 == 0)
- out << t << " " << std::setprecision(7)
+ out << t << " " << std::setprecision(10)
<< sol[0] << " " << sol[1] << " " << sol[2] << std::endl;
return 0;
};
0 3.9 1.1 2.8
-1 2.075275 1.059602 2.499911
-2 1.10046 1.72361 2.499985
-3 0.7896202 2.326668 2.499981
-4 0.8117726 2.725584 2.499993
-5 1.187003 2.595542 2.500085
-6 1.887311 1.494098 2.499879
-7 1.323271 1.619016 2.500041
-8 0.9217875 2.130219 2.50001
-9 0.8495426 2.539475 2.50008
-10 1.06497 2.595956 2.499973
+1 2.075274578 1.059601971 2.499948149
+2 1.100460018 1.723610111 2.499972517
+3 0.7896202372 2.326668043 2.499980207
+4 0.8117726432 2.725583965 2.499979833
+5 1.187002916 2.595541878 2.499970301
+6 1.887311324 1.494098057 2.499952687
+7 1.323271341 1.619016372 2.499966912
+8 0.9217874641 2.130219386 2.499976935
+9 0.849542577 2.539475069 2.499978894
+10 1.064969831 2.595955794 2.499973382
set Initial time = 0
set Time interval between each output = 0.1
subsection Error control
- set Absolute error tolerance = 0.000001
- set Relative error tolerance = 0.000010
+ set Absolute error tolerance = 0.00000001
+ set Relative error tolerance = 0.00000001
end
subsection Running parameters
set Implicit function is linear = true