Mathc complexes/a90
Apparence
Le code de la fonction :
/* ------------------------------------ */
void c_Inv_A_mZ(
double **AID,
double **A
)
{
int r;
int c;
int T = A[C_SIZE][C0];
--T;
for (r=R1; r<A[R_SIZE][C0]; r++)
for (c=C1; c<A[C_SIZE][C0]; c++)
A[r][c] = AID[r][c+T];
}
/* ------------------------------------ */
/* ------------------------------------ */
Copier la matrice inverse du système Ab dans la matrice invA.
Installer et compiler ce fichier dans votre répertoire de travail.
c00a.c |
|---|
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
void fun(int r)
{
double **A = r_mZ( i_mZ(r,r),999);
double **ID = eye_mZ( i_mZ(r,r));
double **AID = c_A_b_Ab_mZ(A,ID, i_Abr_Ac_bc_mZ( r, r, r));
/* i_Abr_Ac_bc_mZ(R_Ab, C_A, C_b)); */
double **invA = i_mZ(r,r);
clrscrn();
printf(" A:");
p_mZ(A, S6,P0, S5,P0, C4);
printf(" ID:");
p_mZ(ID, S6,P0, S5,P0, C4);
stop();
clrscrn();
printf(" AID:");
p_mZ(AID, S6,P0, S5,P0, C4);
printf(" gj_TP_mZ(AID) :");
gj_mZ(AID);
p_mZ(AID, S8,P4, S8,P4, C4);
stop();
clrscrn();
printf(" Copy/Paste into the octave window.\n");
p_Octave_mZ(A,"A",P0,P0);
printf("format short e\n");
printf(" inv(A)\n\n");
printf(" invA : c_Inv_A_mZ(Ab,invA);");
c_Inv_A_mZ(AID, invA);
pE_mZ(invA, S10,P4, S10,P4, C3);
f_mZ(invA);
f_mZ(AID);
f_mZ(ID);
f_mZ(A);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun(R4);
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Exemple de sortie écran :
A:
+328 +126i -584 -549i +618 +274i -56 +604i
+738 +234i +477 +768i +402 +927i -373 +412i
+298 +72i +764 -843i -392 -175i -116 -765i
+56 +457i -443 +713i +413 -300i +330 +205i
ID:
+1 +0i +0 +0i +0 +0i +0 +0i
+0 +0i +1 +0i +0 +0i +0 +0i
+0 +0i +0 +0i +1 +0i +0 +0i
+0 +0i +0 +0i +0 +0i +1 +0i
Press return to continue.
AID:
+328 +126i -584 -549i +618 +274i -56 +604i
+738 +234i +477 +768i +402 +927i -373 +412i
+298 +72i +764 -843i -392 -175i -116 -765i
+56 +457i -443 +713i +413 -300i +330 +205i
+1 +0i +0 +0i +0 +0i +0 +0i
+0 +0i +1 +0i +0 +0i +0 +0i
+0 +0i +0 +0i +1 +0i +0 +0i
+0 +0i +0 +0i +0 +0i +1 +0i
gj_TP_mZ(AID) :
+1.0000 +0.0000i -0.0000 -0.0000i +0.0000 +0.0000i -0.0000 -0.0000i
-0.0000 -0.0000i +1.0000 +0.0000i +0.0000 +0.0000i +0.0000 -0.0000i
-0.0000 +0.0000i +0.0000 +0.0000i +1.0000 +0.0000i +0.0000 +0.0000i
+0.0000 +0.0000i -0.0000 +0.0000i -0.0000 +0.0000i +1.0000 +0.0000i
+0.0009 -0.0005i +0.0003 +0.0003i +0.0003 -0.0001i -0.0003 -0.0009i
-0.0001 +0.0008i -0.0001 -0.0003i -0.0003 +0.0002i +0.0000 -0.0005i
-0.0012 -0.0003i +0.0006 -0.0008i +0.0010 -0.0005i +0.0015 +0.0016i
+0.0014 -0.0014i +0.0000 +0.0009i +0.0002 +0.0019i -0.0021 +0.0006i
Press return to continue.
Copy/Paste into the octave window.
A=[
+328+126*i,-584-549*i,+618+274*i,-56+604*i;
+738+234*i,+477+768*i,+402+927*i,-373+412*i;
+298+72*i,+764-843*i,-392-175*i,-116-765*i;
+56+457*i,-443+713*i,+413-300*i,+330+205*i]
format short e
inv(A)
invA : c_Inv_A_mZ(Ab,invA);
+8.9986e-04-5.3506e-04i +2.7439e-04+2.8779e-04i +2.9471e-04-1.3514e-04i
-1.2945e-04+7.6326e-04i -7.7332e-05-3.3282e-04i -2.5647e-04+2.0358e-04i
-1.1661e-03-2.8481e-04i +6.3681e-04-8.2863e-04i +1.0289e-03-5.0229e-04i
+1.4109e-03-1.4311e-03i +3.5436e-05+8.8542e-04i +1.9744e-04+1.8835e-03i
-3.1438e-04-9.2411e-04i
+2.8187e-05-4.5368e-04i
+1.5038e-03+1.6286e-03i
-2.1403e-03+5.8078e-04i
Press return to continue
Press X return to stop