|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r63649 - sandbox/odeint/libs/numeric/odeint/doc
From: mario.mulansky_at_[hidden]
Date: 2010-07-05 10:28:11
Author: mariomulansky
Date: 2010-07-05 10:28:09 EDT (Mon, 05 Jul 2010)
New Revision: 63649
URL: http://svn.boost.org/trac/boost/changeset/63649
Log:
small typo corrections in the doc
Text files modified:
sandbox/odeint/libs/numeric/odeint/doc/concepts.qbk | 2 +-
sandbox/odeint/libs/numeric/odeint/doc/odeint.qbk | 10 +++++-----
sandbox/odeint/libs/numeric/odeint/doc/tutorial.qbk | 11 +++++------
3 files changed, 11 insertions(+), 12 deletions(-)
Modified: sandbox/odeint/libs/numeric/odeint/doc/concepts.qbk
==============================================================================
--- sandbox/odeint/libs/numeric/odeint/doc/concepts.qbk (original)
+++ sandbox/odeint/libs/numeric/odeint/doc/concepts.qbk 2010-07-05 10:28:09 EDT (Mon, 05 Jul 2010)
@@ -102,7 +102,7 @@
Error steppers execute one timestep of a specific order with a given stepsize.
Additionally, an error estimation of the obtained result is computed that can
be used to control the error introduced by the time discretization.
-As the basic steppers, error steppers usually allocate internal memory to store
+Like the basic steppers, error steppers usually allocate internal memory to store
intermediate function call results. If state types with variable size are used
(e.g. `vector`), it has to be assured that the stepper gets informed about any
change of the state size by calling its `adjust_size` method.
Modified: sandbox/odeint/libs/numeric/odeint/doc/odeint.qbk
==============================================================================
--- sandbox/odeint/libs/numeric/odeint/doc/odeint.qbk (original)
+++ sandbox/odeint/libs/numeric/odeint/doc/odeint.qbk 2010-07-05 10:28:09 EDT (Mon, 05 Jul 2010)
@@ -23,7 +23,7 @@
The easiest algorithm is the /Euler-Scheme/, where starting at x(0) one
finds x(dt) = x(0) + dt*f(x(0),0).
Now one can use x(dt) and obtain x(2dt) in a similar way and so on.
-The Euler method is of order 1, that means the error at each step is ~ dt[superscript 2].
+The Euler method is of order 1, that means the error at each step is ~ dt^2.
This is, of course, not very satisfying, which is why the Euler method is
merely used for real life problems and serves just as illustrative example.
In [*odeint], the following algorithms are implemented:
@@ -43,11 +43,9 @@
[section Short Example]
This section gives a quick introduction to the most important features of the
-library. Image, for example, you want to numerically integrate a harmonic oscillator with friction. The equations of motion are given by x'' = -x + gamma x'.
+library. Imagine, for example, you want to numerically integrate a harmonic oscillator with friction. The equations of motion are given by x'' = -x + gamma x'.
This can be transformed to a system of two first-order differential equations
-design the right hand side of the equation w' = f(w) where in this case
-with new variables x and p=x'. To apply numerical integration one first has to
-w = (x,p):
+by introducing the new variable p = x'. If we now use w = (x,p) the equation of motion above can be written as w' = f(w):
[import ../examples/doc_harm_osc.cpp]
[rhs_function]
@@ -55,6 +53,8 @@
Here we chose [*vector<double>] as the state type, but others are also possible,
for example [*tr1/array<double,2>]. Odeint is designed in such a way that it
works with basically any container that can be accessed via iterators.
+Moreover, any structure can be used as state type, provided vector-space operations
+are provided for them.
The parameter structure of the function is crucial: the integration methods will
always call them in the form [*f(x, dxdt, t)]. So even if there is no explicit
time dependence, one has to define [*t] as a function parameter.
Modified: sandbox/odeint/libs/numeric/odeint/doc/tutorial.qbk
==============================================================================
--- sandbox/odeint/libs/numeric/odeint/doc/tutorial.qbk (original)
+++ sandbox/odeint/libs/numeric/odeint/doc/tutorial.qbk 2010-07-05 10:28:09 EDT (Mon, 05 Jul 2010)
@@ -7,13 +7,12 @@
system [*x]. Mathematically, this usually is an n-dimensional vector with
real numbers or complex numbers as scalar objects. For odeint the most natural
way is to use `vector< double >` or `vector< complex< double > >` to represent
-the system state. However, odeint can deal with other container types than
-vector as well, e.g. `tr1/array< double , N >` as long as it is able to obtain
+the system state. However, odeint can deal with other container types as well, e.g. `tr1/array< double , N >` as long as it is able to obtain
a ForwardIterator going through all of the container's elements. The scalar type
-must have several operators ( +, -, +=, -= ) and the `abs()`-fcuntion defined .
+must have several operations ( + , - , += , -= ) and the `abs()`-function defined.
Furthermore, one can choose the datatype of the time (that is, the parameter to
which respect the differentiation is done). The standard type for this is
-`double`, but one might be able to choose, for example, `complex< double >` as
+`double`, but it should be possible to use, for example, `complex< double >` as
well (untested). It must be possible to multiply the time type and the scalar
type of the vector. For the most cases `vector< double >` as state type and the
standard `double` for the time type should be sufficient.
@@ -41,7 +40,7 @@
[endsect]
[section Stepper Types]
-Numerical integration works iteratevly, that means you start at a state ['x(t)]
+Numerical integration works iteratively, that means you start at a state ['x(t)]
and performs a timestep of length ['dt] to obtain the approximate state
['x(t+dt)]. There exist many different methods to perform such a timestep each
of which has a certain order ['q]. If the order of a method is ['q] than it is
@@ -102,7 +101,7 @@
The usual way to create a controlled stepper is via the
`make_controlled_stepper_standard( ErrorStepper , eps_abs , eps_rel , a_x , a_dxdt )`
function that takes an error stepper as parameter and four values defining the maximal
-absolute and relative error allowed for on integration step.
+absolute and relative error allowed for one integration step.
The standard controlled stepper created by this method ensures that the error ['err]
of the solution fulfills
['err < eps_abs + eps_rel * ( a_x * |x| + a_dxdt * dt * |dxdt| ) ]
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk