Mathc matrices/030
Installer et compiler ces fichiers dans votre répertoire de travail.
c00a.c |
---|
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void fun(int r)
{
double **A = rdefinite_negative_mR( i_mR(r,r), 99);
double **invA = inv_mR(A, i_mR(r,r));
double **sA = i_mR(r,r) ;
double **EValue = eigs_mR(A, i_mR(r,C1));
clrscrn();
printf(" A = Q sD QT : Definite negative");
p_mR(A,S12,P6,C6);
printf(" invA ");
p_mR(invA,S12,P6,C6);
printf(" eigs_mR(A); A : Definite negative");
p_mR(EValue,S9,P3,C1);
stop();
clrscrn();
printf(" -A : Definite positive");
smul_mR(-1,A,sA);
p_mR(sA,S12,P6,C6);
printf(" eigs_mR(-A); -A : Definite positive");
eigs_mR(sA,EValue);
p_mR(EValue,S9,P3,C1);
f_mR(A);
f_mR(sA);
f_mR(invA);
f_mR(EValue);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun(rp_I(R3)+R1);
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Ses valeurs propres sont négatives. Elle est inversible. -A est définie positif
Exemple de sortie écran :
A = Q sD QT : Definite negative
-62.822947 +13.971519 +13.431514
+13.971519 -46.998526 +24.588297
+13.431514 +24.588297 -28.178527
invA
-0.032702 -0.032892 -0.044289
-0.032892 -0.072233 -0.078708
-0.044289 -0.078708 -0.125279
eigs_mR(A); A : Definite negative
-71.000
-62.000
-5.000
Press return to continue.
-A : Definite positive
+62.822947 -13.971519 -13.431514
-13.971519 +46.998526 -24.588297
-13.431514 -24.588297 +28.178527
eigs_mR(-A); -A : Definite positive
+71.000
+62.000
+5.000
Press return to continue
Press X return to stop