Exemple de sortie écran :
 A
 +29 -73i -24 +56i -70 -42i -6 +96i 
 +43 +80i +99 -61i +27 -45i -92 +33i 
 +55 -96i +74 +14i -52 -82i -78 +60i 
 +30 +75i +47 -63i +51 -50i -16 -60i 
 Press return to continue. 
 ------------------------------------
 invgj_mZ(A,invA);
-4.5863e-03-9.6864e-03i +3.6497e-03-6.4634e-03i +7.5825e-04+9.9764e-03i 
-2.4895e-03-6.2054e-03i +2.9282e-03-7.6250e-04i +3.9238e-03+2.0891e-03i 
-7.2152e-03+1.2709e-02i -3.6368e-03-6.3375e-03i +5.6012e-03-1.1533e-05i 
+5.1732e-03-4.4277e-03i -3.6327e-03-3.9934e-03i -1.6597e-03+1.6302e-03i 
-5.4849e-03-4.4161e-03i 
+3.1390e-04+1.1668e-03i 
-3.9529e-03+1.6767e-02i 
+8.0146e-03+3.9429e-03i 
 inv_mZ(A,Inv); :
-4.5863e-03-9.6864e-03i +3.6497e-03-6.4634e-03i +7.5825e-04+9.9764e-03i 
-2.4895e-03-6.2054e-03i +2.9282e-03-7.6250e-04i +3.9238e-03+2.0891e-03i 
-7.2152e-03+1.2709e-02i -3.6368e-03-6.3375e-03i +5.6012e-03-1.1533e-05i 
+5.1732e-03-4.4277e-03i -3.6327e-03-3.9934e-03i -1.6597e-03+1.6302e-03i 
-5.4849e-03-4.4161e-03i 
+3.1390e-04+1.1668e-03i 
-3.9529e-03+1.6767e-02i 
+8.0146e-03+3.9429e-03i 
 Press return to continue. 
 ------------------------------------
 Copy/Past into the octave window.
 A=[
+29-73*i,-24+56*i,-70-42*i,-6+96*i;
+43+80*i,+99-61*i,+27-45*i,-92+33*i;
+55-96*i,+74+14*i,-52-82*i,-78+60*i;
+30+75*i,+47-63*i,+51-50*i,-16-60*i]
 inv(A)
-4.5863e-03-9.6864e-03i +3.6497e-03-6.4634e-03i +7.5825e-04+9.9764e-03i 
-2.4895e-03-6.2054e-03i +2.9282e-03-7.6250e-04i +3.9238e-03+2.0891e-03i 
-7.2152e-03+1.2709e-02i -3.6368e-03-6.3375e-03i +5.6012e-03-1.1533e-05i 
+5.1732e-03-4.4277e-03i -3.6327e-03-3.9934e-03i -1.6597e-03+1.6302e-03i 
-5.4849e-03-4.4161e-03i 
+3.1390e-04+1.1668e-03i 
-3.9529e-03+1.6767e-02i 
+8.0146e-03+3.9429e-03i 
 Press return to continue.

Mathc matrices/a35
Application
Installer ce fichier dans votre répertoire de travail.
/* Save as : c00a.c */
/* ------------------------------------ */
void fun(int r,int c)
double **A = r_mR(i_mR(r,c),9.);
double **A_T = i_mR(c,r);
double **S = i_mR(r,C1);
double **U = i_mR(r,r);
double **V = i_mR(c,c);
 clrscrn(); 
 printf(" Copy/Past into the octave windows \n\n\n");
 p_Octave_mR(A,"A",P2);
 printf(" [U, S, V] =svd (A,10)\n\n\n");
 stop();
 clrscrn(); 
 transpose_mR(A,A_T);
 svd_U_Cn_uv_mR(A,U); 
 svd_V_Cn_uv_mR(A,V); 
 svd_value_uv_mR(A_T,S);
 printf(" U :");
 p_mR(U,S5,P5,C10); 
 printf(" S :");
 p_mR(S,S5,P5,C10);
 printf(" V:");
 p_mR(V,S5,P5,C10); 
 f_mR(A);
 f_mR(A_T); 
 f_mR(S); 
 f_mR(U);
 f_mR(V); 
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
int i;
do
 i = rp_I(R3)+R1;
 fun(i,i+C3);
} while(stop_w());
 return 0;
/* ------------------------------------ */
Cet version fonctionne quand il y a plus de colonnes que de lignes.. 
 svd_U_Cn_uv_mR(A,U); 
 svd_V_Cn_uv_mR(A,V);

Exemple de sortie écran :
 Copy/Past into the octave windows 
 A=[
+4.00,+3.00,-8.00,-7.00,-7.00,-7.00;
-5.00,-1.00,-1.00,-1.00,-6.00,-9.00;
-4.00,+9.00,+2.00,-7.00,+1.00,+9.00]
 [U, S, V] =svd (A,10)
 Press return to continue. 
 ------------------------------------ 
 U :
+0.65849 +0.60725 -0.44456 
+0.53320 +0.04043 +0.84502 
-0.53111 +0.79348 +0.29717 
 S :
+18.31706 
+14.43899 
+8.30667 
 V:
-0.11423 +0.06559 +0.86581 +0.12315 +0.41886 -0.08329 
+0.18222 -0.61795 -0.05969 +0.75007 +0.00000 -0.00000 
+0.37470 +0.22934 -0.39797 +0.00000 +0.77954 +0.00000 
+0.07779 +0.68187 -0.02248 +0.61153 -0.37377 -0.40456 
+0.45530 +0.25624 +0.19997 +0.00000 +0.00000 +0.79722 
+0.77459 -0.17499 +0.21895 -0.21970 -0.27778 -0.44026 
 Press return to continue
 Press X to stop

Mathc matrices/a36
Application
Installer ce fichier dans votre répertoire de travail.
/* Save as : c00b.c */
void fun(void)
double a[RA*CA]={
-4.00,+9.00,-1.00,-9.00,-6.00,-3.00,
-4.00,+7.00,-4.00,+9.00,+9.00,+6.00,
-7.00,+2.00,+5.00,+4.00,-2.00,-9.00
double **A = ca_A_mR(a,i_mR(RA,CA));
double **A_T = i_mR(CA,RA);
double **S = i_mR(RA,C1);
double **U = i_mR(RA,RA);
double **V = i_mR(CA,CA);
 clrscrn(); 
 printf(" Copy/Past into the octave windows \n\n\n");
 p_Octave_mR(A,"A",P2);
 printf(" [U, S, V] =svd (A,10)\n\n\n");
 stop();
 clrscrn(); 
 transpose_mR(A,A_T);
 svd_U_Cn_uv_mR(A,U); 
 svd_V_Cn_uv_mR(A,V); 
 svd_value_uv_mR(A_T,S);
 printf(" U :");
 p_mR(U,S5,P5,C10); 
 printf(" S :");
 p_mR(S,S5,P5,C10);
 printf(" V:");
 p_mR(V,S5,P5,C10); 
 stop(); 
 f_mR(A);
 f_mR(A_T); 
 f_mR(S); 
 f_mR(U);
 f_mR(V); 
/* ------------------------------------ */
int main(void)
 fun();
 return 0;
/* ------------------------------------ */
Cet version fonctionne quand il y a plus de colonnes que de lignes.. 
 svd_U_Cn_uv_mR(A,U); 
 svd_V_Cn_uv_mR(A,V);

Exemple de sortie écran :
 Copy/Past into the octave windows 
 A=[
-4.00,+9.00,-1.00,-9.00,-6.00,-3.00;
-4.00,+7.00,-4.00,+9.00,+9.00,+6.00;
-7.00,+2.00,+5.00,+4.00,-2.00,-9.00]
 [U, S, V] =svd (A,10)
 Press return to continue. 
 U :
-0.58163 +0.50652 -0.63651 
+0.77927 +0.57139 -0.25738 
-0.23333 +0.64572 +0.72705 
 S :
+18.31497 
+14.18190 
+12.05967 
 V:
+0.04601 -0.62274 +0.12553 +0.00000 +0.76495 +0.00000 
-0.01345 +0.69454 +0.50384 +0.17733 +0.45480 -0.07301 
-0.20214 +0.03078 -0.43959 +0.85555 -0.00000 -0.00000 
+0.61779 +0.22329 -0.52409 -0.07778 +0.24339 -0.46523 
+0.59896 +0.05725 -0.00402 +0.00000 +0.00000 +0.78731 
+0.46522 -0.27519 +0.51231 +0.48014 -0.38572 -0.39795 
 Press return to continue.

Mathc complexes/a95
trace_mR(); ... ... det_Z();
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00b.c */
void fun(void)
double **A = rcsymmetric_mZ(i_mZ(RA,RA),99);
double **V = i_mZ(RA,RA);
double **cV_T = i_mZ(RA,RA);
double **cV_TA = i_mZ(RA,RA);
double **EigsValue = i_mZ(RA,RA);
 clrscrn();
 printf(" A :");
 p_mZ(A, S10,P2, S9,P2, C3); 
/* V and cV_T*/ 
 eigs_V_uv_mZ(A,V,FACTOR_E);
 ctranspose_mZ(V,cV_T);
/* EigsValue = cV_T * A * V */ 
 mul_mZ(cV_T,A,cV_TA);
 mul_mZ(cV_TA,V,EigsValue);
 printf(" EigsValue = cV_T * A * V");
 p_mZ(EigsValue, S10,P2, S9,P2, C3); 
 printf("\n det_Z(A) \t\t= ");
 p_Z( det_Z(A), S5,P2, S6,P2);
 printf("\n det_Z(EigsValue) \t= ");
 p_Z( det_Z(EigsValue), S5,P2, S6,P2);
 printf("\n");
 f_mZ(A);
 f_mZ(V);
 f_mZ(cV_T);
 f_mZ(EigsValue);
 f_mZ(cV_TA); 
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun();
} while(stop_w());
 return 0;
/* ------------------------------------ */

Attention la valeur des déterminants peux croître très rapidement, par exemple ici le déterminant à neuf chiffres !
 Exemple de sortie écran :
 A :
 +19950.00 +0.00i +2891.00 +5426.00i -25.00 -7474.00i 
 +2891.00 -5426.00i +14628.00 +0.00i -1519.00 -9193.00i 
 -25.00 +7474.00i -1519.00 +9193.00i +23930.00 +0.00i 
 EigsValue = cV_T * A * V
 +34975.28 -0.00i -0.00 -0.00i -0.00 -0.00i 
 -0.00 +0.00i +16531.83 +0.00i +0.00 +0.00i 
 -0.00 +0.00i +0.00 -0.00i +7000.89 -0.00i 
 det_Z(A) = +4047950179048.00 +0.00i 
 det_Z(EigsValue) = +4047950179048.00 -0.00i 
 Press return to continue
 Press X to stop