Mathc complexes/a52
Apparence
Le code de la fonction :
/* ------------------------------------ */
/* ------------------------------------ */
double **rsymmetric_mRZ(
double **A,
int n
)
{
int r = rsize_Z(A);
int c = csize_Z(A);
double **B = r_mRZ(i_mZ(r,c),n);
double **B_T = transpose_mZ(B,i_mZ(c,r));
mul_mZ(B,B_T, A);
f_mZ(B);
f_mZ(B_T);
return(A);
}
/* ------------------------------------ */
/* ------------------------------------ */
J'utilise ici une propriété de l'algèbre linéaire qui dit que si on multiplie une matrice par sa transposée le résultat est une matrice symétrique.
Installer et compiler ces fichiers dans votre répertoire de travail.
c00.c |
|---|
/* ------------------------------------ */
/* Save as : c00.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
void fun(int rc)
{
double **A = rsymmetric_mRZ(i_mZ(rc,rc), 999);
clrscrn();
printf(" A : Real Values");
p_mZ(A, S10,P0, S3,P0, C8);
printf(" A : Real Values");;
p_mRZ(A, S10,P0, C8);
f_mZ(A);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
fun(rp_I(RC3)+R2);
while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Exemple de sortie écran :
A : Real Values
+646234 +0i -386897 +0i +265606 +0i
-386897 +0i +670874 +0i +468657 +0i
+265606 +0i +468657 +0i +1327677 +0i
A : Real Values
+646234 -386897 +265606
-386897 +670874 +468657
+265606 +468657 +1327677
Press return to continue
Press X return to stop