Mathc matrices/c12ec1
Installer et compiler ces fichiers dans votre répertoire de travail.
c00c.c |
---|
/* ------------------------------------ */
/* Save as : c00c.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
void fun(int r, int c)
{
double **Ab = r_mR(i_Abr_Ac_bc_mR(r,c,C1),999.);
double **A = i_mR(r,c);
double **subA = i_mR(r,r);
clrscrn();
printf(" Ab :");
p_mR(Ab,S8,P0,C7);
printf(" A : i_mR(r,c);");
p_mR(c_Ab_A_mR(Ab,A),S8,P0,C7);
printf(" subA : i_mR(r,r); \t\t c_Ab_subArxr_mR(Ab,subA); ");
p_mR(c_Ab_subArxr_mR(Ab,subA),S8,P0,C7);
f_mR(A);
f_mR(Ab);
f_mR(subA);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun(rp_I(R3)+R1, rp_I(R3)+R3);
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Copier la sous-matrice de Ab dans subA :
// La matrice Ab doit être initialiser avec la fonction :
double **Ab = i_Abr_Ac_bc_mR( RAb, CA, Cb);
// Cette fonction installe la bonne taille pour les matrices Ab, A, b.
Cette méthode permet par exemple de faire croire à la fonction det_mR(); que la matrice est carrée. On peut calculer le déterminant de cette sous-matrice. Si il n'est pas nul, le système Ab peut être résolu avec l'algorithme du Total Pivoting. Exemple de sortie écran :
Ab :
+437 -943 +921 -443 +755 -102
-719 +240 -682 +376 +191 +706
+801 +624 +991 +423 +598 +768
+105 -864 -70 +841 -704 +871
A : i_mR(r,c);
+437 -943 +921 -443 +755
-719 +240 -682 +376 +191
+801 +624 +991 +423 +598
+105 -864 -70 +841 -704
subA : i_mR(r,r); c_Ab_subArxr_mR(Ab,subA);
+437 -943 +921 -443
-719 +240 -682 +376
+801 +624 +991 +423
+105 -864 -70 +841
Press return to continue
Press X to stop