Mathc complexes/c05l
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c01l.c */
void fun(int r)
double **U = r_mZ(i_mZ(r,r),9.);
double **Orth = i_mZ(r,r);
double **conj_Orth_T = i_mZ(r,r);
 clrscrn();
 printf(" U :");
 p_mZ(U, S8,P0, S1,P0, C6); 
 orthuv_mZ(U,Orth);
 printf(" Orth :");
 p_mZ(Orth, S8,P4, S1,P4, C6); 
 stop();
 clrscrn();
 printf(" Orth :");
 p_mZ(Orth, S8,P4, S1,P4, C6); 
 printf(" conj_Orth_T :");
 ctranspose_mZ(Orth,conj_Orth_T);
 p_mZ(conj_Orth_T, S8,P4, S1,P4, C6); 
 printf(" conj_Orth_T * Orth :"); 
 mul_mZ(conj_Orth_T,Orth, U);
 p_mZ(U, S8,P0, S1,P0, C6); 
 f_mZ(U);
 f_mZ(Orth);
 f_mZ(conj_Orth_T);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(R2)+R2);
} while(stop_w());
 return 0;
/* ------------------------------------ */
 Nous voyons la mise en place de algorithme de gram schmidt : orthuv_mZ(U,Orth);

Exemple de sortie écran :
 U :
 -5.00+2.00i -3.00-1.00i +8.00+8.00i 
 -9.00-7.00i +4.00+4.00i +6.00+4.00i 
 +8.00-9.00i -1.00-3.00i -5.00+6.00i 
 Orth :
 -5.00+2.00i -3.72-1.28i +2.75+5.22i 
 -9.00-7.00i +3.74+2.38i +2.11+2.08i 
 +8.00-9.00i +0.73-3.16i +4.23-0.32i 
 Press return to continue. 
 Orth :
 -5.00+2.00i -3.72-1.28i +2.75+5.22i 
 -9.00-7.00i +3.74+2.38i +2.11+2.08i 
 +8.00-9.00i +0.73-3.16i +4.23-0.32i 
 conj_Orth_T :
 -5.00-2.00i -9.00+7.00i +8.00+9.00i 
 -3.72+1.28i +3.74-2.38i +0.73+3.16i 
 +2.75-5.22i +2.11-2.08i +4.23+0.32i 
 conj_Orth_T * Orth :
 +304.00+0.00i +0.00-0.00i +0.00+0.00i 
 +0.00+0.00i +45.67+0.00i +0.00+0.00i 
 +0.00+0.00i +0.00-0.00i +61.55+0.00i 
 Press return to continue
 Press X to stop

Mathc complexes/c05m
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c01m.c */
void fun(int r)
double **U = r_mZ(i_mZ(r,r),9.);
double **Orth = i_mZ(r,r);
double **conj_Normal_Orth_T = i_mZ(r,r);
 clrscrn();
 printf(" U :");
 p_mZ(U, S8,P2, S1,P2, C6); 
 orthuv_mZ(U,Orth);
 printf(" Orth :");
 p_mZ(Orth, S8,P2, S1,P2, C6); 
 stop();
 clrscrn();
 printf(" Normal_Orth :");
 Normalizeuv_mZ(Orth);
 p_mZ(Orth, S8,P2, S1,P2, C6); 
 printf(" conj_Normal_Orth_T :");
 ctranspose_mZ(Orth,conj_Normal_Orth_T);
 p_mZ(conj_Normal_Orth_T, S8,P4, S1,P4, C6); 
 printf(" conj_Normal_Orth_T * Normal_Orth :");
 mul_mZ(conj_Normal_Orth_T,Orth, U);
 p_mZ(U, S8,P4, S1,P4, C6); 
 f_mZ(U);
 f_mZ(Orth);
 f_mZ(conj_Normal_Orth_T);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(R2)+R2);
} while(stop_w());
 return 0;
/* ------------------------------------ */
 Nous voyons la mise en place de algorithme de gram schmidt : Normalizeuv_mZ(Orth);

Exemple de sortie écran :
 U :
 -7.00-7.00i +4.00+6.00i +6.00-5.00i -9.00+8.00i 
 +4.00-3.00i -7.00+4.00i -7.00+8.00i +6.00-9.00i 
 +8.00-5.00i -5.00-7.00i +8.00+4.00i +6.00-5.00i 
 +4.00+6.00i -5.00-5.00i +2.00-5.00i +6.00+6.00i 
 Orth :
 -7.00-7.00i +2.01-0.76i +0.26-3.78i +0.93+5.41i 
 +4.00-3.00i -3.48+3.49i -3.92+6.84i +2.08+3.20i 
 +8.00-5.00i +1.70-7.40i +0.53+1.09i +2.67-0.19i 
 +4.00+6.00i -4.55+0.11i +7.36-2.77i +1.74+2.73i 
 Press return to continue. 
 Normal_Orth :
 -0.43-0.43i +0.19-0.07i +0.02-0.32i +0.12+0.68i 
 +0.25-0.18i -0.34+0.34i -0.33+0.58i +0.26+0.41i 
 +0.49-0.31i +0.16-0.71i +0.04+0.09i +0.34-0.02i 
 +0.25+0.37i -0.44+0.01i +0.62-0.23i +0.22+0.35i 
 conj_Normal_Orth_T :
 -0.43+0.43i +0.25+0.18i +0.49+0.31i +0.25-0.37i 
 +0.19+0.07i -0.34-0.34i +0.16+0.71i -0.44-0.01i 
 +0.02+0.32i -0.33-0.58i +0.04-0.09i +0.62+0.23i 
 +0.12-0.68i +0.26-0.41i +0.34+0.02i +0.22-0.35i 
 conj_Normal_Orth_T * Normal_Orth :
 +1.00+0.00i +0.00-0.00i -0.00+0.00i -0.00+0.00i 
 +0.00+0.00i +1.00+0.00i +0.00-0.00i +0.00-0.00i 
 -0.00+0.00i +0.00+0.00i +1.00+0.00i +0.00+0.00i 
 -0.00+0.00i +0.00+0.00i +0.00+0.00i +1.00+0.00i 
 Press return to continue
 Press X to stop

Mathc complexes/c05n
Application 
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c01n.c */
void fun(int r,int rn)
double **A = r_mZ(i_mZ(r+rn,r),99.);
double **Q = i_mZ(r+rn,r);
double **R = i_mZ(r,r);
double **T = i_mZ(r+rn,r);
 clrscrn();
 printf(" A :");
 p_mZ(A, S8,P0, S2,P0, C6); 
 QRuv_mZ(A,Q,R);
 printf(" Q :");
 p_mZ(Q, S10,P4, S9,P4, C6); 
 printf(" R :");
 p_mZ(R, S10,P4, S9,P4, C6); 
 stop();
 clrscrn();
 printf(" A :");
 p_mZ(A, S8,P0, S2,P0,C6); 
 printf(" Q * R :"); 
 mul_mZ(Q,R, T);
 p_mZ(T, S8,P0, S2,P0, C6); 
 f_mZ(A);
 f_mZ(Q);
 f_mZ(R);
 f_mZ(T);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(R1)+R2,rp_I(R2));
} while(stop_w());
 return 0;
/* ------------------------------------ */
 Le travail précédent nous conduit à la factorisation QR : QRuv_mZ(A,Q,R);

Exemple de sortie écran :
 A :
 -51-88i +58-16i -52-28i 
 +16+20i -55+35i +84+33i 
 +41-34i -65+79i -63-61i 
 -30-56i -65-37i -75-28i 
 +99-58i -84+52i -2-78i 
 Q :
 -0.2895 -0.4995i +0.1019 -0.2891i +0.2317 -0.0866i 
 +0.0908 +0.1135i -0.2712 +0.2556i +0.7506 +0.2560i 
 +0.2327 -0.1930i -0.3302 +0.3420i -0.4482 -0.2897i 
 -0.1703 -0.3179i -0.5636 -0.3543i -0.0492 -0.0313i 
 +0.5619 -0.3292i -0.3116 +0.0302i +0.0088 +0.1468i 
 R :
 +176.1789 +0.0000i -81.6840 +36.0713i +83.7501-114.3213i 
 -0.0000 +0.0000i +160.3639 -0.0000i +38.8539 +6.9514i 
 +0.0000 -0.0000i +0.0000 +0.0000i +100.8891 -0.0000i 
 Press return to continue. 
 A :
 -51-88i +58-16i -52-28i 
 +16+20i -55+35i +84+33i 
 +41-34i -65+79i -63-61i 
 -30-56i -65-37i -75-28i 
 +99-58i -84+52i -2-78i 
 Q * R :
 -51-88i +58-16i -52-28i 
 +16+20i -55+35i +84+33i 
 +41-34i -65+79i -63-61i 
 -30-56i -65-37i -75-28i 
 +99-58i -84+52i -2-78i 
 Press return to continue
 Press X to stop

Livre de cuisine/Macarons de Montmorillon

Les macarons de Montmorillon sont des macarons traditionnels de la ville française de Montmorillon.
Préparation.
Après cuisson, le macaron blanc pâle prend forme et est prêt à être consommé après refroidissement à température ambiante.

Mathc matrices/h05c
Bibliothèque
Installer ce fichier dans votre répertoire de travail.
/* Save as : vpoctave.h */
void p_Octave_mR(
double **A,
char name[],
int Pn
 int r;
 int c;
 printf(" %s=[\n",name);
 for(r=R1; r<A[R_SIZE][C0]; r++)
 for (c=C1; c<A[C_SIZE][C0]; c++)
 printf("%+.*f,",Pn,A[r][c]);
 if((r+1)<A[R_SIZE][C0]) printf("\b;\n");
 else printf("\b]\n\n");
/* ------------------------------------ */ 
void pE_Octave_mR(
double **A,
char name[],
int Pn
 int r;
 int c;
 printf(" %s=[\n",name);
 for(r=R1; r<A[R_SIZE][C0]; r++)
 for (c=C1; c<A[C_SIZE][C0]; c++)
 printf("%+.*e,",Pn,A[r][c]);
 if((r+1)<A[R_SIZE][C0]) printf("\b;\n");
 else printf("\b]\n\n");
/* ------------------------------------ */ 
void pAi_Octave_mR(
double **A,
char name[],
int i,
int Pn
 int r;
 int c;
 printf(" %s%d=[\n",name,i);
 for(r=R1; r<A[R_SIZE][C0]; r++)
 for (c=C1; c<A[C_SIZE][C0]; c++)
 printf("%+.*f,",Pn,A[r][c]);
 if((r+1)<A[R_SIZE][C0]) printf("\b;\n");
 else printf("\b]\n\n");
/* ------------------------------------ */
Une matrice pour octave.
La fonction pAi_Octave_mR(); permet d'introduire un index (0,1...) lorsque l'on travaille avec des tableaux de matrices.

Mathc matrices/a06
Bibliothèque
Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes :
Exemple pour tester la bibliothèque :

Mathc matrices/h06a
Bibliothèque
Installer et compiler ces fichiers dans votre répertoire de travail.
Installer ce fichier dans votre répertoire de travail.
/* Save as : v_a.h */
/* Standard file */
/* Usefull */
/* Create */
/* Copy */
/* Print */
/* Basic operation */
/* Determinant */
/* Rand */
/* ------------------------------------ */ 
 Déclaration des fichiers h.

Mathc complexes/a06
Bibliothèque
Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes :
Exemple pour tester la bibliothèque :