C++, systeme tridiagonal
dongous
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
je suis entrain de resoudre un système tridiagonal avec un Thomas algorithme en C++
Je doit le répéter m_Nt fois pour obtenir la solution recherchée u[100][0].
j'ai suivi l'exemple du code présenté sur wikipédia
Voici le lien
http://en.wikipedia.org/wiki/Tridiagonal_matrix_algorithm
et voici mon code
/*********** resolution du systeme par Thomas algorithme ******/
// double c[201];double dd[201];double a[201]; sont respectivement les diag sup diag sub
// double u[201][101];
for(int n=99; n>=0 ;--n)
{
for (int i = 1; i < 201; i++)
{
double m = a[i]/dd[i - 1]; //ok
dd[i] = dd[i] - m * c[i - 1]; //ok
u[i][n+1] = u[i][n+1] - m*u[i-1][n+1] ; // quand je debug, cette ligne ne marche pas (pas de changement de valeur pour la matrice u )//
}
u[200][n] = u[200][n+1]/dd[200];
for (int i = 199; i >= 0; --i)
u[i][n] = (u[i][n+1] - c[i] * u[i+1][n]) / dd[i] ;
}
std::cout<<u[100][0]<<std::endl;
}
je sais pas pourquoi il y a une erreur de debug.Pourtant il n'y a pas de probleme de compilation ou build.
Est-ce que quelqu'un pourrait m'indiquer l'endoit ou j'ai fait une erreur ?
Merci d'avance !
je suis entrain de resoudre un système tridiagonal avec un Thomas algorithme en C++
Je doit le répéter m_Nt fois pour obtenir la solution recherchée u[100][0].
j'ai suivi l'exemple du code présenté sur wikipédia
Voici le lien
http://en.wikipedia.org/wiki/Tridiagonal_matrix_algorithm
et voici mon code
/*********** resolution du systeme par Thomas algorithme ******/
// double c[201];double dd[201];double a[201]; sont respectivement les diag sup diag sub
// double u[201][101];
for(int n=99; n>=0 ;--n)
{
for (int i = 1; i < 201; i++)
{
double m = a[i]/dd[i - 1]; //ok
dd[i] = dd[i] - m * c[i - 1]; //ok
u[i][n+1] = u[i][n+1] - m*u[i-1][n+1] ; // quand je debug, cette ligne ne marche pas (pas de changement de valeur pour la matrice u )//
}
u[200][n] = u[200][n+1]/dd[200];
for (int i = 199; i >= 0; --i)
u[i][n] = (u[i][n+1] - c[i] * u[i+1][n]) / dd[i] ;
}
std::cout<<u[100][0]<<std::endl;
}
je sais pas pourquoi il y a une erreur de debug.Pourtant il n'y a pas de probleme de compilation ou build.
Est-ce que quelqu'un pourrait m'indiquer l'endoit ou j'ai fait une erreur ?
Merci d'avance !
A voir également:
- C++, systeme tridiagonal
- Restauration systeme windows 10 - Guide
- Vérificateur des fichiers système - Guide
- Vous avez besoin d'une autorisation de la part de système pour modifier ce dossier - Guide
- Cloner disque systeme - Guide
- Comment refaire le système d'un ordinateur - Guide