Code_Aster ®
Version
7.1

Titre :

Algorithme de recalage


Date :
26/08/03
Auteur(s) :
N. TARDIEU Clé
:
R4.03.06-A Page
: 1/12

Organisme(s) : EDF-R&D/AMA
















Manuel de Référence
Fascicule R4.03 : Analyse de sensibilité
Document : R4.03.06





Algorithme de recalage





Résumé :

Dans ce document est présenté l'algorithme de recalage de MACR_RECAL. Il s'agit d'un algorithme de
Levenberg-Marquardt avec bornes.
On décrit dans un premier temps la méthode générale avant d'en préciser certains éléments. Sont détaillés le
calcul de la fonctionnelle, de la matrice Jacobienne, la détermination du paramètre initial de régularisation ainsi
que son évolution, la gestion des bornes et le critère de convergence.
Manuel de Référence
Fascicule R4.03 : Analyse de sensibilité
HT-66/03/005/A

Code_Aster ®
Version
7.1

Titre :

Algorithme de recalage


Date :
26/08/03
Auteur(s) :
N. TARDIEU Clé
:
R4.03.06-A Page
: 2/12


Table
des
matières

1 Introduction............................................................................................................................................3
2 Algorithme de Levenberg-Marquardt.....................................................................................................4
2.1 Position du problème.......................................................................................................................4
2.2 Résolution........................................................................................................................................4

3 Mise en oeuvre pratique.........................................................................................................................7
3.1 Définition de la fonctionnelle ...........................................................................................................7
3.2 Expression de la matrice Jacobienne .............................................................................................8
3.3 Régularisation du système linéaire .................................................................................................9
3.3.1 Valeur initiale de ..................................................................................................................9
3.3.2 Evolution de la valeur de .....................................................................................................9
3.4 Limitations du domaine d'évolution des paramètres.......................................................................9
3.5 Adimensionnement........................................................................................................................10
3.6 Critère de convergence .................................................................................................................11
4 Algorithme global.................................................................................................................................12
5 Bibliographie........................................................................................................................................12


Manuel de Référence
Fascicule R4.03 : Analyse de sensibilité
HT-66/03/005/A

Code_Aster ®
Version
7.1

Titre :

Algorithme de recalage


Date :
26/08/03
Auteur(s) :
N. TARDIEU Clé
:
R4.03.06-A Page
: 3/12


1 Introduction

Avant d'aborder à proprement parler la problématique du recalage, il est utile de rappeler quelques
éléments sur l'identification de paramètres. Supposons que l'on désire identifier n paramètres à partir
d'un essai mécanique donné. Dans le cadre de cette identification, on définit les grandeurs :

·
c , le vecteur des n paramètres à identifier, appartenant à O , convexe fermé de n
R .
·
d , le vecteur des grandeurs calculées lors d'une simulation de l'essai en utilisant les
paramètres c , par opposition à exp
d , le vecteur des grandeurs mesurées lors d'un essai
expérimental. Tous deux appartiennent à l'espace L des grandeurs observables. La
simulation de l'essai expérimental, paramétrée par le vecteur c , peut être réalisée par
différentes méthodes : différences finies, éléments finis, éléments de frontière, .... C'est ce
que nous appellerons le problème direct.

Le but de l'identification est de déterminer le jeu de paramètres c réduisant la différence entre
grandeurs mesurées et expérimentales (en espérant fortement que la réduction de cet écart soit
suffisante pour obtenir le jeu de paramètres souhaité ...). On introduit donc une fonctionnelle coût
notée J dépendant de c et mesurant la distance entre d et exp
d .

J(c)
exp
= d - d









éq 1-1

où || . || désigne une norme sur L .

L'identification s'exprime donc sous la forme du problème de minimisation suivant :

Déterminer c
* O tel que J(c )
* = Min J(c)
c O


Enfin, on définit le recalage comme la minimisation d'un type de fonctionnelles particulier dites
« moindres carrés » qui s'expriment sous la forme :

N
J(c) = j2 éq 1-2
n (c)
n=1

Il est communément admis que l'algorithme de minimisation le plus efficace pour ce type de
fonctionnelles est l'algorithme de Levenberg-Marquardt. C'est ce dernier qui est implanté dans la
commande MACR_RECAL du Code_Aster et que nous présentons dans la suite.

Manuel de Référence
Fascicule R4.03 : Analyse de sensibilité
HT-66/03/005/A

Code_Aster ®
Version
7.1

Titre :

Algorithme de recalage


Date :
26/08/03
Auteur(s) :
N. TARDIEU Clé
:
R4.03.06-A Page
: 4/12


2
Algorithme de Levenberg-Marquardt

2.1
Position du problème

Il existe plusieurs familles d'algorithmes de minimisation [bib1]. Pour les problèmes relativement
réguliers, les plus utilisées sont les méthodes de descente. Leur principe est de générer de manière
itérative une suite (ck )
définie par :
k N


( kc+1) k k k
= c + g







éq 2.1-1

telle que, pour f (x) = J( k
c + x k
g )
*
, x R +

·
f (x) est décroissante au voisinage de +
0
·
f ( k
) = Min f (x)
x>0

k
g est la direction de descente au pas k . C'est la méthode de détermination de k
g qui conditionne la
nature donc l'efficacité de l'algorithme utilisé, sachant que ces techniques sont principalement basées
sur des approximations de J à l'ordre 1 ou à l'ordre 2. Pour l'algorithme de Levenberg-Marquardt, on
manipule une approximation à l'ordre 2 de la fonctionnelle.


2.2 Résolution

Dans le cadre du recalage, on manipule des fonctionnelles coût moindre carré du type :

N
J(c) = j2 éq 2.2-1
n (c)
n=1

où par exemple j c = F
c - F
, avec des notations évidentes.
n ( )
( calc
n
( )
exp
n
)


La particularité de ces fonctionnelles coût réside dans le fait que l'on connaît la forme de leurs
dérivées premières et secondes :

(
N
J
éq
2.2-2
c (c))
j
2
j c
i
( )
=
n
n
n=1
ci

(H(c))
N
2
=
j
j
j
2
.
j c

éq
2.2-3
ij

n
n + n( )

n


n=1 c c
c c
i
j
i
j
Manuel de Référence
Fascicule R4.03 : Analyse de sensibilité
HT-66/03/005/A

Code_Aster ®
Version
7.1

Titre :

Algorithme de recalage


Date :
26/08/03
Auteur(s) :
N. TARDIEU Clé
:
R4.03.06-A Page
: 5/12


Alors, en supposant que le deuxième terme de l'équation précédente est négligeable devant le premier
(ce qui est vrai quand les j sont linéaires en c : ce terme est nul), on peut réécrire :
k

(H(c))
N

j
j
2
.

éq
2.2-4
ij

n
n
n=1 c
c
i
j

Il est intéressant à ce niveau d'introduire la matrice de sensibilité ou matrice Jacobienne définie par :

j
j
j
1
1
1

...

c
c
c
1
2
n
j
j
2
2


...
...
c
c

A = 1
2
éq
2.2-5
...
...
...
...
...
...
...
...
j
j

N
N
jN

...

c
c
c
1
2
n


On peut ainsi exprimer le gradient et le Hessien par :

J k
T
= 2









éq 2.2-6
c (c )
A j

H(ck ) 2AT A








éq 2.2-7

avec j = [ j , ..., j
.
1
]T
N


Ecrivons alors le développement limité à l'ordre 2 de J :

1
J(c) J( k
c )+ (c - c )T
k

. J
+
-
. -

éq 2.2-8
c ( k
c )
(c c )T
k
H( k
c )(
k
c c )
2

Soit k
k
g = c - c , le pas de descente au point k
c , il doit vérifier la condition de stationnarité de
l'approximation quadratique :

J


éq
2.2-9
c ( k
c )+ H( k
c ) k
g = 0

D'après l'expression du gradient et du Hessien de J , on peut écrire :

(ATA)gk = -AT j
éq
2.2-10
Manuel de Référence
Fascicule R4.03 : Analyse de sensibilité
HT-66/03/005/A

Code_Aster ®
Version
7.1

Titre :

Algorithme de recalage


Date :
26/08/03
Auteur(s) :
N. TARDIEU Clé
:
R4.03.06-A Page
: 6/12


La résolution de cette équation mène à un algorithme connu sous le nom de Gauss-Newton, très
efficace mais qui présente néanmoins quelques inconvénients :

·
(ATA) peut être quasiment singulière et causer la non-existence de solution.
·
On n'a aucun contrôle sur k
g , qui peut être trop grand et donc sortir les paramètres de
l'espace admissible.

Pour pallier ces inconvénients, on préfère utiliser l'algorithme de Levenberg-Marquardt qui propose
une régularisation de l'algorithme de Gauss-Newton :

(ATA + I) gk = -AT j éq
2.2-11

où est un scalaire et I la matrice identité.

On remarque que si = 0 , on retrouve la direction donnée par Gauss-Newton et si + , on
retrouve la direction donnée par l'opposée du gradient de J i.e. la plus grande pente.

L'algorithme de Levenberg-Marquardt consiste donc, en partant d'une valeur de « assez élevée »,
de la diminuer d'un facteur 10 par exemple, à chaque décroissance de J . On passe ainsi
graduellement d'un algorithme de plus grande pente à l'algorithme de Gauss-Newton. On peut donc
présenter cette procédure sous la forme :

·
Choix d'un point de départ 0
c et d'une valeur initiale de
·
A l'itération k , résoudre
( T
A A + I) k
T
g = -A j
k +1
k
k
c
= c + g
·
Si J( k
c +1 ) < J( k
c ), alors = /10 sinon = *10
·
Test de convergence

Remarque :

Nous avons considéré ci-dessus l'algorithme de Levenberg-Marquardt sous l'angle de la
régularisation de l'algorithme de Gauss-Newton. Il est possible de donner un éclairage
différent à cette algorithme en le considérant comme un algorithme de région de confiance
[bib2]. En effet, on peut montrer aisément que le système [éq 2.2-11] est la condition de
stationnarité du problème de minimisation :
1
k
k T T
k T
T
k
Déterminer k
g tel que g = ArgMing
A
.
j + g A A g soumis à k
k
g D

2

1
-

k
D = -(AT A + I) AT j et 0 .

Il s'agit là d'une implantation très simple de l'algorithme de Levenberg-Marquardt au sein de laquelle
différentes questions ne sont pas abordées :

·
Comment définir la fonctionnelle J quand on dispose de plusieurs essais ?
·
Comment choisir la valeur initiale de ?
·
Comment faire évoluer de manière plus fine ?
·
Comment définir le domaine d'évolutions de chaque paramètre ?

Nous allons préciser ces différents points dans le suite.
Manuel de Référence
Fascicule R4.03 : Analyse de sensibilité
HT-66/03/005/A

Code_Aster ®
Version
7.1

Titre :

Algorithme de recalage


Date :
26/08/03
Auteur(s) :
N. TARDIEU Clé
:
R4.03.06-A Page
: 7/12


3
Mise en oeuvre pratique

3.1
Définition de la fonctionnelle

Lors d'un recalage, l'utilisateur dispose souvent de plusieurs mesures différentes ; il s'agit de
grandeurs physiques discrètes, éventuellement de natures différentes, mesurées au cours d'un ou
plusieurs essais. Ce sont des fonctions d'un paramètre donné noté t (temps, abscisse, ...) que l'on
peut donc représenter par :


exp
t
f
(t )

exp
t
f
(t )

exp
t
f
(t )
L
exp
1
1
1
exp
1
2
1

exp
1
1
F
=
F
=
F
=
éq 3.1-1
1
M
M

2
M
M

L
M
M


exp
t
f
(t )

exp
t
f
(t )

exp
t
f
(t )
N
1
N
M
2
M
P
L
P

Chacune de ces mesures expérimentales dispose de son pendant

~
calc
k ~
t
f
(c , t )
~
calc
k ~
t
f
(c , t )
~
calc
k ~
t
f
(c , t )
calc
k
1
1
1 calc k
1
2
1 calc k
1
L
1
F
(c ) =
F
(c ) =
F
(c ) =

1
M
M
2
M
M
L
M
M

~
calc
k ~
t
f
(c , t )
~
calc
k ~
t
f
(c , t )
~
calc
k ~
t
f
(c , t )
I
1
I
J
2
J
K
L
K
éq 3.1-2

calculé pour un jeu de paramètre k
c donné. Remarquons que les grandeurs calculées ne sont pas
forcément en même nombre que les grandeurs mesurées ni évaluées pour la même valeur du
paramètre t . On peut alors définir la fonctionnelle moindres carrés à minimiser par :

2
2
2
N
exp
f
(t ) - f calc (ck ,t )
M
exp

f
(t ) - f calc (ck ,t )
P
exp

f
(t ) - f calc (ck ,t )
1
i
1
i
2
i
2

+
i
L
i
L
i





+ ... +





exp




i 1
=
f
(t )
exp
f
t
f
t
k

1
i

i 1
=
( )
exp

2
i

i 1
=
( )
J(c )

L
i

=
J( 0
c )
éq
3.1-3

Il est important de remarquer que :

·
si une mesure calculée calc
f
n'est pas définie à un instant t , alors on interpole linéairement
j
i
sa valeur
·
si une mesure expérimentale exp
f
est nulle, on ne divise pas la quantité
j
exp
f
(t )
f calc
-
( k
c ,t ) et elle est présente telle quelle dans l'expression de la fonctionnelle
j
i
j
i
·
la fonctionnelle J est normalisée de manière à valoir 1. au début des itérations de recalage

Manuel de Référence
Fascicule R4.03 : Analyse de sensibilité
HT-66/03/005/A

Code_Aster ®
Version
7.1

Titre :

Algorithme de recalage


Date :
26/08/03
Auteur(s) :
N. TARDIEU Clé
:
R4.03.06-A Page
: 8/12


3.2
Expression de la matrice Jacobienne

Pour le calcul de la matrice Jacobienne, on définit le vecteur j des erreurs par :

exp
f
(t ) - f calc ( k
c ,t )
1
1
1
1
exp


f
(t )
1
1


M

exp
f
(t ) - f calc ( k
c ,t )
1
N
1
N


exp


f
(t )
1
N

j = exp
f
(t ) - f calc ( k
c ,t )
2
1
2
1
éq
3.2-1

exp


f
(t )
2
1


M




M
exp
f
(t ) - f calc ( k
c ,t )
P
L
P
L



exp
f
(t )
P
L



Soit :

exp
f
(t )
f calc
-
( k
c ,t )
K
K
i
K
i
j =

éq
3.2-2
i
exp
f
(t )
K
i

On retrouve alors l'expression de la matrice Jacobienne de [éq 2.2-5] :

j1
j1
j1
1
1
L
1
c
c
c
1
2
n
L
L L L
j1
j1
j1
N
N
N

L

c
c
c
1
2
n
= j2
j2

éq
3.2-3
1
1


L L
c


c
1
2

L
L L L


L
L L L
jP j P
j P
L
L
L
L

c
c
c
1
2
n


Où les termes sont calculés par différences finies directes :

j1

j1(c ,...,c + c ,...,c ) _ j1(c ,...,c ,...,c )
1
1
1
i
i
n
1
1
i
n
(c ,...,c ,...,c )
éq
3.2-4
1
i
n
c

c
i
i
Manuel de Référence
Fascicule R4.03 : Analyse de sensibilité
HT-66/03/005/A

Code_Aster ®
Version
7.1

Titre :

Algorithme de recalage


Date :
26/08/03
Auteur(s) :
N. TARDIEU Clé
:
R4.03.06-A Page
: 9/12


3.3
Régularisation du système linéaire

Nous abordons ici le problème de la détermination et de l'évolution du paramètre de régularisation
. On définit pour ce faire :

·

= Max (Valeurs propres de AT A ),
= Min (Valeurs propres de AT A ),
max
min
cond =
/
si
0
max
min
min
T
1
T
·
Q(c) = J( k
c )+ (
k
c - c )
T
A
.
j + (
k
c - c ) ( T
. A A + I)(
k
. c - c )
2

3.3.1 Valeur initiale de

Connaissant les grandeurs ci-dessus, on définit l'algorithme suivant :

·
Si
= 0, alors =1.E-3

min
max
·
Sinon
- Si cond < 1.E5, alors = 1.E-16

max
- Sinon = Abs(1.E5
-
)/10001
min
max

Remarque :

Dans le dernier cas, la valeur attribuée à a pour effet de ramener le conditionnement de
AT A à 1.E5

3.3.2 Evolution de la valeur de

J( k
c ) - J( k 1
+
c )
Pour faire évoluer , on définit le ratio k
R =
, qui permet d'évaluer la validité de
Q( k
c ) - Q( k 1
+
c )
l'approximation quadratique de J : plus il est proche de 1, plus cette approximation est valable. On en
déduit l'algorithme suivant [bib2] :

·
Si k
R < 0.25, alors = *10
·
Si k
R > 0.75, alors = /15

3.4
Limitations du domaine d'évolution des paramètres

Pour des raisons diverses telles que pour garantir la validité physique des paramètres (module
d'Young strictement positif, coefficient de Poisson compris entre 0 et 0.5, ...), il est nécessaire de
limiter leur domaine d'évolution. On impose donc que c reste dans un domaine admissible O ,
convexe fermé de
n
R . Ceci impose donc des contraintes sur les paramètres :

c
> ck + gk > c
sup
inf
Manuel de Référence
Fascicule R4.03 : Analyse de sensibilité
HT-66/03/005/A

Code_Aster ®
Version
7.1

Titre :

Algorithme de recalage


Date :
26/08/03
Auteur(s) :
N. TARDIEU Clé
:
R4.03.06-A Page
: 10/12


Après dualisation de ces conditions par introduction des multiplicateurs de Lagrange µ
et µ
, on
inf
sup
résout le système :

Trouver k
g µ µ tels que
inf
sup
( T
A A + I) k
g + µ + µ
= - T
A j
inf
sup
k
c + k
g > c

inf
µ > 0

inf

( k
c + k
g - c ) (µ ) = 0 i = ,
1
[ n]
inf i
inf i
k
c + k
g < csup


µ < 0
sup

k
k
(c + g - c ) (µ ) = 0 i = ,
1
[ n]
sup i
sup i

Cette résolution s'effectue à l'aide d'un algorithme de contraintes actives. Pour toute précision sur cet
algorithme, se reporter à [bib3] ou [bib4].


3.5 Adimensionnement

On est souvent amenés à identifier des paramètres de natures physiques diverses. Les ordres de
grandeur de ces paramètres peuvent être extrêmement différents. Ceci peut engendrer de très fortes
différences dans les ordres de grandeur des composantes du gradient et du Hessien de la
fonctionnelle coût et compromettre la résolution.
Pour pallier cette difficulté, il est impératif d'adimensionner les inconnues avant de débuter la
résolution. Voici une procédure simple et efficace.

T
Soit 0
c = [ 0 0
0
c ,c , ..., c , le vecteur initial des grandeurs à reconstruire. On définit la matrice
1
2
n ]
d'adimensionnement D :
c0

1
0


c2

D =

éq
3.5-1



c0n-1



c0n

Alors, si les 0
c sont tous non nuls, on peut définir les inconnues adimensionnelles par :
i

~0
1
-
0
c = D . c éq
3.5-2

De même, on introduit une fonctionnelle coût adimensionnelle :

~ ~
~
J(c) = J( .
D c) = J(c) éq
3.5-3
Manuel de Référence
Fascicule R4.03 : Analyse de sensibilité
HT-66/03/005/A

Code_Aster ®
Version
7.1

Titre :

Algorithme de recalage


Date :
26/08/03
Auteur(s) :
N. TARDIEU Clé
:
R4.03.06-A Page
: 11/12


Ainsi que son gradient :

~ ~
~
~
J(c) J( .
D c)
J(c)
~
c
~J(c) =
=
=
.
= .
D J(c)
c
~
~
~

éq
3.5-4
c
c
c c
c

Et sa matrice Jacobienne :

~
0
A = A *c
éq
3.5-5
ij
ij
j

D'un point de vue algorithmique, le calcul de la matrice Jacobienne se fait classiquement avec la
fonctionnelle J , puis elle est adimensionnée ainsi que les paramètres courants c , avant d'être
transmis à l'algorithme de minimisation. A la sortie de ce dernier, les paramètres c
~ sont
redimensionnés pour permettre le calcul de la fonctionnelle J .


3.6
Critère de convergence

Le critère de convergence utilisé dans MACR_RECAL consiste à tester la décroissance du gradient de
la fonctionnelle. On rappelle que l'utilisation de ce critère se justifie naturellement par le fait que
l'objectif de l'algorithme de recalage est d'annuler ce gradient.

|| J( k
c ) ||
c
<
Prec.
éq
3.6-1
|| J( 0
c ) ||
c

Où Prec est par défaut pris égal à 1.E-3.
Manuel de Référence
Fascicule R4.03 : Analyse de sensibilité
HT-66/03/005/A

Code_Aster ®
Version
7.1

Titre :

Algorithme de recalage


Date :
26/08/03
Auteur(s) :
N. TARDIEU Clé
:
R4.03.06-A Page
: 12/12


4 Algorithme
global

De manière à expliciter l'enchaînement des diverses opérations décrites ci-dessus, on présente
formellement l'algorithme du recalage :

·
Initialisations
- k = 0
- calcul de A , adimensionnement de A
- Calcul de initial
- Itérations globales
- Adimensionnement de k
c
- Résolution de l'équation de Levenberg-Marquardt
- Imposition du respect des bornes
- Redimensionnement de k 1
+
c
- Calcul de J( k 1+
c
)
- Actualisation de
- Calcul de A , adimensionnalisation de A
- Test de convergence
- k = k + 1
·
Fin



5 Bibliographie

[1]
J.C. CULIOLI : « Introduction à l'optimisation », Ellipses, 1994
[2]
M. S. BAZARAA, H.D. SHERALI & C.M. SHETTY : « Nonlinear Programming, Theory and
Algorithms », Wiley & Sons, 1979
[3]
« Contact par des conditions cinématiques », Document Code_Aster [R5.03.50]
[4]
K. KUNISCH & F. RENDL ; « An infeasible active set method for quadratic programming with
simple bounds », SIAM Journal on Optimization, Volume 14, Number 1, 2003
Manuel de Référence
Fascicule R4.03 : Analyse de sensibilité
HT-66/03/005/A

Document Outline