[ < ] | [ > ] | [Contents] | [Index] | [ ? ] |
An obvious advantage of having acces to the Jacobian matrices along the system trajectory concerns automatic sensitivity analyses, as either:
This is declared in Zinit as:
! ------------- ! Sensitivities ! ------------- Sensy_to_var < var: eta_pray, pert: INIT; var: eta_pred, pert: INIT; >; |
Each variable at origin of a perturbation is declared as var:
,
and the type of perturbation in pert:
. Here, INIT conditions are
only allowed because the two variables are states variables. For transfers,
pert: pulse
corresponds to an initial pulse, pert: step_resp
and pert: step_eff
to initial steps, the difference between
_resp
(response form)
and _eff
(effect form) concerns the
diagonal only of the sensitivity matrix
(see Feedback gains in non-linear models).
Non initial perturbation can also be asked for:
Sensy_to_var < !* var: eta_courant_L, pert: init at 100; !* var: ff_T_czcx, pert: pulse at 100 every 20; !* var: ff_Psi_Tczcx, pert: step_eff; !* var: ff_Psi_Tczcx, pert: step_Resp at 10 every 100; ! *** premiers tests identiques a lorhcl.ref var: ff_courant_L , pert: step_eff; var: ff_T_czcx , pert: step_eff; var: ff_Psi_Tczcx , pert: step_eff; var: ff_Psi_Tsz , pert: pulse at 100 every 50; >; |
In this example taken from ‘lorhcl’, a sensitivity can increase so as to
trespass the Fortran capacity, so that each sensitivity vector (matrix column)
can be reset at some time-increment at III every JJJ;
It is noteworthy that these sensitivity analyses are not based on difference between two runs with different initial states or parameter values, but on the formal derivatives of the model. This method is not only numerically robust, but is also rigorously funded as based on the TLS of the model(5).
If the dimetaphi
sequence is built by the users, he should declare
the number of perturbing variables as nxp=
:
parameter (nxp=np,nyp=0,nzp=0); |
here, all state variables are considered as perturbing variables.
The sensitivity vectors are output in the result files ‘sens.data’ for cells and ‘sigma.data’ for transfers. In those files the first column corresponds again with time, and the other columns are relative sensitivities of the cell states (in ‘sens.data’) and transfers (in ‘sigma.data’) with respect to the initial value of the perturbed state.
In our predator-prey example, the second column of ‘sens.data’ will contain
the derivative of η1(t) with respect to η1(t = 0).
Drawing the
second column of ‘sens.data’ against the first one
gives the time evolution of the sensitivity of eta-pred
to a change in the initial value of eta-pray
. One can check
in that it is set to 1 at t = 0:
# Sensy_to: eta_pray 3 eta_pred 5 # time \\ of: eta_pray eta_pred eta_pray eta_pred 0.00000E+00 1.00000E+00 0.00000E+00 0.00000E+00 1.00000E+00 1.00000E-02 9.90868E-01 1.11905E-02 -1.26414E-02 9.98859E-01 |
The two last columns are the state sensitivity to a change in initial conditions of the number of predators.
In the same way, the j+1th column of ‘sigma.data’ will be the derivative of ϕj(t) with respect to ηi(t = 0) . Here:
# Sensy_to: eta_pray eta_pred # time \\ of: ff_interact ff_interact 0.00000E+00 1.60683E+00 8.47076E-01 1.00000E-02 1.59980E+00 8.18164E-01 |
the unique transfer variable gives rise to two sensitivity columns.
Sensitivity studies are usefull to assess the predictability properties of the corresponding system.
[ < ] | [ > ] | [Contents] | [Index] | [ ? ] |
A forward sensitivity to a parameter will be computed when specified as
described in Parameters. For example, suppose that
the sensitivity to an initial change in the apar
parameter of
the predator model is of interest.
The sensitivity calculs is turned on as a forward
parameter specified on the Free_parameter
list:
Free_parameter: [fwd: apar, cpar]; |
The result are in ‘sensp.data’ for cells and ‘sigmap.data’ for transfers.
# Sensy_to: pi_prandtl 3 4 pi_rayleigh_ 6 # time \\ of: eta_courant_ eta_T_czcx eta_T_sz eta_courant_ eta_T 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.000 2.00000E-03 -4.77172E-03 -3.99170E-05 3.55971E-05 -9.94770E-05 -1.004 |
In the above example from ‘lorhcl’ sensitivity of the three states with respect to an initial change in two parameters are independantly given (first line also numbers the column to easy gnuplot using).
[ < ] | [ > ] | [Contents] | [Index] | [ ? ] |
It is possible to look at the sensitivity of the matrix of advance in
states space (the matrix aspha
) with regard to a parameter.
The parameter must be accounted for in the parameter number and be in the
parameter list, flagged as the matrix mx
parameter, like in
Free_parameter: [mx: apar], cpar; |
This feature is associated with a selecting flag, ‘dPi_aspha’. One gets
the result in the matrix d_pi_aspha(.,.)
of dimension
(np
,np
).
This matrix may be used to compute other quantities, for example
it may be used to compute the sensitivity of the eigenvalues of
the state-advance matrix with regard to the [fwd]
parameter.
These additional computations have to be programmed by the user in
‘zsteer’ with matrices declared and initialized in
‘zinit’. An example is given in the example ‘lorhcl’
provided with the Miniker installation files, following a method proposed
by Stephane Blanco.
[Contents] | [Index] | [ ? ] |
This document was generated by a tester on a sunny day using texi2html.