Mathc matrices/c24s
Apparence
Installer et compiler ces fichiers dans votre répertoire de travail.
c00a.c |
---|
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
#define RA R3
#define CA C3
#define RX R3
#define CX C1
/* ------------------------------------ */
/* ------------------------------------ */
int main(void)
{
double a[RA*CA]={
+3, -4, -2,
+5, -3, -1,
+4, -3, -1
};
double x_B[RX*CX]={
+1,
+2,
+3
};
double b[RA*CA]={
+1, +2, +6,
+3, +4, +1,
+5, +5, +2
};
double **A = ca_A_mR(a, i_mR(RA,CA));
double **B = ca_A_mR(b, i_mR(RA,CA));
double **D = i_mR(RA,CA) ;
double **X_B = ca_A_mR(x_B, i_mR(RX,CX));
double **X_S = mul_mR(B,X_B, i_mR(RX,CX));
double **T = i_mR(RA,CX) ;
double **invB = inv_mR(B, i_mR(RA,CA));
double **invBA = i_mR(RA,CA) ;
double **DX_B = i_mR(RA,CX) ;
/* D = invB*A*B */
mul_mR(invB,A,invBA);
mul_mR(invBA,B,D);
/* [T(x)]_B = D*x_B */
mul_mR(D,X_B,DX_B);
clrscrn();
printf(" In the Standard basis the linear application is :\n\n");
printf(" T(x_S) = A x_S");
p_mR(mul_mR(A,X_S,T),S8,P2,C7);
printf("with\n\n"
"x_S");
p_mR(X_S,S8,P2,C7);
printf("A");
p_mR(A,S8,P2,C7);
stop();
clrscrn();
printf(" In the B basis the linear application is :\n\n"
" [T(x_B)]_B = D*x_B with D = (invB A B)");
p_mR(DX_B,S8,P2,C7);
printf("with\n\n"
"x_B");
p_mR(X_B,S8,P2,C7);
printf("D = (invB A B)");
p_mR(D,S8,P2,C7);
stop();
clrscrn();
printf(" [T(x_B)]_B = D*x_B with D = (invB A B)");
p_mR(DX_B,S8,P2,C7);
printf(" Remark : x_S = B x_B\n\n"
" [D*x_B]\n"
" B [D*x_B] = B [(InvB A B) x_B] = (A B)*x_B = A (B x_B) = A x_S \n\n"
" B*[D*x_B] = A x_S");
p_mR(mul_mR(B,DX_B,T),S8,P2,C7);
printf(" T(x_S) = A x_S");
p_mR(mul_mR(A,X_S,T),S8,P2,C7);
stop();
f_mR(A);
f_mR(B);
f_mR(D);
f_mR(X_B);
f_mR(X_S);
f_mR(T);
f_mR(invB);
f_mR(invBA);
f_mR(DX_B);
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Vérifions si les résultats sont compatibles
Exemple de sortie écran :
In the Standard basis the linear application is :
T(x_S) = A x_S
-29.00
+52.00
+29.00
with
x_S
+23.00
+14.00
+21.00
A
+3.00 -4.00 -2.00
+5.00 -3.00 -1.00
+4.00 -3.00 -1.00
Press return to continue.
In the B basis the linear application is :
[T(x_B)]_B = D*x_B with D = (invB A B)
-21.62
+32.21
-11.97
with
x_B
+1.00
+2.00
+3.00
D = (invB A B)
+2.45 +1.52 -9.03
-3.48 -2.17 +13.34
-2.41 -2.86 -1.28
Press return to continue.
[T(x_B)]_B = D*x_B with D = (invB A B)
-21.62
+32.21
-11.97
Remark : x_S = B x_B
[D*x_B]
B [D*x_B] = B [(InvB A B) x_B] = (A B)*x_B = A (B x_B) = A x_S
B*[D*x_B] = A x_S
-29.00
+52.00
+29.00
T(x_S) = A x_S
-29.00
+52.00
+29.00
Press return to continue.