As the name implies, this approach uses finite differencing to compute
First, a change in
,
is selected. Then the change in the output
is computed as shown below.
This approach is quite labor intensive and is typically used only for small-scale
design sensitivity analysis (~ 20 variables). For a system with Nb design
variables, this approach requires
simulations. Two simulations are needed to compute
. Nb +1 simulations are needed to compute
. In other words, one for each design variable and
one single simulation for the current design.
When finite differencing, MotionSolve provides parallel processing as
an option to compute the sensitivity matrix
. See the example below for more details on how to
use the parallel approach.
The major challenge with finite differencing is selecting the right
. If this is too small, the sensitivities get lost in
the numerical error in the solution. If these are too large, the nonlinearity of the
solution is overlooked. In both cases, the sensitivities can have significant error.
The perturbation
is also dependent on the scale and units of the
system. In MotionSolve,
is calculated by the following
formula:
This means you can change the perturbation step by providing different value to
Optimizer.fd_step. In summary, finite differencing is
applicable only for small problems and there are some hard-to-solve issues regarding
what the perturbations
should be.