• Aucun résultat trouvé

TD CS 305 – Problèmes inverses

N/A
N/A
Protected

Academic year: 2022

Partager "TD CS 305 – Problèmes inverses"

Copied!
2
0
0

Texte intégral

(1)

ESILV–CS 305 Problèmes inverses

TD CS 305 – Problèmes inverses

M. Kern 6 janvier 2003

Exercice 1 : Identification de paramètres – équations différen- tielles ordinaires

Le but de cet exercice est de réaliser un ensemble de fonctions en Scilab permettant d’attaquer des problèmes inverses pour les équations différentielles ordinaires

y0(t) = f(t,y,a), 0<t<T, y(0) =y0 où y :[0,T]→Rd, aRpet f :[0,TU×Rp.

On suppose connue des mesures de l’état y à des instants τ1, . . . ,τQ, que l’on note d =

(d1, . . . ,dQ)avec dqRd, et l’on cherche à identifier le paramètre a pour lequel la différence

entre dqet y(tq)est la plus petite possible, au sens des mondres carrés.

On supposera dans cet exercice que l’on intere l’équation différentielle par la méthode d’Eu- ler explicite. On notera t0=0≤t1≤ ··· ≤tn≤ ··· ≤tNT les points de discrétisation, avec tn=nh, Nh=T . Le schéma d’Euler s’écrit alors :

yn+1yn

hf(tn,yn,a) =0, n=0, . . . ,N−1, y0=y0. Vous validerez votre code sur les deux exemples suivants :

(1) f(t,y,a) = −(a1+a3)y21 a1y21a2y2t

avec les conditions initiales y(0) =y0= 1 0t

, et

(2) f(t,a,y) = −(a1+a2)y1 a1y1 a2y1−(a3+a4)y3+a5y5 a3y3 a4y3a5y5t

. avec les conditions initiales y(0) =y0= 1 0 0 0 0t

.

Les fonctions et les données sont à télécharger à l’adresse http://www-rocq.inria.fr/

~kern/Teach/ESILV/CS305.html.

1 Rappeler la formulation aux moindres carrés de ce problème. On notera J la fonction coût.

1

(2)

ESILV–CS 305 Problèmes inverses

2 Rappeler comment on peut calculer le gradient de la fonction coût, d’abord par différentia- tion directe, puis par la méthode de l’état adjoint, enfin par différences finies.

3 En vous inspirant de la fonction direct, écrire des fonctions permettant de résoudre le problème linéarisé, le problème adjoint. Ces fonctions auront les spécifications suivantes : function [etat] = direct(t0, tf, f, h, a, y)

function [etadj]= adjoint(t0, tf, jyf, h, a, etat, r) function [detat] = linearise(t0, tf, jyf, h, a, etat, b) où

– t0(resp.tf) est l’instant initial (resp. final), – hest le pas de temps,

– a, de taille p, est le vecteur des paramètres,

– y, de taille d, correspond à y0en entrée dedirect,

– etat, de taille d×N, est l’état (en sortie dedirect, en entrée deadjointetlinearise), – detatetetatdj, de même taille que textttetat, sont les solutions des problèmes linéarisés

et adjoints respectivement,

– fetjyfsont la fonction f de l’équation différentielle et sa matrice jacobienne par rapport à y,

– b(resp.r), de même taille queetat, est le second membre de l’équation linéarisée (resp.

adjointe).

La fonction f caractérise le problème, et aura la séquence d’appel suivante : function ydot=f(t, y, a)

On aura également besoin des fonctions qui calculent les matrices jacobiennes par rapport à a et y, avec la même séquence d’appel.

4 Écrire les fonctions permettant de calculer la fonction coût et son gradient par la méthode de l’état adjoint.

function [cout] = simul(a, f, tobs, dobs)

function [g] = gradient(a, f, jyf, jaf, tobs, dobs)

Testez votre calcul en utilisant les fonctionststadjettstgradqui réalisent respectivement le test du produit scalaire et un calcul par différences finies .

5 En utilisant la fonction costf, écrire une fonction qui résout le problème de moindres carrés en apellantoptim.

6 Résoudre les problèmes correspondant aux données disponibles dans les fichiersgasoil.dat etpinene.dat. Les mesures sont prises sur un maillage uniforme en temps.

2

Références

Documents relatifs

Elle possède tous les ingrédients mais elle se demande si elle en a suffisamment, notamment pour les œufs puisqu’elle n’en a

[r]

[r]

[r]

[r]

Il aura fallu 20 années et une main d’œuvre de 10 000 hommes renouvelés tous les trois mois selon Hérodote pour construire

Avec l’argent restant, le responsable décide d’acheter des jeux vidéos coûtant 27

Pour montrer que cette conjecture est toujours vraie, on désigne le premier des quatre entiers par la lettre n.. Exprime alors les