]> SALOME platform Git repositories - modules/adao.git/commitdiff
Salome HOME
Documentation examples update
authorJean-Philippe ARGAUD <jean-philippe.argaud@edf.fr>
Sat, 16 Oct 2021 15:37:45 +0000 (17:37 +0200)
committerJean-Philippe ARGAUD <jean-philippe.argaud@edf.fr>
Sat, 16 Oct 2021 15:37:45 +0000 (17:37 +0200)
20 files changed:
doc/en/ref_algorithm_3DVAR.rst
doc/en/ref_algorithm_NonLinearLeastSquares.rst
doc/en/scripts/simple_3DVAR.png [new file with mode: 0644]
doc/en/scripts/simple_3DVAR.py
doc/en/scripts/simple_3DVAR.res
doc/en/scripts/simple_3DVAR.rst
doc/en/scripts/simple_NonLinearLeastSquares.png [new file with mode: 0644]
doc/en/scripts/simple_NonLinearLeastSquares.py
doc/en/scripts/simple_NonLinearLeastSquares.res
doc/en/scripts/simple_NonLinearLeastSquares.rst
doc/fr/ref_algorithm_3DVAR.rst
doc/fr/ref_algorithm_NonLinearLeastSquares.rst
doc/fr/scripts/simple_3DVAR.png [new file with mode: 0644]
doc/fr/scripts/simple_3DVAR.py
doc/fr/scripts/simple_3DVAR.res
doc/fr/scripts/simple_3DVAR.rst
doc/fr/scripts/simple_NonLinearLeastSquares.png [new file with mode: 0644]
doc/fr/scripts/simple_NonLinearLeastSquares.py
doc/fr/scripts/simple_NonLinearLeastSquares.res
doc/fr/scripts/simple_NonLinearLeastSquares.rst

index 6d893a2ba347e6dbdd4c5d80db0aae93cf5347ed..7aae57a29c4c86dcd71232e53392dbec53724fe4 100644 (file)
@@ -234,6 +234,13 @@ StoreSupplementaryCalculations
 
 .. literalinclude:: scripts/simple_3DVAR.res
 
+.. include:: snippets/Header2Algo11.rst
+
+.. _simple_3DVAR:
+.. image:: scripts/simple_3DVAR.png
+  :align: center
+  :width: 90%
+
 .. ------------------------------------ ..
 .. include:: snippets/Header2Algo06.rst
 
index fa71f4df9614aa54baa86680880e4c669fff410e..dc96fda31dbf6976fe5f37e389176e474d1b984d 100644 (file)
@@ -177,10 +177,19 @@ StoreSupplementaryCalculations
 
 .. literalinclude:: scripts/simple_NonLinearLeastSquares.res
 
+.. include:: snippets/Header2Algo11.rst
+
+.. _simple_NonLinearLeastSquares:
+.. image:: scripts/simple_NonLinearLeastSquares.png
+  :align: center
+  :width: 90%
+
 .. ------------------------------------ ..
 .. include:: snippets/Header2Algo06.rst
 
+- :ref:`section_ref_algorithm_LinearLeastSquares`
 - :ref:`section_ref_algorithm_3DVAR`
+- :ref:`section_ref_algorithm_LinearityTest`
 
 .. ------------------------------------ ..
 .. include:: snippets/Header2Algo07.rst
diff --git a/doc/en/scripts/simple_3DVAR.png b/doc/en/scripts/simple_3DVAR.png
new file mode 100644 (file)
index 0000000..91565f7
Binary files /dev/null and b/doc/en/scripts/simple_3DVAR.png differ
index f13bb73241cfc61d3fe1d36f0b6d92dcd6bb453f..59e41f6e80dfb046a95d648317e97366585e358d 100644 (file)
@@ -3,7 +3,7 @@
 from numpy import array, ravel
 def QuadFunction( coefficients ):
     """
-    Simulation : y = a x^2 + b x + c
+    Quadratic simulation in x: y = a x^2 + b x + c
     """
     a, b, c = list(ravel(coefficients))
     x_points = (-5, 0, 1, 3, 10)
@@ -15,8 +15,8 @@ def QuadFunction( coefficients ):
 Xb   = array([1., 1., 1.])
 Yobs = array([57, 2, 3, 17, 192])
 #
-print("Variational resolution of the calibration problem")
-print("-------------------------------------------------")
+print("Resolution of the calibration problem")
+print("-------------------------------------")
 print("")
 from adao import adaoBuilder
 case = adaoBuilder.New('')
@@ -56,3 +56,17 @@ print("")
 print("Expected theoretical coefficients..:", ravel((2,-1,2)))
 print("")
 print("Calibration resulting coefficients.:", ravel(case.get('Analysis')[-1]))
+#
+Xa = case.get('Analysis')[-1]
+import matplotlib.pyplot as plt
+plt.rcParams['figure.figsize'] = (10, 4)
+#
+plt.figure()
+plt.plot((-5,0,1,3,10),QuadFunction(Xb),'b-',label="Simulation at background")
+plt.plot((-5,0,1,3,10),Yobs,            'kX',label='Observation',markersize=10)
+plt.plot((-5,0,1,3,10),QuadFunction(Xa),'r-',label="Simulation at optimum")
+plt.legend()
+plt.title('Coefficients calibration', fontweight='bold')
+plt.xlabel('Arbitrary coordinate')
+plt.ylabel('Observation Yobs')
+plt.savefig("simple_3DVAR.png")
index 2e8537ac4640def91f1d51add0713efa683170bc..aaa1c4c53b07f9236be847cc10f186b866fbee45 100644 (file)
@@ -1,5 +1,5 @@
-Variational resolution of the calibration problem
--------------------------------------------------
+Resolution of the calibration problem
+-------------------------------------
 
   Intermediate state at the current iteration: [1. 1. 1.]
   Intermediate state at the current iteration: [1.99739508 1.07086406 1.01346638]
index 326ec7052c45b94e87c9a0a16522d77fabf771b0..cb47c7463386698bc8eb16a41262c659df3f489d 100644 (file)
@@ -8,9 +8,10 @@ vector :math:`\mathbf{x}`, and return as output the evaluation vector
 points. The calibration is done using an initial coefficient set (background
 state specified by ``Xb`` in the code), and with the information
 :math:`\mathbf{y}^o` (specified by ``Yobs`` in the code) of 5 measures obtained
-in these same internal control points. We choose to emphasize the observations
-versus the background by setting a great variance for the background error,
-here of :math:`10^{6}`.
+in these same internal control points. We set twin experiments (see
+:ref:`section_methodology_twin`) and the measurements are supposed to be
+perfect. We choose to emphasize the observations versus the background by
+setting a great variance for the background error, here of :math:`10^{6}`.
 
 The adjustment is carried out by displaying intermediate results during
 iterative optimization.
diff --git a/doc/en/scripts/simple_NonLinearLeastSquares.png b/doc/en/scripts/simple_NonLinearLeastSquares.png
new file mode 100644 (file)
index 0000000..91565f7
Binary files /dev/null and b/doc/en/scripts/simple_NonLinearLeastSquares.png differ
index 601bd6a5ee3597dcf95fef74ad3af9d0b471292d..6ac8873772f32246104ecd416efce380e9858200 100644 (file)
@@ -3,7 +3,7 @@
 from numpy import array, ravel
 def QuadFunction( coefficients ):
     """
-    Simulation : y = a x^2 + b x + c
+    Quadratic simulation in x: y = a x^2 + b x + c
     """
     a, b, c = list(ravel(coefficients))
     x_points = (-5, 0, 1, 3, 10)
@@ -15,8 +15,8 @@ def QuadFunction( coefficients ):
 Xb   = array([1., 1., 1.])
 Yobs = array([57, 2, 3, 17, 192])
 #
-print("Iterative resolution of the calibration problem")
-print("-----------------------------------------------")
+print("Resolution of the calibration problem")
+print("-------------------------------------")
 print("")
 from adao import adaoBuilder
 case = adaoBuilder.New('')
@@ -55,3 +55,17 @@ print("")
 print("Expected theoretical coefficients..:", ravel((2,-1,2)))
 print("")
 print("Calibration resulting coefficients.:", ravel(case.get('Analysis')[-1]))
+#
+Xa = case.get('Analysis')[-1]
+import matplotlib.pyplot as plt
+plt.rcParams['figure.figsize'] = (10, 4)
+#
+plt.figure()
+plt.plot((-5,0,1,3,10),QuadFunction(Xb),'b-',label="Simulation at background")
+plt.plot((-5,0,1,3,10),Yobs,            'kX',label='Observation',markersize=10)
+plt.plot((-5,0,1,3,10),QuadFunction(Xa),'r-',label="Simulation at optimum")
+plt.legend()
+plt.title('Coefficients calibration', fontweight='bold')
+plt.xlabel('Arbitrary coordinate')
+plt.ylabel('Observation Yobs')
+plt.savefig("simple_NonLinearLeastSquares.png")
index 0668ec4dd2c19a296fc7f7ede29b912a47b12ad8..17cc93fcff3e619a6a99e2d22c819e00eba3854a 100644 (file)
@@ -1,5 +1,5 @@
-Iterative resolution of the calibration problem
------------------------------------------------
+Resolution of the calibration problem
+-------------------------------------
 
   Intermediate state at the current iteration: [1. 1. 1.]
   Intermediate state at the current iteration: [1.99739508 1.07086406 1.01346638]
index 1aefa5894488c093c5fc0e24e5a0d85472474ade..6e3a94a1da9c53b2181a5d1434e361a29a60479a 100644 (file)
@@ -8,7 +8,9 @@ vector :math:`\mathbf{x}`, and return as output the evaluation vector
 points. The calibration is done using an initial coefficient set (background
 state specified by ``Xb`` in the code), and with the information
 :math:`\mathbf{y}^o` (specified by ``Yobs`` in the code) of 5 measures obtained
-in these same internal control points.
+in these same internal control points. We set twin experiments (see
+:ref:`section_methodology_twin`) and the measurements are supposed to be
+perfect.
 
 The adjustment is carried out by displaying intermediate results during
 iterative optimization.
index faf5b493b2255d340d762745be747b09048297ec..38e60f43a1f59ae74c0772a3487612ac5c7fd26f 100644 (file)
@@ -237,6 +237,13 @@ StoreSupplementaryCalculations
 
 .. literalinclude:: scripts/simple_3DVAR.res
 
+.. include:: snippets/Header2Algo11.rst
+
+.. _simple_3DVAR:
+.. image:: scripts/simple_3DVAR.png
+  :align: center
+  :width: 90%
+
 .. ------------------------------------ ..
 .. include:: snippets/Header2Algo06.rst
 
index 4bc6c604271811874a361fadd722ce7e4d814ec2..39b305ba82a65f08da2b648e6e5cc81723174590 100644 (file)
@@ -180,10 +180,19 @@ StoreSupplementaryCalculations
 
 .. literalinclude:: scripts/simple_NonLinearLeastSquares.res
 
+.. include:: snippets/Header2Algo11.rst
+
+.. _simple_NonLinearLeastSquares:
+.. image:: scripts/simple_NonLinearLeastSquares.png
+  :align: center
+  :width: 90%
+
 .. ------------------------------------ ..
 .. include:: snippets/Header2Algo06.rst
 
+- :ref:`section_ref_algorithm_LinearLeastSquares`
 - :ref:`section_ref_algorithm_3DVAR`
+- :ref:`section_ref_algorithm_LinearityTest`
 
 .. ------------------------------------ ..
 .. include:: snippets/Header2Algo07.rst
diff --git a/doc/fr/scripts/simple_3DVAR.png b/doc/fr/scripts/simple_3DVAR.png
new file mode 100644 (file)
index 0000000..a12d902
Binary files /dev/null and b/doc/fr/scripts/simple_3DVAR.png differ
index 04dcf569405c3e3ff091c3b2f221853e8915e06d..3e985614c95c54b32822b7e38330ea9c67159cea 100644 (file)
@@ -3,7 +3,7 @@
 from numpy import array, ravel
 def QuadFunction( coefficients ):
     """
-    Simulation : y = a x^2 + b x + c
+    Simulation quadratique aux points x : y = a x^2 + b x + c
     """
     a, b, c = list(ravel(coefficients))
     x_points = (-5, 0, 1, 3, 10)
@@ -15,8 +15,8 @@ def QuadFunction( coefficients ):
 Xb   = array([1., 1., 1.])
 Yobs = array([57, 2, 3, 17, 192])
 #
-print("Résolution variationnelle du problème de calage")
-print("-----------------------------------------------")
+print("Résolution du problème de calage")
+print("--------------------------------")
 print("")
 from adao import adaoBuilder
 case = adaoBuilder.New('')
@@ -56,3 +56,17 @@ print("")
 print("Coefficients théoriques attendus..:", ravel((2,-1,2)))
 print("")
 print("Coefficients résultants du calage.:", ravel(case.get('Analysis')[-1]))
+#
+Xa = case.get('Analysis')[-1]
+import matplotlib.pyplot as plt
+plt.rcParams['figure.figsize'] = (10, 4)
+#
+plt.figure()
+plt.plot((-5,0,1,3,10),QuadFunction(Xb),'b-',label="Simulation à l'ébauche")
+plt.plot((-5,0,1,3,10),Yobs,            'kX',label='Observation',markersize=10)
+plt.plot((-5,0,1,3,10),QuadFunction(Xa),'r-',label="Simulation à l'optimum")
+plt.legend()
+plt.title('Calage de coefficients', fontweight='bold')
+plt.xlabel('Coordonnée arbitraire')
+plt.ylabel('Observation Yobs')
+plt.savefig("simple_3DVAR.png")
index 04c0eddc94c038300390f4038a90ae84fac516fc..a50796ae7a57cb993cc02c300ca0b78bc3ea1b4c 100644 (file)
@@ -1,5 +1,5 @@
-Résolution variationnelle du problème de calage
------------------------------------------------
+Résolution du problème de calage
+--------------------------------
 
   État intermédiaire en itération courante : [1. 1. 1.]
   État intermédiaire en itération courante : [1.99739508 1.07086406 1.01346638]
index 1e1f43def13f53d7e31e6f011c87a5151b6c8d85..c2c2c2998210b0c47de7d4b38be5254677117ed4 100644 (file)
@@ -8,9 +8,11 @@ de coefficients :math:`\mathbf{x}`, et fournit en sortie le vecteur
 internes prédéfinis dans le modèle. Le calage s'effectue sur la base d'un jeu
 initial de coefficients (état d'ébauche désigné par ``Xb`` dans l'exemple), et
 avec l'information :math:`\mathbf{y}^o` (désignée par ``Yobs`` dans l'exemple)
-de 5 mesures obtenues à ces mêmes points de contrôle internes. On privilégie
-les observations au détriment de l'ébauche par l'indication d'une très
-importante variance d'erreur d'ébauche, ici de :math:`10^{6}`.
+de 5 mesures obtenues à ces mêmes points de contrôle internes. On se place en
+expériences jumelles (voir :ref:`section_methodology_twin`) et les mesures sont
+parfaites. On privilégie les observations au détriment de l'ébauche par
+l'indication d'une très importante variance d'erreur d'ébauche, ici de
+:math:`10^{6}`.
 
 L'ajustement s'effectue en affichant des résultats intermédiaires lors de
 l'optimisation itérative.
diff --git a/doc/fr/scripts/simple_NonLinearLeastSquares.png b/doc/fr/scripts/simple_NonLinearLeastSquares.png
new file mode 100644 (file)
index 0000000..a12d902
Binary files /dev/null and b/doc/fr/scripts/simple_NonLinearLeastSquares.png differ
index 72d8f3b56a548f6b00fc80d0fff51b57d694322f..8de1623fb4d7b062324a48c93ff3a1fd535c835d 100644 (file)
@@ -3,7 +3,7 @@
 from numpy import array, ravel
 def QuadFunction( coefficients ):
     """
-    Simulation : y = a x^2 + b x + c
+    Simulation quadratique aux points x : y = a x^2 + b x + c
     """
     a, b, c = list(ravel(coefficients))
     x_points = (-5, 0, 1, 3, 10)
@@ -15,8 +15,8 @@ def QuadFunction( coefficients ):
 Xb   = array([1., 1., 1.])
 Yobs = array([57, 2, 3, 17, 192])
 #
-print("Résolution itérative du problème de calage")
-print("------------------------------------------")
+print("Résolution du problème de calage")
+print("--------------------------------")
 print("")
 from adao import adaoBuilder
 case = adaoBuilder.New('')
@@ -55,3 +55,17 @@ print("")
 print("Coefficients théoriques attendus..:", ravel((2,-1,2)))
 print("")
 print("Coefficients résultants du calage.:", ravel(case.get('Analysis')[-1]))
+#
+Xa = case.get('Analysis')[-1]
+import matplotlib.pyplot as plt
+plt.rcParams['figure.figsize'] = (10, 4)
+#
+plt.figure()
+plt.plot((-5,0,1,3,10),QuadFunction(Xb),'b-',label="Simulation à l'ébauche")
+plt.plot((-5,0,1,3,10),Yobs,            'kX',label='Observation',markersize=10)
+plt.plot((-5,0,1,3,10),QuadFunction(Xa),'r-',label="Simulation à l'optimum")
+plt.legend()
+plt.title('Calage de coefficients', fontweight='bold')
+plt.xlabel('Coordonnée arbitraire')
+plt.ylabel('Observation Yobs')
+plt.savefig("simple_NonLinearLeastSquares.png")
index 04402fd99e8173e51657e620cc299e42ab0ef1e9..d98630ad89ba9eb7d3fe83c92b11ed9d94a423bf 100644 (file)
@@ -1,5 +1,5 @@
-Résolution itérative du problème de calage
-------------------------------------------
+Résolution du problème de calage
+--------------------------------
 
   État intermédiaire en itération courante : [1. 1. 1.]
   État intermédiaire en itération courante : [1.99739508 1.07086406 1.01346638]
index 32bf45a36b6c0b89b2b45bfa0a93e4657fd0c97e..b661b3a9f1ddcf4adcc3d0f5b56da0189e97eb90 100644 (file)
@@ -8,7 +8,9 @@ de coefficients :math:`\mathbf{x}`, et fournit en sortie le vecteur
 internes prédéfinis dans le modèle. Le calage s'effectue sur la base d'un jeu
 initial de coefficients (état d'ébauche désigné par ``Xb`` dans l'exemple), et
 avec l'information :math:`\mathbf{y}^o` (désignée par ``Yobs`` dans l'exemple)
-de 5 mesures obtenues à ces mêmes points de contrôle internes.
+de 5 mesures obtenues à ces mêmes points de contrôle internes. On se place en
+expériences jumelles (voir :ref:`section_methodology_twin`) et les mesures sont
+parfaites.
 
 L'ajustement s'effectue en affichant des résultats intermédiaires lors de
 l'optimisation itérative.