4 réponses
Et bien tout dabbord , sache qu'il vaut mieux quelqu'un de plus expérimenté uqe moi pour confirmer , je suis plutotdébutant.
Donc pour la structure je ferai qqch comme cela:
struct complex
{
double re;
double im;
};
Puis il te faut les fonctions pour créer un complexe , le supprimer (vu que jai alloué dynamiquement), pour en additionner, et pour multiplier ( si tu t'en sers ds une matrice cest a peu pres tout ce dont tu as besoin je suppose)
complex
complex_new( double re, double im)
{
complex z = malloc (sizeof (struct complex));
z->re = re;
z->im = im;
return z;
}
complex
complex_add( complex z1, complex z2)
{
return complex_new (z1->re + z2->re, z1->im + z2->im);
}
complex
complex_mult (complex z1, complex z2)
{
return complex_new (z1->re * z2->re - z1->im * z2->im,
z1->re * z2->im + z1->im * z2->re);
}
void
complex_suppr( complex z)
{
free (z);
}
Oh et si tu veux afficher ta matrice de complexe , voila une fonction qui affiche le nombre complexe: "a + ib":
static void
complex_aff(complex z)
{
fprintf(stderr,"(%f +i*%f)\n",z->re,z->im);
}
Voila , moi jai du bosser récemment sur une structure de complexe et cest ca que j'ai fait.
Ensuite pour ta matrice , tu peux peut etre créer une autre structure matrice_complexe comprenant
nb colone , nb ligne , et donc **complexe
Voila jespere que ca taura aidé bon courage
(encore une fois , je ne suis pas sur que ce soit la meilleure solution!)
Donc pour la structure je ferai qqch comme cela:
struct complex
{
double re;
double im;
};
Puis il te faut les fonctions pour créer un complexe , le supprimer (vu que jai alloué dynamiquement), pour en additionner, et pour multiplier ( si tu t'en sers ds une matrice cest a peu pres tout ce dont tu as besoin je suppose)
complex
complex_new( double re, double im)
{
complex z = malloc (sizeof (struct complex));
z->re = re;
z->im = im;
return z;
}
complex
complex_add( complex z1, complex z2)
{
return complex_new (z1->re + z2->re, z1->im + z2->im);
}
complex
complex_mult (complex z1, complex z2)
{
return complex_new (z1->re * z2->re - z1->im * z2->im,
z1->re * z2->im + z1->im * z2->re);
}
void
complex_suppr( complex z)
{
free (z);
}
Oh et si tu veux afficher ta matrice de complexe , voila une fonction qui affiche le nombre complexe: "a + ib":
static void
complex_aff(complex z)
{
fprintf(stderr,"(%f +i*%f)\n",z->re,z->im);
}
Voila , moi jai du bosser récemment sur une structure de complexe et cest ca que j'ai fait.
Ensuite pour ta matrice , tu peux peut etre créer une autre structure matrice_complexe comprenant
nb colone , nb ligne , et donc **complexe
Voila jespere que ca taura aidé bon courage
(encore une fois , je ne suis pas sur que ce soit la meilleure solution!)
A moins de vouloir s'entraîner à construire une classe, il existe nativement une class 'Complex' en C++.
Pour ce qui est de la méthode de Gauss-Jordan, des algorithmes sont décrits aux adresses suivantes:
http://www.math-info.univ-paris5.fr/~pastre/meth-num/MN/2-gauss-jordan/cours-gauss-jordan.pdf
http://sma.epfl.ch/~hessbell/alglin/AlgLin0607_files/AlgorithmeGaussJordan.pdf
https://fr.wikipedia.org/wiki/Méthode_d'élimination_de_Gauss
Pour ce qui est de la méthode de Gauss-Jordan, des algorithmes sont décrits aux adresses suivantes:
http://www.math-info.univ-paris5.fr/~pastre/meth-num/MN/2-gauss-jordan/cours-gauss-jordan.pdf
http://sma.epfl.ch/~hessbell/alglin/AlgLin0607_files/AlgorithmeGaussJordan.pdf
https://fr.wikipedia.org/wiki/Méthode_d'élimination_de_Gauss
24 déc. 2008 à 12:17