Mathc matrices/c092b
Installer et compiler ces fichiers dans votre répertoire de travail.
c00a.c |
---|
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void fun(int r)
{
double **A = i_mR(r,r);
double **Inv = i_mR(r,r);
double **B = r_mR(i_mR(r,C6),999.);
double **X = i_mR(r,C6);
double **T = i_mR(r,C6);
do
{
r_mR(A,999.);
printf(".");
}while(!det_R(A));
clrscrn();
printf(" \n");
printf(" Linear systems with common coefficient matrix.\n\n");
printf(" Ax1=b1 \n");
printf(" Ax2=b2 \n");
printf(" ... \n");
printf(" Axn=bn \n\n");
printf(" We can write these equalities in this maner. \n\n");
printf(" A|x1|x2|...|xn| = b1|b2|...|bn| \n\n");
printf(" or simply : \n\n");
printf(" AX = B \n\n");
printf(" where B = b1|b2|...|bn \n\n");
printf(" and X = x1|x2|...|xn \n\n");
getchar();
clrscrn();
printf(" We want to find X such as, \n\n");
printf(" AX = B \n\n");
printf(" If A is a square matrix and, \n\n");
printf(" If A has an inverse matrix, \n\n");
printf(" you can find X by this method\n\n");
printf(" X = inv(A) B \n\n\n");
printf(" To verify the result you can \n\n");
printf(" multiply the matrix A by X. \n\n");
printf(" You must refind B. \n\n");
getchar();
clrscrn();
printf(" A :\n");
p_mR(A,S5,P0,C6);
printf(" b1 b2 ... bn :\n");
p_mR(B,S9,P0,C6);
getchar();
clrscrn();
printf(" inv(A) :\n");
pE_mR(invgj_mR(A,Inv),S1,P4,C6);
printf(" X = inv(A) * B :\n\n");
printf(" x1 x2 ... xn\n");
p_mR(mul_mR(Inv,B,X),S9,P4,C6);
getchar();
clrscrn();
printf(" b1 b2 ... bn :\n");
p_mR(B,S9,P0,C6);
printf(" Ax1 Ax2 ... Axn :\n");
p_mR(mul_mR(A,X,T),S9,P0,C6);
f_mR(T);
f_mR(X);
f_mR(B);
f_mR(Inv);
f_mR(A);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun(rp_I(C2)+C4);
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Exemple de sortie écran :
------------------------------------
Linear systems with common coefficient matrix.
Ax1=b1
Ax2=b2
...
Axn=bn
We can write these equalities in this maner.
A|x1|x2|...|xn| = b1|b2|...|bn|
or simply :
AX = B
where B = b1|b2|...|bn
and X = x1|x2|...|xn
------------------------------------
We want to find X such as,
AX = B
If A is a square matrix and,
If A has an inverse matrix,
you can find X by this method
X = inv(A) B
To verify the result you can
multiply the matrix A by X.
You must refind B.
------------------------------------
A :
-805 -853 +866 -331
-883 +580 -427 +110
+946 -289 -15 -461
+762 -203 -307 +224
b1 b2 ... bn :
+508 +648 -861 +186 -515 -755
-189 -845 +462 -45 -29 +74
+378 +424 -711 -887 +750 +374
+820 +6 +598 -383 -689 +108
------------------------------------
inv(A) :
-5.3070e-04 -8.6702e-04 +3.1954e-05 -2.9268e-04
-1.2603e-03 -1.0402e-03 -3.5923e-04 -2.0908e-03
-6.8572e-04 -2.2335e-03 -1.0293e-03 -2.0348e-03
-2.7663e-04 -1.0544e-03 -1.8449e-03 +7.7635e-04
X = inv(A) * B :
x1 x2 ... xn
-0.3337 +0.4005 -0.1414 +0.0241 +0.5241 +0.3169
-2.2939 -0.1026 -0.3903 +0.9318 +1.8504 +0.5144
-1.9838 +0.9944 -0.9265 +1.6653 +1.0479 -0.2523
-0.0020 -0.0659 +1.5271 +1.3351 -1.7456 -0.4753
------------------------------------
b1 b2 ... bn :
+508 +648 -861 +186 -515 -755
-189 -845 +462 -45 -29 +74
+378 +424 -711 -887 +750 +374
+820 +6 +598 -383 -689 +108
Ax1 Ax2 ... Axn :
+508 +648 -861 +186 -515 -755
-189 -845 +462 -45 -29 +74
+378 +424 -711 -887 +750 +374
+820 +6 +598 -383 -689 +108
Press return to continue
Press X to stop