Mathc complexes/02y
Apparence
Installer et compiler ces fichiers dans votre répertoire de travail.
c00b.c |
|---|
/* ------------------------------------ */
/* save as: c00b.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
#define RA R2
#define CA C3
/* ------------------------------------ */
/* ------------------------------------ */
void fun(void)
{
double **A = r_mZ( i_mZ(RA,CA),99);
double **A_T = i_mZ(CA,RA);
double **AA_T = i_mZ(RA,RA); // A*A_T
double **invAA_T = i_mZ(RA,RA); // inv(A*A_T)
double **Pinv = i_mZ(CA,RA); // A_T*inv(A*A_T)
double **APinv = i_mZ(RA,RA); // A*A_T*inv(A*A_T)
clrscrn();
printf(" A:");
p_mZ(A,S5,P0,S5,P0,C7);
printf(" A_T:");
p_mZ(ctranspose_mZ(A,A_T),S5,P0,S5,P0,C7);
printf(" AA_T:");
p_mZ(mul_mZ(A,A_T,AA_T),S8,P0,S8,P0,C7);
printf(" inv(AA_T):");
pE_mZ(inv_mZ(AA_T,invAA_T),S5,P4,S5,P4,C7);
printf(" Pinv = A_T*inv(AA_T):");
pE_mZ(mul_mZ(A_T,invAA_T,Pinv),S5,P4,S5,P4,C7);
stop();
clrscrn();
printf(" Copy/Paste into the octave window.\n\n");
p_Octave_mZ(A,"A",P0, P0);
printf(" format short e\n");
printf(" pinv(A)\n\n");
printf(" Pinv = A_T*inv(AA_T):");
pE_mZ(Pinv,S5,P4,S5,P4,C7);
printf(" Ide = A*PinvA ");
mul_mZ(A,Pinv,APinv);
p_mZ(APinv, S10,P4, S8,P4, C3);
f_mZ(A);
f_mZ(A_T);
f_mZ(AA_T);
f_mZ(invAA_T);
f_mZ(Pinv);
f_mZ(APinv);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun();
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Exemple de sortie écran :
A:
-38 -24i -66 -65i -54 -1i
-38 +93i +50 +81i -53 +20i
A_T:
-38 +24i -38 -93i
-66 +65i +50 -81i
-54 +1i -53 -20i
AA_T:
+13518 +0i -6511 +7675i
-6511 -7675i +22363 +0i
inv(AA_T):
+1.1126e-04+0.0000e+00i +3.2392e-05-3.8183e-05i
+3.2392e-05+3.8183e-05i +6.7252e-05+0.0000e+00i
Pinv = A_T*inv(AA_T):
-1.9076e-03-1.7933e-03i -2.8701e-03-4.0261e-03i
-2.6305e-03+6.5170e-03i +3.7066e-03-8.2184e-04i
-6.9610e-03-2.5603e-03i -5.2754e-03+7.4924e-04i
Press return to continue.
Copy/Paste into the octave window.
A=[
-38-24*i,-66-65*i,-54-1*i;
-38+93*i,+50+81*i,-53+20*i]
format short e
pinv(A)
Pinv = A_T*inv(AA_T):
-1.9076e-03-1.7933e-03i -2.8701e-03-4.0261e-03i
-2.6305e-03+6.5170e-03i +3.7066e-03-8.2184e-04i
-6.9610e-03-2.5603e-03i -5.2754e-03+7.4924e-04i
Ide = A*PinvA
+1.0000 +0.0000i -0.0000 +0.0000i
+0.0000 +0.0000i +1.0000 +0.0000i
Press return to continue
Press X return to stop