Mathc complexes/a212
Installer et compiler ce fichier dans votre répertoire de travail.
c00a.c |
---|
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
void fun(void)
{
double **U_T = r_mZ(i_mZ(R1, C3), 9);
double **V_T = r_mZ(i_mZ(R1, C3), 9);
double **UxV_T = i_mZ(R1, C3);
double **UxV = i_mZ(R3, C1);
double **A = m1_mZ(i_mZ(R3, C3));
double **U = transpose_mZ(U_T,i_mZ(R3, C1));
c_r_mZ(U_T, R1, A, R1);
c_r_mZ(U_T, R1, A, R2);
c_r_mZ(V_T, R1, A, R3);
// cofactor(A) -> (u x v)
c_z_mZ(cofactor_Z(A, R1, C1), UxV_T, R1, C1);
c_z_mZ(cofactor_Z(A, R1, C2*C2-C1), UxV_T, R1, C2);
c_z_mZ(cofactor_Z(A, R1, C3*C2-C1), UxV_T, R1, C3);
// c*C2 : a number has two columns
// -C1 : The real part of the number
ctranspose_mZ(UxV_T, UxV);
clrscrn();
printf(" u_t :");
p_mZ(U_T, S4, P0, S3, P0, C6);
printf(" v_t :");
p_mZ(V_T, S4, P0, S3, P0, C6);
printf(" uxv_t :");
p_mZ(UxV_T, S4, P0, S3, P0, C6);
printf(" u.(u x v) == "); p_Z(dot_Z(U, UxV),S3,P0, S3,P0); printf("\n");
printf(" det(A) == "); p_Z(det_Z(A), S3,P0, S3,P0); printf("\n");
f_mZ(U_T);
f_mZ(V_T);
f_mZ(UxV_T);
f_mZ(UxV);
f_mZ(A);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun();
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Les vecteurs en mathématiques sont supposés être des vecteurs colonnes, c'est pour cela que j'utilise _T pour afficher des vecteurs lignes.
Exemple de sortie écran :
u_t :
+7 -4i -4 -8i +1 -4i
v_t :
-7 +9i +3 -9i -1 -8i
uxv_t :
-27+61i +68+89i -115-95i
u.(u x v) == +0 +0i
det(A) == +0 -0i
Press return to continue
Press X return to stop