| You can just integrate, can't you? dx/dt = Af(x(t)) ==>
/ 1 /
| ---- dx = A | dt
| f(x) |
/ /
Integrate (make sure you do the right things with the limits of
integration) and then you have t as a function of x. Then all you
have to do (this is usually the intractable part) is to turn that
into x as a function of t.
To choose a simple example let f(x) = x^2, then
x t
/ 1 /
|-------- d(x') = A | d(t')
| (x')^2 |
/ /
x0 0
-(1/x) + (1/x0) = At
x = x0 / (1 - Atx0)
And you can always integrate numerically if need be.
|
| Have you considered just using something like a Runge Kutta algorithm?
One popular form compares the result of a 4'th and 5'th order
evaluation and adaptively sets the stepsize based on the difference.
[The idea behind RK formulas is to make the divided difference
estimates of the functional derivatives match the actual ones
from your equations, to a certain degree; the trick behind RK4(5)
and similar algorithms is to do this for two orders, minimizing
wasted work, so as to get an error estimate.]
As mentioned earlier, if your problem has special structure, the
difference equation can be worked out in closed form. There are many
specialized algorithms for special problems. For example Gauss-Jackson
is well suited for orbital calculations, and can be amazingly accurate
and fast.
- Jim
|
|
the classical approach to solve a differential equation is to
look at it long and deep enough and then guess the answer, verify
the answer aginst the DE, if your guess is wrong , guess again,
eventually you'll zoom to the right function .
no studies i know off has been done on the speed of this method.
|