]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/numeric/odeint/doc/concepts/implicit_system.qbk
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / numeric / odeint / doc / concepts / implicit_system.qbk
1 [/============================================================================
2 Boost.odeint
3
4 Copyright 2011 Mario Mulansky
5 Copyright 2011-2012 Karsten Ahnert
6
7 Use, modification and distribution is subject to the Boost Software License,
8 Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
9 http://www.boost.org/LICENSE_1_0.txt)
10 =============================================================================/]
11
12
13
14 [section Implicit System]
15
16 [heading Description]
17
18 This concept describes how to define a ODE that can be solved by an implicit routine.
19 Implicit routines need not only the function /f(x,t)/ but also the Jacobian /df/dx = A(x,t)/.
20 /A/ is a matrix and implicit routines need to solve the linear problem /Ax = b/.
21 In odeint this is implemented with use of __ublas, therefore, the ['state_type] implicit routines is ['ublas::vector] and the matrix is defined as ['ublas::matrix].
22
23 [heading Notation]
24
25 [variablelist
26 [[`System`] [A type that is a model of `Implicit System`]]
27 [[`Time`] [A type representing the time of the ODE]]
28 [[`sys`] [An object of type `System`]]
29 [[`x`] [Object of type ublas::vector]]
30 [[`dxdt`] [Object of type ublas::vector]]
31 [[`jacobi`] [Object of type ublas::matrix]]
32 [[`t`] [Object of type `Time`]]
33 ]
34
35 [heading Valid Expressions]
36
37 [table
38 [[Name] [Expression] [Type] [Semantics]]
39 [[Calculate ['dx/dt := f(x,t)]] [`sys.first( x , dxdt , t )`] [`void`] [Calculates `f(x,t)`, the result is stored into dxdt] ]
40 [[Calculate ['A := df/dx (x,t)]] [`sys.second( x , jacobi , t )`] [`void`] [Calculates the Jacobian of /f/ at /x/,/t/, the result is stored into `jacobi`] ]
41 ]
42
43 [endsect]