From 68af47b2bf9bea7df21aa14eeb7166b2bab3ad21 Mon Sep 17 00:00:00 2001 From: Jean-Philippe ARGAUD Date: Thu, 24 Sep 2015 15:21:48 +0200 Subject: [PATCH] Documentation correction and improvements --- doc/en/bibliography.rst | 2 ++ doc/en/ref_operator_requirements.rst | 31 +++++++++++++++++++++++++ doc/fr/bibliography.rst | 19 +++++++++++----- doc/fr/ref_operator_requirements.rst | 34 ++++++++++++++++++++++++++++ 4 files changed, 80 insertions(+), 6 deletions(-) diff --git a/doc/en/bibliography.rst b/doc/en/bibliography.rst index c154313..f3a9d0a 100644 --- a/doc/en/bibliography.rst +++ b/doc/en/bibliography.rst @@ -63,6 +63,8 @@ Bibliography .. [WikipediaMO] Wikipedia, *Mathematical optimization*, https://en.wikipedia.org/wiki/Mathematical_optimization +.. [WikipediaND] Wikipedia, *Nondimensionalization*, https://en.wikipedia.org/wiki/Nondimensionalization + .. [WikipediaPSO] Wikipedia, *Particle swarm optimization*, https://en.wikipedia.org/wiki/Particle_swarm_optimization .. [WikipediaQR] Wikipedia, *Quantile regression*, https://en.wikipedia.org/wiki/Quantile_regression diff --git a/doc/en/ref_operator_requirements.rst b/doc/en/ref_operator_requirements.rst index dc0c422..f0d946d 100644 --- a/doc/en/ref_operator_requirements.rst +++ b/doc/en/ref_operator_requirements.rst @@ -275,3 +275,34 @@ that the derivatives has to be done only partially against :math:`\mathbf{x}`. In such a case with explicit control, only the second functional form (using "*ScriptWithFunctions*") and third functional form (using "*ScriptWithSwitch*") can be used. + +Additional notes on nondimensionalization of operators +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. index:: single: Nondimensionalization +.. index:: single: Dimensionless + +It is common that physical quantities, in input or output of the operators, have +significant differences in magnitude or rate of change. One way to avoid +numerical difficulties is to use, or to set, a nondimensionalization of the +calculations carried out in operators [WikipediaND]_. In principle, since +physical simulation should be as dimensionless as possible, it is firstly +recommended to use the existing capacity of nondimensionalization of the +calculation code. + +However, in the common case where we can not dispose of it, it is often useful +to surround the calculation to remove dimension for input or output. A simple +way to do this is to convert the input parameters :math:`\mathbf{x}` which are +arguments of a function like "*DirectOperator*". One mostly use the default +values :math:`\mathbf{x}^b` (background, or nominal value). Provided that each +component of :math:`\mathbf{x}^b` is non zero, one can indeed put: + +.. math:: \mathbf{x} = \mathbf{\alpha}\mathbf{x}^b + +and then optimize the multiplicative parameter :math:`\mathbf{\alpha}`. This +parameter has as default value (or as background) a vector of 1. Be careful, +applying a process of nondimensionalization also requires changing the error +covariances associated in an ADAO formulation of the optimization problem. + +Such a process is rarely enough to avoid all the numerical problems, but it +often improves a lot the numeric conditioning of the optimization. diff --git a/doc/fr/bibliography.rst b/doc/fr/bibliography.rst index 1757095..573d10c 100644 --- a/doc/fr/bibliography.rst +++ b/doc/fr/bibliography.rst @@ -59,16 +59,23 @@ Bibliographie .. [Tikhonov77] Tikhonov A. N., Arsenin V. Y., *Solution of Ill-posed Problems*, Winston & Sons, 1977 -.. [WikipediaDA] Wikipedia, *Data assimilation*, http://en.wikipedia.org/wiki/Data_assimilation +.. [WikipediaDA] Wikipédia, *Data assimilation*, http://en.wikipedia.org/wiki/Data_assimilation -.. [WikipediaMO] Wikipedia, *Mathematical optimization*, https://en.wikipedia.org/wiki/Mathematical_optimization +.. [WikipediaMO] Wikipédia, *Mathematical optimization*, https://en.wikipedia.org/wiki/Mathematical_optimization -.. [WikipediaPSO] Wikipedia, *Particle swarm optimization*, https://en.wikipedia.org/wiki/Particle_swarm_optimization +.. [WikipediaND] Wikipédia, *Nondimensionalization*, https://en.wikipedia.org/wiki/Nondimensionalization -.. [WikipediaQR] Wikipedia, *Quantile regression*, https://en.wikipedia.org/wiki/Quantile_regression +.. [WikipediaPSO] Wikipédia, *Particle swarm optimization*, https://en.wikipedia.org/wiki/Particle_swarm_optimization -.. [WikipediaTI] Wikipedia, *Tikhonov regularization*, https://en.wikipedia.org/wiki/Tikhonov_regularization +.. [WikipediaQR] Wikipédia, *Quantile regression*, https://en.wikipedia.org/wiki/Quantile_regression -.. [WikipediaUKF] Wikipedia, *Unscented Kalman filter*, https://en.wikipedia.org/wiki/Unscented_Kalman_filter +.. [WikipediaTI] Wikipédia, *Tikhonov regularization*, https://en.wikipedia.org/wiki/Tikhonov_regularization + +.. [WikipediaUKF] Wikipédia, *Unscented Kalman filter*, https://en.wikipedia.org/wiki/Unscented_Kalman_filter .. [Zhu97] Zhu C., Byrd R. H., Nocedal J., *L-BFGS-B: Algorithm 778: L-BFGS-B, FORTRAN routines for large scale bound constrained optimization*, ACM Transactions on Mathematical Software, 23(4), pp.550-560, 1997 + +*Nota Bene* : un lien vers la version française de chaque page Wikipédia se +trouve dans le sous-menu "*Languages*". Les deux versions sont complémentaires +car, même si souvent le contenu en anglais est plus fourni, les informations +disponibles dans chaque langue ne sont pas toujours identiques. diff --git a/doc/fr/ref_operator_requirements.rst b/doc/fr/ref_operator_requirements.rst index 68b5880..c4f93e0 100644 --- a/doc/fr/ref_operator_requirements.rst +++ b/doc/fr/ref_operator_requirements.rst @@ -285,3 +285,37 @@ notant que les d à :math:`\mathbf{x}`. Dans un tel cas de contrôle explicite, seule la deuxième forme fonctionnelle (en utilisant "*ScriptWithFunctions*") et la troisième forme fonctionnelle (en utilisant "*ScriptWithSwitch*") peuvent être utilisées. + +Remarques complémentaires sur l'adimensionnement des opérateurs ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. index:: single: Adimensionnement +.. index:: single: Sans dimension + +Il est fréquent que les grandeurs physiques, en entrée ou en sortie des +opérateurs, présentent des différences notables d'ordre de grandeur ou de taux +de variation. Une manière d'éviter des difficultés numériques est d'utiliser, ou +d'établir, un adimensionnement des calculs menés dans les opérateurs +[WikipediaND]_. Par principe, dans la mesure où la simulation de la physique +devrait être la plus adimensionnée possible, il est en premier lieu recommandé +d'utiliser les capacités existantes d'adimensionnement du code de calcul. + +Néanmoins, dans le cas courant où l'on ne peut en disposer, il est souvent utile +d'environner le calcul pour l'adimensionner en entrée ou en sortie. Une manière +simple de faire cela en entrée consiste à transformer les paramètres +:math:`\mathbf{x}` en argument d'une fonction comme "*DirectOperator*". On +utilise le plus souvent les valeurs par défaut :math:`\mathbf{x}^b` (ébauche, ou +valeur nominale). Pourvu que chaque composante de :math:`\mathbf{x}^b` soit non +nulle, on peut en effet poser: + +.. math:: \mathbf{x} = \mathbf{\alpha}\mathbf{x}^b + +et optimiser ensuite le paramètre multiplicatif :math:`\mathbf{\alpha}`. Ce +paramètre a pour valeur par défaut (ou pour ébauche) un vecteur de 1. Attention, +l'application d'une démarche d'adimensionnement nécessite aussi la modification +des covariances d'erreurs associées dans la formulation ADAO du problème +d'optimisation. + +Une telle démarche suffit rarement à éviter tous les problèmes numériques, mais +permet souvent d'améliorer beaucoup le conditionnement numérique de +l'optimisation. -- 2.39.2