Mathc complexes/a74
Apparence
Le code de la fonction :
/* ------------------------------------ */
/* ------------------------------------ */
double **c_Ab_subArxr_mZ(
double **Ab,
double **subA
)
{
int r;
int c;
for (r=R1; r< Ab[R_SIZE][C0]; r++)
for (c=C1; c<(((Ab[R_SIZE][C0]-C1)*C2)+C1); c++)
subA[r][c] = Ab[r][c];
return(subA);
}
/* ------------------------------------ */
/* ------------------------------------ */
Copier la sous-matrice de Ab dans subA.
Cette fonction permet par exemple de faire croire à la fonction det_mR(); que la matrice A est carrée. On peut calculer le déterminant de cette sous-matrice. Si il n'est pas nul, le système Ab peut être résolu avec l'algorithme du Total Pivoting.
Installer et compiler ce fichier dans votre répertoire de travail.
c00a.c |
|---|
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
void fun(int r, int c)
{
double **Ab = r_mZ(i_Abr_Ac_bc_mZ(r,c,C1),99.);
double **A = i_mZ(r,c);
double **subA = i_mZ(r,r);
clrscrn();
printf(" Ab :");
p_mZ(Ab,S5,P0,S4,P0,C6);
printf(" A : i_mZ(R,C);");
p_mZ(c_Ab_A_mZ(Ab,A),S5,P0,S4,P0,C6);
printf(" subA : i_mZ(R,R); \t\t c_Ab_subArxr_mZ(Ab,subA); ");
p_mZ(c_Ab_subArxr_mZ(Ab,subA),S5,P0,S4,P0,C6);
f_mZ(A);
f_mZ(Ab);
f_mZ(subA);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun(rp_I(R3)+R1, rp_I(R3)+R3);
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Exemple de sortie écran :
Ab :
+22 -28i +16 +82i +88 -89i -46 -5i -92 -52i -33 +55i
-49 -41i -66 -66i -57 -38i -1 +38i -8 -14i -41 +93i
-84 -62i +96 -63i +85 -61i -50 -35i -16 -79i +91 -3i
A : i_mZ(R,C);
+22 -28i +16 +82i +88 -89i -46 -5i -92 -52i
-49 -41i -66 -66i -57 -38i -1 +38i -8 -14i
-84 -62i +96 -63i +85 -61i -50 -35i -16 -79i
subA : i_mZ(R,R); c_Ab_subArxr_mZ(Ab,subA);
+22 -28i +16 +82i +88 -89i
-49 -41i -66 -66i -57 -38i
-84 -62i +96 -63i +85 -61i
Press return to continue
Press X return to stop