.. [Python] *Python programming language*, http://www.python.org/
-.. [Quarteroni16] Quarteroni A., Manzoni A., Negri F., *Reduced Basis Methods for Partial Differential Equations - An introduction*, Springer, 2016
+.. [Quarteroni16] Quarteroni A., Manzoni A., Negri F., *Reduced Basis Methods for Partial Differential Equations - An introduction*, Unitext vol.92, Springer, 2016
.. [R] *The R Project for Statistical Computing*, http://www.r-project.org/
calculation has to be requested at the same time.
Example:
- ``C = ADD.get("APosterioriCorrelations")[-1]``
+ ``apc = ADD.get("APosterioriCorrelations")[-1]``
matrix :math:`\mathbf{A}` of the optimal state.
Example:
- ``A = ADD.get("APosterioriCovariance")[-1]``
+ ``apc = ADD.get("APosterioriCovariance")[-1]``
covariances calculation has to be requested at the same time.
Example:
- ``S = ADD.get("APosterioriStandardDeviations")[-1]``
+ ``aps = ADD.get("APosterioriStandardDeviations")[-1]``
covariances calculation has to be requested at the same time.
Example:
- ``V = ADD.get("APosterioriVariances")[-1]``
+ ``apv = ADD.get("APosterioriVariances")[-1]``
:math:`\mathbf{x}^a` in data assimilation.
Example:
- ``Xa = ADD.get("Analysis")[-1]``
+ ``xa = ADD.get("Analysis")[-1]``
per assimilation step corresponding to an observed state.
Example:
- ``i = ADD.get("CurrentIterationNumber")[-1]``
+ ``cin = ADD.get("CurrentIterationNumber")[-1]``
is not necessarily the last state.
Example:
- ``Xo = ADD.get("CurrentOptimum")[:]``
+ ``xo = ADD.get("CurrentOptimum")[:]``
iterative algorithm procedure.
Example:
- ``Xs = ADD.get("CurrentState")[:]``
+ ``xs = ADD.get("CurrentState")[:]``
non-iterative algorithms.
Example:
- ``i = ADD.get("CurrentStepNumber")[-1]``
+ ``csn = ADD.get("CurrentStepNumber")[-1]``
used.
Example :
- ``Pf = ADD.get("ForecastCovariance")[-1]``
+ ``pf = ADD.get("ForecastCovariance")[-1]``
during the iterative algorithm procedure.
Example:
- ``Xp = ADD.get("ForecastState")[:]``
+ ``xf = ADD.get("ForecastState")[:]``
iteration.
Example:
- ``i = ADD.get("IndexOfOptimum")[-1]``
+ ``ioo = ADD.get("IndexOfOptimum")[-1]``
case of a single-state assimilation.
Example:
- ``ds = ADD.get("InnovationAtCurrentAnalysis")[-1]``
+ ``da = ADD.get("InnovationAtCurrentAnalysis")[-1]``
at the initial state.
Example:
- ``GradH = ADD.get("JacobianMatrixAtBackground")[-1]``
+ ``gradh = ADD.get("JacobianMatrixAtBackground")[-1]``
current state.
Example:
- ``GradH = ADD.get("JacobianMatrixAtCurrentState")[-1]``
+ ``gradh = ADD.get("JacobianMatrixAtCurrentState")[-1]``
at the optimal state.
Example:
- ``GradH = ADD.get("JacobianMatrixAtOptimum")[-1]``
+ ``gradh = ADD.get("JacobianMatrixAtOptimum")[-1]``
state.
Example:
- ``KG = ADD.get("KalmanGainAtOptimum")[-1]``
+ ``kg = ADD.get("KalmanGainAtOptimum")[-1]``
indicator.
Example:
- ``m = ADD.get("MahalanobisConsistency")[-1]``
+ ``mc = ADD.get("MahalanobisConsistency")[-1]``
pair: Minimizer ; TNC
pair: Minimizer ; CG
pair: Minimizer ; BFGS
- pair: Minimizer ; NCG
+
+.. pair: Minimizer ; NCG
Minimizer
*Predefined name*. This key allows to choose the optimization minimizer. The
"TNC" (nonlinear constrained minimizer),
"CG" (nonlinear unconstrained minimizer),
"BFGS" (nonlinear unconstrained minimizer),
- "NCG" (Newton CG minimizer).
It is strongly recommended to stay with the default.
+.. "NCG" (Newton CG minimizer).
+
Example :
``{"Minimizer":"LBFGSB"}``
.. index:: single: OptimalLocations
OptimalLocations
- *List of integer series*. Each element is a series, containing the indices of
- ideal positions or optimal points where a measurement is required, in the
- order of the variables of a state vector considered arbitrarily in
- one-dimensional form, and in the same order as the vectors of the reduced
- basis found iteratively.
+ *Integer series*. This series contains the indices of ideal positions or
+ optimal points where a measurement is required, in the order of the variables
+ of a state vector considered arbitrarily in one-dimensional form, and in the
+ same order as the vectors of the reduced basis found iteratively.
- It is identical to a single output of the ideal positions or optimum points
- of a :ref:`section_ref_algorithm_MeasurementsOptimalPositioningTask`.
+ It is identical to a single output (one single series) of the ideal positions
+ or optimum points (which is a list of integer series) of a
+ :ref:`section_ref_algorithm_MeasurementsOptimalPositioningTask`.
required for this quantile estimate.
Example :
- ``Xq = ADD.get("SampledStateForQuantiles")[:]``
+ ``xq = ADD.get("SampledStateForQuantiles")[:]``
SingularValues
*List of real value series*. Each element is a series, containing the
singular values obtained through a SVD decomposition of a collection of full
- state vectors.
+ state vectors. The number of singular values is not limited by the requested
+ size of the reduced basis.
Example :
``sv = ADD.get("SingularValues")[-1]``
*Real value*. This key indicates the recall rate at the best swarm insect in
the neighbourhood of the current insect, which is by default the whole swarm.
It is a floating point positive value. The default value is about
- :math:`1/2+ln(2)` and it is recommended to adapt it, rather by reducing it,
- to the physical case that is being treated.
+ :math:`1/2+ln(2)=1.19315` and it is recommended to adapt it, rather by
+ reducing it, to the physical case that is being treated.
Example :
``{"SocialAcceleration":1.19315}``
.. index:: single: PCA
.. index:: single: Kahrunen-Loeve
.. index:: single: RBM
+.. index:: single: ROM
.. index:: single: EIM
.. index:: single: Fourier
.. index:: single: wavelets
.. [Python] *Python programming language*, http://www.python.org/
-.. [Quarteroni16] Quarteroni A., Manzoni A., Negri F., *Reduced Basis Methods for Partial Differential Equations - An introduction*, Springer, 2016
+.. [Quarteroni16] Quarteroni A., Manzoni A., Negri F., *Reduced Basis Methods for Partial Differential Equations - An introduction*, Unitext vol.92, Springer, 2016
.. [R] *The R Project for Statistical Computing*, http://www.r-project.org/
temps demandé le calcul de ces covariances d'erreurs *a posteriori*.
Exemple :
- ``C = ADD.get("APosterioriCorrelations")[-1]``
+ ``apc = ADD.get("APosterioriCorrelations")[-1]``
covariances des erreurs *a posteriori* de l'état optimal.
Exemple :
- ``A = ADD.get("APosterioriCovariance")[-1]``
+ ``apc = ADD.get("APosterioriCovariance")[-1]``
temps demandé le calcul de ces covariances d'erreurs *a posteriori*.
Exemple :
- ``S = ADD.get("APosterioriStandardDeviations")[-1]``
+ ``aps = ADD.get("APosterioriStandardDeviations")[-1]``
temps demandé le calcul de ces covariances d'erreurs *a posteriori*.
Exemple :
- ``V = ADD.get("APosterioriVariances")[-1]``
+ ``apv = ADD.get("APosterioriVariances")[-1]``
:math:`\mathbf{x}^a` en assimilation de données.
Exemple :
- ``Xa = ADD.get("Analysis")[-1]``
+ ``xa = ADD.get("Analysis")[-1]``
d'itération par pas d'assimilation correspondant à un état observé.
Exemple :
- ``i = ADD.get("CurrentIterationNumber")[-1]``
+ ``cin = ADD.get("CurrentIterationNumber")[-1]``
utilisé. Ce n'est pas nécessairement le dernier état.
Exemple :
- ``Xo = ADD.get("CurrentOptimum")[:]``
+ ``xo = ADD.get("CurrentOptimum")[:]``
au cours du déroulement itératif de l'algorithme utilisé.
Exemple :
- ``Xs = ADD.get("CurrentState")[:]``
+ ``xs = ADD.get("CurrentState")[:]``
algorithmes non itératifs.
Exemple :
- ``i = ADD.get("CurrentStepNumber")[-1]``
+ ``csn = ADD.get("CurrentStepNumber")[-1]``
l'algorithme utilisé.
Exemple :
- ``Pf = ADD.get("ForecastCovariance")[-1]``
+ ``pf = ADD.get("ForecastCovariance")[-1]``
déroulement itératif temporel de l'algorithme utilisé.
Exemple :
- ``Xf = ADD.get("ForecastState")[:]``
+ ``xf = ADD.get("ForecastState")[:]``
n'est pas nécessairement le numéro de la dernière itération.
Exemple :
- ``i = ADD.get("IndexOfOptimum")[-1]``
+ ``ioo = ADD.get("IndexOfOptimum")[-1]``
l'état analysé dans le cas d'une assimilation mono-état.
Exemple :
- ``ds = ADD.get("InnovationAtCurrentAnalysis")[-1]``
+ ``da = ADD.get("InnovationAtCurrentAnalysis")[-1]``
effectué à l'état initial.
Exemple:
- ``GradH = ADD.get("JacobianMatrixAtBackground")[-1]``
+ ``gradh = ADD.get("JacobianMatrixAtBackground")[-1]``
effectué à l'état courant.
Exemple:
- ``GradH = ADD.get("JacobianMatrixAtCurrentState")[-1]``
+ ``gradh = ADD.get("JacobianMatrixAtCurrentState")[-1]``
effectué à l'état optimal.
Exemple:
- ``GradH = ADD.get("JacobianMatrixAtOptimum")[-1]``
+ ``gradh = ADD.get("JacobianMatrixAtOptimum")[-1]``
est effectué à l'état optimal.
Exemple:
- ``KG = ADD.get("KalmanGainAtOptimum")[-1]``
+ ``kg = ADD.get("KalmanGainAtOptimum")[-1]``
qualité de Mahalanobis.
Exemple :
- ``m = ADD.get("MahalanobisConsistency")[-1]``
+ ``mc = ADD.get("MahalanobisConsistency")[-1]``
pair: Minimizer ; TNC
pair: Minimizer ; CG
pair: Minimizer ; BFGS
- pair: Minimizer ; NCG
+
+.. pair: Minimizer ; NCG
Minimizer
*Nom prédéfini*. Cette clé permet de changer le minimiseur pour l'optimiseur.
"TNC" (minimisation non linéaire sous contraintes),
"CG" (minimisation non linéaire sans contraintes),
"BFGS" (minimisation non linéaire sans contraintes),
- "NCG" (minimisation de type gradient conjugué de Newton).
Il est fortement conseillé de conserver la valeur par défaut.
+.. "NCG" (minimisation de type gradient conjugué de Newton).
+
Exemple :
``{"Minimizer":"LBFGSB"}``
.. index:: single: OptimalLocations
OptimalLocations
- *Liste de série d'entiers*. Chaque élément est une série, contenant les
- indices des positions idéales ou points optimaux auxquels une mesure est
- requise, selon l'ordre des variables d'un vecteur d'état considéré
- arbitrairement sous forme unidimensionnelle, et dans le même ordre que les
- vecteurs de la base réduite trouvés itérativement.
+ *Série d'entiers*. Cette série contient les indices des positions idéales ou
+ points optimaux auxquels une mesure est requise, selon l'ordre des variables
+ d'un vecteur d'état considéré arbitrairement sous forme unidimensionnelle, et
+ dans le même ordre que les vecteurs de la base réduite trouvés itérativement.
- Elle est identique à une sortie unique des positions idéales ou points
- optimaux d'un
+ Elle est identique à une sortie unique (une seule série) des positions
+ idéales ou points optimaux (qui est une liste de séries d'entiers) d'un
:ref:`section_ref_algorithm_MeasurementsOptimalPositioningTask`.
nombre d'échantillons requis pour cette estimation de quantiles.
Exemple :
- ``Xq = ADD.get("SampledStateForQuantiles")[:]``
+ ``xq = ADD.get("SampledStateForQuantiles")[:]``
SingularValues
*Liste de série de valeurs réelles*. Chaque élément est une série, contenant
les valeurs singulières obtenues par une décomposition SVD d'un ensemble de
- vecteurs d'états complets.
+ vecteurs d'états complets. Le nombre de valeurs singulières retenues n'est
+ pas limité par la taille de la base réduite demandée.
Exemple :
``sv = ADD.get("SingularValues")[-1]``
SocialAcceleration
*Valeur réelle*. Cette clé indique le taux de rappel vers le meilleur insecte
du voisinage de l'insecte courant, qui est par défaut l'essaim complet. C'est
- une valeur réelle positive. Le défaut est à peu près de :math:`1/2+ln(2)` et
- il est recommandé de l'adapter, plutôt en le réduisant, au cas physique qui
- est en traitement.
+ une valeur réelle positive. Le défaut est à peu près de
+ :math:`1/2+ln(2)=1.19315` et il est recommandé de l'adapter, plutôt en le
+ réduisant, au cas physique qui est en traitement.
Exemple :
``{"SocialAcceleration":1.19315}``
.. index:: single: PCA
.. index:: single: Kahrunen-Loeve
.. index:: single: RBM
+.. index:: single: ROM
.. index:: single: EIM
.. index:: single: Fourier
.. index:: single: ondelettes
import numpy, scipy, logging
import daCore.Persistence
from daCore.NumericObjects import FindIndexesFromNames
+from daCore.PlatformInfo import vt
# ==============================================================================
def DEIM_offline(selfA, EOS = None, Verbose = False):
else:
selfA._parameters["EpsilonEIM"] = 1.e-2
#
- __U, __vs, _ = scipy.linalg.svd( __EOS )
- __rhoM = numpy.compress(__vs > selfA._parameters["EpsilonEIM"], __U, axis=1)
+ # Ne pas utiliser : scipy.linalg.svd
+ __vs = scipy.linalg.svdvals( __EOS )
+ if vt(scipy.version.version) < vt("1.1.0"):
+ __rhoM = scipy.linalg.orth( __EOS )
+ __rhoM = numpy.compress(__vs > selfA._parameters["EpsilonEIM"]*max(__vs), __rhoM, axis=1)
+ else:
+ __rhoM = scipy.linalg.orth( __EOS, selfA._parameters["EpsilonEIM"] )
__lVs, __svdM = __rhoM.shape
assert __lVs == __dimS, "Différence entre lVs et dim(EOS)"
__qivs = (1. - __vs[:__svdM].cumsum()/__vs.sum())