Gradient conjugué
Résolu
lolita_12
-
Dirichlet -
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.
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
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é]
au mieux on corrigera ce que tu nous propose,
au pire ton message sera [Fermé]
"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
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
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 ;
}
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 ;
}