Mathc complexes/a197
Installer et compiler ces fichiers dans votre répertoire de travail.
c01a.c |
---|
/* ------------------------------------ */
/* Save as : c01a.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
#define RA R3
#define CA C3
#define Cb C1
/* ------------------------------------ */
int main(void)
{
double a[RA*(CA*C2)] ={ 1,2, 3,4, 5,6,
5,4, 1,3, 6,8,
7,2, 5,1, 1,1};
double b[RA*(Cb*C2)] ={ 1,2,
3,4,
5,6 };
double **A = ca_A_mZ(a,i_mZ(RA,CA));
double **B = ca_A_mZ(b,i_mZ(RA,Cb));
double **Inv = i_mZ(RA,CA);
double **X = i_mZ(RA,Cb);
double **T = i_mZ(RA,Cb);
clrscrn();
printf(" We want to find X such as, \n\n");
printf(" AX = B \n\n");
printf(" If A is a square matrix and, \n\n");
printf(" If A has an inverse matrix, \n\n");
printf(" you can find X by this method\n\n");
printf(" X = inv(A) B \n\n\n");
printf(" To verify the result you can \n\n");
printf(" multiply the matrix A by X. \n\n");
printf(" You must refind B. \n\n");
getchar();
clrscrn();
printf(" A :\n");
p_mZ(A, S5,P0, S4,P0, C6);
printf(" B :\n");
p_mZ(B, S5,P0, S4,P0, C6);
getchar();
clrscrn();
printf(" inv(A) :\n");
pE_mZ(inv_mZ(A,Inv), S12,P4, S12,P4, C4);
printf(" X = inv(A) * B :\n");
p_mZ(mul_mZ(Inv,B,X), S10,P4, S8,P4, C4);
getchar();
clrscrn();
printf(" B :\n");
p_mZ(B, S5,P0, S4,P0, C6);
printf(" AX :\n");
p_mZ(mul_mZ(A,X,T), S5,P0, S4,P0, C6);
f_mZ(T);
f_mZ(X);
f_mZ(B);
f_mZ(Inv);
f_mZ(A);
stop();
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Exemple de sortie écran :
----------------------------------
We want to find X such as,
AX = B
If A is a square matrix and,
If A has an inverse matrix,
you can find X by this method
X = inv(A) B
To verify the result you can
multiply the matrix A by X.
You must refind B.
----------------------------------
A :
+1 +2i +3 +4i +5 +6i
+5 +4i +1 +3i +6 +8i
+7 +2i +5 +1i +1 +1i
B :
+1 +2i
+3 +4i
+5 +6i
----------------------------------
inv(A) :
-1.2917e-01 +8.1007e-02i +8.5597e-02 -6.6602e-02i +8.5160e-02 -3.3778e-04i
+1.8258e-01 -8.6352e-02i -1.5122e-01 +8.1911e-02i +9.3058e-02 -3.8517e-02i
+3.7156e-03 -6.3244e-02i +7.1142e-02 -3.4463e-02i -8.4514e-02 +1.6084e-02i
X = inv(A) * B :
+0.6598 +0.4745i
+0.2704 +0.2854i
-0.0376 -0.3013i
----------------------------------
B :
+1 +2i
+3 +4i
+5 +6i
AX :
+1 +2i
+3 +4i
+5 +6i
Press return to continue.