Mathc complexes/Fichiers c : mul up
Apparence
Installer et compiler ce fichier dans votre répertoire de travail.
mul_up.c |
|---|
/* ------------------------------------ */
/* Save as : mul_up.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
double **xrupper_mZ(
double **A,
int n
)
{
int r;
int c;
isquare_mZ(A,"r_upper_mZ;","(A)");
for (r=R1; r<A[R_SIZE][C0]; r++)
for (c=C1; c<A[C_SIZE][C0]; c+=C2)
if(c>=(((2*r)-R1))) { A[r][c ] = r_I(n);
A[r][c+C1] = r_I(n);}
return(A);
}
/* ------------------------------------ */
/* ------------------------------------ */
void fun(int rc)
{
double **A = rupper_mZ(i_mZ(rc,rc),9);
double **B = rupper_mZ(i_mZ(rc,rc),9);
double **AB = i_mZ(rc,rc);
clrscrn();
printf(" A : ");
p_mZ(A, S5,P0, S4,P0,C6);
printf(" B : ");
p_mZ(B, S5,P0, S4,P0,C6);
printf(" AB : ");
p_mZ(mul_mZ(A,B,AB), S5,P0, S4,P0,C6);
f_mZ(A);
f_mZ(B);
f_mZ(AB);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
fun(rp_I(RC5));
while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Si nous multiplions deux matrices triangulaires supérieures, nous obtenons une matrice triangulaire supérieure. Si vous utilisez la fonction xrupper_mZ(); en modifiant f(c>=(((R2*r)-R1))) par f(c>(((R2*r)-R1))) vous pourrez mieux comprendre l'algorithme.
Exemple de sortie écran :
A :
+2 +2i -3 -3i +4 -1i
+0 +0i -5 +4i +4 +6i
+0 +0i +0 +0i -3 +8i
B :
+2 -9i -7 -1i +4 -9i
+0 +0i -3 +6i -3 -3i
+0 +0i +0 +0i -3 -3i
AB :
+22 -14i +15 -25i +11 -1i
+0 +0i -9 -42i +33 -27i
+0 +0i +0 +0i +33 -15i
Press return to continue
Press X to stop