Mathc complexes/a77
Apparence
Le code de la fonction :
/* ------------------------------------ */
/* ------------------------------------ */
double **c_zr1A_r2_mZ(
nb_Z z,
int r1,
double **A,
int r2
)
{
nb_Z T;
int c;
for ( c=C1; c<A[C_SIZE][C0]; c+=C2)
{
T = mul_Z(i_Z(A[r1][c],A[r1][c+C1]),z);
A[r2][c] = T.r;
A[r2][c+C1] = T.i;
}
return(A);
}
/* ------------------------------------ */
/* ------------------------------------ */
Copier une ligne z*R1 dans la ligne R2 d'une matrice. En multipliant la ligne R1 par z, cela cache le fait qu'il y ait plusieurs lignes identiques. Cela permet par exemple d'obtenir une matrice singulière , mais aussi cela permet d'obtenir des matrices avec un ou plusieurs vecteurs libres, si on répète l'opération sur plusieurs lignes.
Installer et compiler ce fichier dans votre répertoire de travail.
c00b.c |
|---|
/* ------------------------------------ */
/* Save as : c00b.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
void fun(int r,int c)
{
double **A = r_mZ(i_mZ(r,c),99.);
nb_Z z = i_Z(10,0);
clrscrn();
printf(" A :");
p_mZ(A, S5,P0, S5,P0, C10);
printf(" A : c_zr1A_r2_mZ(10,R1,A,R2);");
p_mZ(c_zr1A_r2_mZ(z,R1,A, R2), S5,P0, S5,P0, C10);
f_mZ(A);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
int i;
do
{
i = rp_I(R3)+R1;
fun(i,i+C1);
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Exemple de sortie écran :
--------------------------------
A :
-85 +40i +42 -30i +27 +86i -74 +41i +49 +21i
+77 +79i -12 -38i -85 -34i -55 -73i +20 -58i
+30 -48i -91 -30i +86 +66i -73 -35i +24 -90i
+31 +74i +97 +77i +47 +60i -74 -75i -96 +3i
A : c_zr1A_r2_mZ(10,R1,A,R2)
-85 +40i +42 -30i +27 +86i -74 +41i +49 +21i
-850 +400i +420 -300i +270 +860i -740 +410i +490 +210i
+30 -48i -91 -30i +86 +66i -73 -35i +24 -90i
+31 +74i +97 +77i +47 +60i -74 -75i -96 +3i
Press return to continue
Press X to stop