Mathc matrices/08p
Apparence
Choisir les valeurs propres
[modifier | modifier le wikicode]Introduire les valeurs propres sur la diagonale
/* ------------------------------------ */
double d[RCA*RCA] ={
+1, +0, +0, +0, +0, +0,
+0, +1, +0, +0, +0, +0,
+0, +0, +1, +0, +0, +0,
+0, +0, +0, +1, +0, +0,
+0, +0, +0, +0, +1, +0,
+0, +0, +0, +0, +0, +0
};
double **D = ca_A_mR(d, i_mR(RCA,RCA));
/* ------------------------------------ */
Cette fonction va vous permettre de choisir vos valeurs propres.
/* ------------------------------------ */
double **rdefpos_diag_mR(
double **D, /* Choose your eigenvalues */
double **A,
int n /* Control the function: r_Q_mR(); */
)
{
int r = rsize_R(A);
double **Q = r_Q_mR( i_mR(r,r),n); /* You create an orthogonal matrix. */
double **invQ = invgj_mR(Q, i_mR(r,r)); /* You take its inverse. */
double **QD = mul_mR(Q,D, i_mR(r,r)); /* You compute: A = Q D invQ */
/* A = Q D invQ */
mul_mR(QD,invQ,A);
f_mR(Q);
f_mR(invQ);
f_mR(QD);
return(A);
}
/* ------------------------------------ */
Application
[modifier | modifier le wikicode]Vous pouvez choisir vos valeurs propres avec la fonction: rdefpos_diag_mR();
Vérifions le résulat