4 pièce(s) jointe(s)
Signification du pointeur this
Bonjour à tous,
Je suis actuellement en cursus physique, et j'essaie de progresser dans la partie Méthodes Numériques appliquées au C++ qui me posent pas mal de problèmes.
Est ce que parmis vous une ame charitables pourrais m'aider à y voir plus claire?
Je vous remercie infiniement tous par avance!!
J'ai mis mes fichier en PJ compressés en ZIP
Merci encore à tous
QUESTION 1
Pièce jointe 203831
Je n'arrive pas à utiliser comme demandé le pointeur this* et à l'adapter à ce qui se trouve dans mon squelette de programme (voir SysLin.cpp)
J'ai trouvé ça pour m'aider mais je n'arrive pas à l'adapter à l'amorce qu'on me donne dans SysLin.cpp dans partie décomposition LU au tout début
http://www.sanfoundry.com/cpp-progra...on-any-matrix/
http://www.sci.utah.edu/~wallstedt/LU.htm
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| // Crout uses unit diagonals for the upper triangle
void Crout(int d,double*S,double*D){
for(int k=0;k<d;++k){
for(int i=k;i<d;++i){
double sum=0.;
for(int p=0;p<k;++p)sum+=D[i*d+p]*D[p*d+k];
D[i*d+k]=S[i*d+k]-sum; // not dividing by diagonals
}
for(int j=k+1;j<d;++j){
double sum=0.;
for(int p=0;p<k;++p)sum+=D[k*d+p]*D[p*d+j];
D[k*d+j]=(S[k*d+j]-sum)/D[k*d+k];
}
}
}
void solveCrout(int d,double*LU,double*b,double*x){
double y[d];
for(int i=0;i<d;++i){
double sum=0.;
for(int k=0;k<i;++k)sum+=LU[i*d+k]*y[k];
y[i]=(b[i]-sum)/LU[i*d+i];
}
for(int i=d-1;i>=0;--i){
double sum=0.;
for(int k=i+1;k<d;++k)sum+=LU[i*d+k]*x[k];
x[i]=(y[i]-sum); // not dividing by diagonals
}
} |
QUESTION 2
Pièce jointe 203832
J'ai répondu 2
QUESTION 3
Pièce jointe 203833
D'après le fichier SysLin.h, on peut voir que c'est réponse 5
La matrice inversible hérite de la matrice carrée