« Mathc matrices/c30e » : différence entre les versions
Contenu supprimé Contenu ajouté
modification mineure |
modification mineure |
||
Ligne 10 :
{{Fichier|
<syntaxhighlight lang="c">
/* ------------------------------------ */
/* Save as :
/* ------------------------------------ */
#include "v_a.h"
Ligne 19 :
int main(void)
{
double a[
1, 3, 2, 3, 1,0,0,0,
3, 4, 8, 1, 0,0,0,1,
};
double inva[
-403./9789., +
+3783./9789., -
-1846./9789., -
+845./9789., +182./9789., +1781./9789., -2015./9789.
};
double **A = ca_A_mR(a, i_mR(
double **invA = ca_A_mR(inva,i_mR(
double **T = i_mR(
int i = 1;
/* 1-----------------------------------
+1
+
+
+3 +4 +8 +1 +0 +0 +0 +1
------------------------------------ */
clrscrn();
printf(" (%d) \n\n",i++);
p_mR(A,
printf(" R2 = -
printf(" R3 = -
printf(" R4 = -3*R1 + R4 \n");addR_mR(A, -3,R1,R4);
p_mR(A,S8,P0,C8);
stop();
/*
+1
+0
+0
+0 -5 +2 -8 -3 +0 +0 +1
------------------------------------ */
clrscrn();
printf(" (%d) \n\n",i++);
p_mR(A,
printf(" R3 =
printf("
printf(" R3 = 3*R2 + R3 \n");addR_mR(A, 3.,R2,R3);
printf(" R4 = 5*R2 + R4 \n");addR_mR(A, 5.,R2,R4);
p_mR(A,S8,P0,C8);
stop();
/*
+1
+0
+0
+0 +0 -137 +83 +33 +5 +0 -26
------------------------------------ */
clrscrn();
printf(" (%d) \n\n",i++);
p_mR(A,
printf("
printf("
stop();
/*
+
+0
+0 +0 +0 -19578 -1690 -364 -3562 +4030
------------------------------------ */
clrscrn();
printf(" (%d) \n\n",i++);
p_mR(A,S8,P0,C8);
printf(" R4 = 1./2.*R4 \n");mulR_mR(A,1./2.,R4);
p_mR(A,S8,P0,C8);
stop();
/* 1-----------------------------------
+1 +3 +2 +3 +1 +0 +0 +0
+0 -26 -17 -25 -9 +1 +0 +0
+0 +0 -155 -49 +25 +3 -26 +0
+0 +0 +0 -9789 -845 -182 -1781 +2015
------------------------------------ */
clrscrn();
printf(" (%d) \n\n",i++);
p_mR(A,S8,P0,C8);
printf(" R1 = -9789.*R1 \n"); mulR_mR(A,-9789.,R1);
printf(" R2 = -9789.*R2 \n"); mulR_mR(A,-9789.,R2);
printf(" R3 = -9789.*R3\n\n"); mulR_mR(A,-9789.,R3);
printf(" R1 = -3*R4 + R1 \n");addR_mR(A, -3.,R4,R1);
printf(" R2 = 25*R4 + R2 \n");addR_mR(A, 25.,R4,R2);
printf(" R3 = 49*R4 + R3 \n");addR_mR(A, 49.,R4,R3);
p_mR(A,S8,P0,C8);
stop();
/* 1-----------------------------------
-9789 -29367 -19578 +0 -7254 +546 +5343 -6045
+0 +254514 +166413 +0 +66976 -14339 -44525 +50375
+0 +0 +1517295 +0 -286130 -38285 +167245 +98735
+0 +0 +0 -9789 -845 -182 -1781 +2015
------------------------------------ */
clrscrn();
printf(" (%d) \n\n",i++);
p_mR(A,
printf("
p_mR(A,
stop();
/* 1-----------------------------------
-9789 -29367 -19578 +0 -7254 +546 +5343 -6045
+0 +254514 +166413 +0 +66976 -14339 -44525 +50375
-0 -0 -9789 -0 +1846 +247 -1079 -637
+0 +0 +0 -9789 -845 -182 -1781 +2015
------------------------------------ */
clrscrn();
printf(" (%d) \n\n",i++);
p_mR(A,S8,P0,C8);
printf(" R1 = -2*R3 + R1 ( 2*9789 = 19578)\n");addR_mR(A, -2.,R3,R1);
printf(" R2 = +17*R3 + R2 (17*9789 = 166413)\n");addR_mR(A,+17.,R3,R2);
p_mR(A,S8,P0,C8);
stop();
/*
-9789
+0
-0
+0 +0 +0 -9789 -845 -182 -1781 +2015
------------------------------------ */
clrscrn();
printf(" (%d) \n\n",i++);
p_mR(A,
printf("
p_mR(A,
stop();
/*
-9789
-0
+0 +0 +0 -9789 -845 -182 -1781 +2015
------------------------------------ */
clrscrn();
printf(" (%d) \n\n",i++);
p_mR(A,S8,P0,C8);
printf(" R1 =-3*R2 + R1 (3*-9789 = 29367) \n");addR_mR(A,-3.,R2,R1);
p_mR(A,S8,P0,C8);
stop();
/* 1-----------------------------------
-9789 +0 +0 +0 +403 -1118 +247 -208
-0 -9789 -0 -0 -3783 +390 +2418 -1521
-0 -0 -9789 -0 +1846 +247 -1079 -637
+0 +0 +0 -9789 -845 -182 -1781 +2015
------------------------------------ */
clrscrn();
printf(" A : ");
ca_A_mR(a, A);
p_mR(A,S11,
printf(" A : inv_mR(invA, T); [see : double inva[
inv_mR(invA, T);
p_mR(T, S11, P2, C6);
stop();
f_mR(A);
f_mR(invA);
f_mR(T);
return 0;
Ligne 127 ⟶ 194 :
/* ------------------------------------ */
/* ------------------------------------ */
</syntaxhighlight>
Le but de ces exemples est d'inverser une matrice sans faire apparaître de fraction. La matrice double inva[
Ligne 136 ⟶ 204 :
<syntaxhighlight lang="dos">
------------------------------------
(1)
+1
+
+
+3 +4 +8 +1 +0 +0 +0 +1
R2 = -
R3 = -
R4 = -3*R1 + R4
+1
+0
+0
+0 -5 +2 -8 -3 +0 +0 +1
Press return to continue.
Ligne 157 ⟶ 229 :
+1
+0
+0
+0 -5 +2 -8 -3 +0 +0 +1
R3 =
R3 = 3*R2 + R3
R4 = 5*R2 + R4
+1
+0
+0
+0 +0 -137 +83 +33 +5 +0 -26
Press return to continue.
------------------------------------
(3)
+1 +3 +2 +3 +1 +0 +0 +0
+0 -26 -17 -25 -9 +1 +0 +0
+0 +0 -155 -49 +25 +3 -26 +0
+0 +0 -137 +83 +33 +5 +0 -26
R4 = -155*R4
R4 = 137*R3 + R4
+1 +3 +2 +3 +1 +0 +0 +0
+0 -26 -17 -25 -9 +1 +0 +0
+0 +0 -155 -49 +25 +3 -26 +0
+0 +0 +0 -19578 -1690 -364 -3562 +4030
Press return to continue.
------------------------------------
(
+1 +3 +2 +3 +1 +0 +0 +0
+0 -26 -17 -25 -9 +1 +0 +0
+0 +0 -155 -49 +25 +3 -26 +0
+0 +0 +0 -19578 -1690 -364 -3562 +4030
R4 = 1./2.*R4
+1 +3 +2 +3 +1 +0 +0 +0
+0 -26 -17 -25 -9 +1 +0 +0
+0 +0 -155 -49 +25 +3 -26 +0
+0 +0 +0 -9789 -845 -182 -1781 +2015
Press return to continue.
------------------------------------
(5)
+1
+0
+0
+0 +0 +0 -9789 -845 -182 -1781 +2015
R1 =
R2 =
R3 = -
R1 = -3*
R2 =
R3 = 49*R4 + R3
-9789
+0
+0 +0 +0 -9789 -845 -182 -1781 +2015
Press return to continue.
Ligne 195 ⟶ 310 :
------------------------------------
(
-9789 -29367 -19578 +0 -7254 +546 +5343 -6045
+0 +254514 +166413 +0 +66976 -14339 -44525 +50375
+0 +0 +1517295 +0 -286130 -38285 +167245 +98735
+0 +0 +0 -9789 -845 -182 -1781 +2015
R3 = -1./155.*R3
-9789 -29367 -19578 +0 -7254 +546 +5343 -6045
+0 +254514 +166413 +0 +66976 -14339 -44525 +50375
-0 -0 -9789 -0 +1846 +247 -1079 -637
+0 +0 +0 -9789 -845 -182 -1781 +2015
Press return to continue.
------------------------------------
(7)
-9789
+0
-0
+0 +0 +0 -9789 -845 -182 -1781 +2015
R2 = +17*R3 + R2 (17*9789 = 166413)
-9789
+0
-0
+0 +0 +0 -9789 -845 -182 -1781 +2015
Press return to continue.
Ligne 212 ⟶ 349 :
------------------------------------
(
-9789
+0
-0
+0 +0 +0 -9789 -845 -182 -1781 +2015
-9789
-0
+0 +0 +0 -9789 -845 -182 -1781 +2015
Press return to continue.
------------------------------------
(9)
-9789 -29367 +0 +0 -10946 +52 +7501 -4771
-0 -9789 -0 -0 -3783 +390 +2418 -1521
-0 -0 -9789 -0 +1846 +247 -1079 -637
+0 +0 +0 -9789 -845 -182 -1781 +2015
R1 =-3*R2 + R1 (3*-9789 = 29367)
-9789 +0 +0 +0 +403 -1118 +247 -208
-0 -9789 -0 -0 -3783 +390 +2418 -1521
-0 -0 -9789 -0 +1846 +247 -1079 -637
+0 +0 +0 -9789 -845 -182 -1781 +2015
Press return to continue.
------------------------------------
A :
+3.00000 +4.00000 +8.00000 +1.00000
+1.00000 +0.00000 +0.00000 +0.00000
+0.00000 +1.00000 +0.00000 +0.00000
+0.00000 +0.00000 +1.00000 +0.00000
+0.00000 +0.00000 +0.00000 +1.00000
A : inv_mR(invA, T); [see : double inva[
+1.00 +3.00 +2.00 +3.00
+
+
+3.00 +4.00 +8.00 +1.00
Press return to continue.
|