Gradient conjugué

Résolu
lolita_12 -  
 Dirichlet -
Bonjour,


je travaille sur le thème suivant: l'acquisition et traitement de données via orphy mise en oeuvre par MATLAB
j'ai respecté l'acheminement suivant:
1.Acquisition des données : les valeur acquissent vérifie l'équation suivant y=5*(1-exp(-2*t)) + randn(length (t),1); t=1:20 ( 5 et -2 sont théoriquement calculé)
2. Traitement de données : le traitement doit se faire par la méthode gradient conjugué.

les valeurs acquis sont sous forme d'un tableau. et on sait que les données acquis vérifie l'équation suivante: y=a*(1-exp(b*t)) dont, nous devons estimer les paramètres a et b.



j' espére avoir le programme qui fait l'estimation par la gradient conjugué.ce trvail je dois le rendre ce mardi .

je vous remercie d'avance pour votre aide.
A voir également:
  • Gradient conjugué
  • Le conjugué - Télécharger - Études & Formations

2 réponses

bjour Messages postés 6071 Date d'inscription   Statut Contributeur Dernière intervention   4 077
 
tu sais, sur CCM on fait pas d'aide aux devoirs.
au mieux on corrigera ce que tu nous propose,
au pire ton message sera [Fermé]
0
Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
"j' espére avoir le programme qui fait l'estimation par la gradient conjugué.ce trvail je dois le rendre ce mardi . "

non, tu ne dois pas seulement le rendre pour mardi, tu dois le FAIRE pour mardi(sous.entendu : toi-même, au moins en grande partie)


voir :

demander de l'aide pour vos exercices sur ccm
0
lolita_12
 
on fait je cherche pas le programme exactement, tous cette explication rien que pour savoir la méthode ou un exemple sur lequel je peux travailler. d'ailleurs je suis pas trop familiarisé ac matlab c la première fois que je travail avec.
merci toute même
0
Dirichlet
 
int GradienConjugue(const M & A,const P & C,const KN_<R> &b,KN_<R> &x,
int nbitermax,double eps)
{
int n=b.N() ;
assert(n==x.N()) ;
KN<R>
g(n), h(n), Ah(n) ;
//
on utilise Ah pour stocker Cg
KN<R> & Cg(Ah) ;
g = A*x ;
//
g = Ax-b
g -= b ;
Cg = C*g ;
//
gradient preconditionn ?
e
h =-Cg ;
R g2 = (Cg,g) ;
//
if (g2 < eps*eps)
{cout << "iter=0" << " ||g||^2 = " << g2 << endl ;
return 1 ;}
R reps2 = eps*eps*g2 ;
solution d ?j' converg ?e
e a
e
//
epsilon relatif
for (int iter=0 ;iter<=nbitermax ;iter++)
{
Ah = A*h ;
R ro = - (g,h)/ (h,Ah) ;
x += ro *h ;
//
plus besoin de Ah, on va stocker Cg
g += ro *Ah ;
Cg = C*g ;
R g2p=g2 ;
g2 = (Cg,g) ;
cout << iter << " ro = " << ro << " ||g||^2 = " << g2 << endl ;
if (g2 < reps2) {
cout << iter << " ro = " << ro << " ||g||^2 = " << g2 << endl ;
//
ok, convergence
return 1 ;
}
R gamma = g2/g2p ;
h *= gamma ;
h -= Cg ;
}
cout << " Non-convergence de la m ?thode du gradient conjugu ?" <<endl ;
e
e
return 0 ;
}
0