Mathc matrices/a34
Apparence
Installer et compiler ces fichiers dans votre répertoire de travail.
c00a.c |
|---|
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
void X_c_Inv_A_mR(
double **AID,
double **invA
)
{
int r;
int c;
int RC = AID[C_SIZE_A][C0];
--RC;
for (r=R1; r<invA[R_SIZE][C0]; r++)
for (c=C1; c<invA[C_SIZE][C0]; c++)
invA[r][c] = AID[r][c+RC];
}
/* ------------------------------------ */
/* ------------------------------------ */
void fun(int r)
{
double **A = i_mR(r,r);
double **b = i_mR(r,r);
double **Ab = i_Abr_Ac_bc_mR( r, r, r);
/* i_Abr_Ac_bc_mR(R_Ab,C_A,C_b)); */
double **invA = i_mR(r,r);
do
{
r_mR(A,999.);
printf(".");
}while(!det_R(A));
clrscrn();
printf(" A:");
p_mR(A, S8,P0,C4);
printf(" b:");
eye_mR(b);
p_mR(b, S8,P0,C4);
stop();
clrscrn();
printf(" Ab:");
c_A_b_Ab_mR(A,b,Ab);
p_mR(Ab,S8,P0,C4);
printf(" gj_TP_mR(Ab);");
gj_TP_mR(Ab);
p_mR(Ab, S8,P4,C4);
stop();
clrscrn();
printf(" Copy/Paste into the octave window.\n\n");
p_Octave_mR(A,"A",P0);
printf("format short e\n");
printf(" inv(A)\n\n");
printf(" invA : c_Inv_A_mR(Ab,invA);");
c_Inv_A_mR(Ab,invA);
pE_mR(invA, S14,P4,C4);
f_mR(invA);
f_mR(Ab);
f_mR(b);
f_mR(A);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun(R4);
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Copier la matrice inverse du système Ab dans la matrice invA :
Exemple de sortie écran :
A:
-177 -831 -780 +240
+681 -295 +704 +586
+753 -612 +791 -780
+978 +174 +988 -758
b:
+1 +0 +0 +0
+0 +1 +0 +0
+0 +0 +1 +0
+0 +0 +0 +1
Press return to continue.
Ab:
-177 -831 -780 +240
+681 -295 +704 +586
+753 -612 +791 -780
+978 +174 +988 -758
+1 +0 +0 +0
+0 +1 +0 +0
+0 +0 +1 +0
+0 +0 +0 +1
gj_TP_mR(Ab);
+1.0000 -0.0000 -0.0000 -0.0000
+0.0000 +1.0000 -0.0000 -0.0000
+0.0000 +0.0000 +1.0000 +0.0000
+0.0000 +0.0000 +0.0000 +1.0000
+0.0016 +0.0003 -0.0016 +0.0024
-0.0001 -0.0002 -0.0012 +0.0010
-0.0016 +0.0004 +0.0015 -0.0017
-0.0000 +0.0008 -0.0005 -0.0002
Press return to continue.
Copy/Paste into the octave window.
A=[
-177,-831,-780,+240;
+681,-295,+704,+586;
+753,-612,+791,-780;
+978,+174,+988,-758]
format short e
inv(A)
invA : c_Inv_A_mR(Ab,invA);
+1.6053e-03 +2.6072e-04 -1.6275e-03 +2.3845e-03
-6.3830e-05 -1.9885e-04 -1.1612e-03 +1.0210e-03
-1.5787e-03 +4.0429e-04 +1.4664e-03 -1.6963e-03
-1.1191e-06 +8.1770e-04 -4.5498e-04 -2.1928e-04
Press return to continue
Press X return to stop