-
Notifications
You must be signed in to change notification settings - Fork 0
Solve temporal problem
Let's suppose that we have a scalar function x(t)
where t
is the time. If x(t)
is the position, so v(t)
is the speed and a(t)
the acceleration
In dynamics, we have the Newton's Second Law or called Fundamental principle of the dynamic
Where M
is the mass and F
is applied force which depends of the time t
, the position x
and the speed v
Once the mass M
is not zero, we rewrite this equation like
Where f
is the force function and it depends only on the time t
, the position x(t)
and the speed v(t)
.
There are many ways to solve this differential equation and usually they involve the time-discretization like we are going to use here.
In any case, to solve this equation knowing the function f
, we need two more information:
-
Initial Value Problem: When we know the values
x(t0)
andv(t0)
-
Bounded Problem: When we know the values
x(t0)
andx(tn)
For our application, we are using only the IVP
(Initial Value Problem).
We start our problem knowing the values of x(t0) = x0
and v(t0) = v0
, and so we can calculate the acceleration a0 = a(t0) = f(t0, x0, v0)
Now we compute approximations of the values x
, v
and a
for many subsequent steps.
To compute the solution we divide them into 2 sections:
- Linear problems, which we can express the equation like
a + c*v + k*x = f(t)
. We have many methods of time discretization for linear equations and to find the values of each step we need just to make matrix multiplications:
- Non-linear problems, which are unfortunately harder to compute and take more time compared to linear problems. For these problems, there are many methods too and the choice of which one we use depends on which problem you are facing. Examples of non-linear solvers are
-
Newmark's method: For equations of
a + c*v + fint(x) = fext(t)
-
Runge Kutta method: For any equation of
a = f(t, x, v)
-
Newmark's method: For equations of