Aller au contenu

Mathc matrices/c24v

Un livre de Wikilivres.


Application


Installer et compiler ces fichiers dans votre répertoire de travail.


c00a.c
/* ------------------------------------ */
/*  Save as :  c00a.c                   */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
#define   RA R4
#define   CA C4

#define   RX R4
#define   CX C1
/* ------------------------------------ */
/* ------------------------------------ */
int main(void)
{
double a[RA*CA]={
    +3, -4, -2, -1,
    +5, -3, -0, -2,      
    +6, -0, -3, -2,
    +3, -3, -1, -3   
};

double x_B[RX*CX]={
   +1,
   +2, 
   +3, 
   +4 
};

double b[RA*CA]={
    +1, +2, +6, +6,   
    +3, +2, +1, +6,
    +5, +5, +3, +6,
    +5, +5, +2, +4, 
};

double **A   = ca_A_mR(a, i_mR(RA,CA));
double **B   = ca_A_mR(b, i_mR(RA,CA));

double **X_B = ca_A_mR(x_B,  i_mR(RX,CX));

double **invB  =  inv_mR(B, i_mR(RA,CA));
double **invBA =            i_mR(RA,CA);
double **D     =            i_mR(RA,CA);
double **DX_B  =            i_mR(RA,CX);

  clrscrn();
  printf(" In the B basis\n\n"
         " Find the linear application [T(x_B)]_B = D*x_B \n\n"
         " D =  InvB A B   ");
  mul_mR(invB,A,invBA);       
  mul_mR(invBA,B,D);
  p_mR(D,S7,P2,C7); 
  printf(" x_B : ");
  p_mR(X_B,S7,P2,C7);
  printf(" [T(x_B)]_B = D x_B");
  p_mR(mul_mR(D,X_B,DX_B),S8,P2,C7);
  stop();   

  f_mR(A);
  f_mR(X_B);
  
  f_mR(B);
  f_mR(invB);  
  f_mR(invBA);  
  f_mR(D);
  f_mR(DX_B);
    
  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
 Calculons  [T(x)]_B = D* [x]_B en base B.
Exemple de sortie écran :
  In the the B basis

 Find the linear application [T(x_B)]_B = D*x_B 

 D =  InvB A B   
-115.00  -89.00 -118.00 -304.00 
+107.00  +82.20 +112.40 +289.20 
 -48.00  -37.80  -50.60 -126.80 
 +27.50  +22.40  +33.80  +77.40 

 x_B : 
  +1.00 
  +2.00 
  +3.00 
  +4.00 

 [T(x_B)]_B = D x_B
-1863.00 
+1765.40 
 -782.60 
 +483.30 

 Press return to continue.