Mathc complexes/02d
Apparence
Installer et compiler ces fichiers dans votre répertoire de travail.
c00a.c |
|---|
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
#define FACTOR_E +1.E-2
#define RCA RC3
/* ------------------------------------ */
void fun(void)
{
double d[RCA*(RCA*C2)] ={
5,0, 0,0, 0,0,
0,0, 4,0, 0,0,
0,0, 0,0, 3,0};
double **D = ca_A_mZ(d, i_mZ(RCA,RCA));
double **A = rdefpos_diag_mZ(D, i_mZ(RCA,RCA),9);
double **EigsValue = eigs_mZ(A, i_mZ(RCA,C1));
clrscrn();
printf(" Choose your eigenvalues (d), \n"
" and copy A into the next C file\n\n"
" A:");
P_mZ(A, S10,P10, S10,P10, C4);
printf(" D = EValue :");
p_mZ(D, S3,P0, S2,P0, C4);
f_mZ(D);
f_mZ(A);
f_mZ(EigsValue);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun();
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Vous commencez par choisir vos valeurs propres réelles (le tableau d). La fonction va créer une matrice qui possédera ces valeurs propres réelles. La matrice A est une matrice symétrique conjugué.
On utilise la même fonction pour calculer la matrice A que dans l'exemple précédent.
Exemple de sortie écran :
Choose your eigenvalues (d),
and copy A into the next C file
A:
+4.1622480896,+0.0000000000, -0.0235528909,-0.5265429025, +0.4140177005,-0.0158573157,
-0.0235528909,+0.5265429025, +4.2875927057,+0.0000000000, -0.6281162702,+0.0176153189,
+0.4140177005,+0.0158573157, -0.6281162702,-0.0176153189, +3.5501592046,+0.0000000000
D = EValue :
+5+0i +0+0i +0+0i
+0+0i +4+0i +0+0i
+0+0i +0+0i +3+0i
Press return to continue
Press X return to stop x