Mathc matrices/a221
Application
En étudiant le circuit dans le sens des aiguilles d'une montre, nous pouvons écrire :
 Au noeud A :
 Entrées = Sortie
 I2 + I3 = I1
 Au noeud B :
 Entrées = Sortie
 I4 = I3 + I5

Au noeud C :
 Entrées = Sortie
 I6 + I5 = I4
 Au noeud D :
 Entrées = Sortie
 I1 = I6 + I2

Soit :
 a) -I1 +I2 +I3 = 0
 -I3 +I4 -I5 = 0
 -I4 +I5 +I6 = 0
 +I1 -I2 -I6 = 0
 Partie gauche du circuit :
 -90 +I1 R1 + I2 R2 = 0
 b) +I1 R1 +I2 R2 = +90
 Partie centrale du circuit :
 -I2 R2 + I3 R3 + I4 R4 + I6 R6 = 0
 c) -I2 R2 +I3 R3 +I4 R4 +I6 R6 = 0
 Partie droite du circuit :
 90 - I5 R5 - I4 R4 = 0
 d) -I4 R4 -I5 R5 = -90
 Partie extérieure du circuit :
 -90 + I1 R1 + I3 R3 + 90 - I5 R5 + I6 R6 = 0
 e) +I1 R1 +I3 R3 -I5 R5 +I6 R6 = 0
 Donc:
 a) -I1 +I2 +I3 = +0
 -I3 +I4 -I5 = +0
 -I4 +I5 +I6 = +0
 +I1 -I2 -I6 = +0
 b) +I1 R1 +I2 R2 = +90
 c) -I2 R2 +I3 R3 +I4 R4 +I6 R6 = +0
 d) -I4 R4 -I5 R5 = -90
 e) +I1 R1 +I3 R3 -I5 R5 +I6 R6 = +0

Avec R1 = 15, R2 = 60, R3 = 15, R4 = 15, R5 = 60, R6 = 15 
 a) -I1 +I2 +I3 = +0
 -I3 +I4 -I5 = +0
 -I4 +I5 +I6 = +0
 +I1 -I2 -I6 = +0
 b) +I1 15 +I2 60 = +90
 c) -I2 60 +I3 15 +I4 15 +I6 15 = +0
 d) -I4 15 -I5 60 = -90
 e) +I1 15 +I3 15 -I5 60 +I6 15 = +0
 Arrangeons le système
 I1 I2 I3 I4 I5 I6
 a) -1 +1 +1 +0 +0 +0 +0
 +0 +0 -1 +1 -1 +0 +0
 +0 +0 +0 -1 +1 +1 +0
 +1 -1 +0 +0 +0 -1 +0
 b) +15 +60 +0 +0 +0 +0 +90
 c) +0 -60 +15 +15 +0 +15 +0
 d) +0 +0 +0 -15 -60 +0 -90
 e) +15 +0 +15 +0 -60 +15 +0
Le code en langage C :
double ab[RA*(CA+Cb)]={
// I1 I2 I3 I4 I5 I6 
 -1, +1, +1, +0, +0, +0, +0, +0, +0,
 +0, +0, -1, +1, -1, +0, +0, +0, +0,
 +0, +0, +0, -1, +1, +1, +0, +0, +0,
 +1, -1, +0, +0, +0, -1, +0, +0, +0,
 +15, +60, +0, +0, +0, +0, +0, +0, +90,
 +0, -60, +15, +15, +0, +15, +0, +0, +0,
 +0, +0, +0, -15, -60, +0, +0, +0, -90,
 +15, +0, +15, +0, -60, +15, +0, +0, +0

La solution est donné par la résolution du système :
 I1 I2 I3 I4 I5 I6 
 +1.00 -0.00 -0.00 +0.00 -0.00 +0.00 -0.00 -0.00 +2.00 
 +0.00 +1.00 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 +1.00 
 +0.00 +0.00 +1.00 +0.00 +0.00 +0.00 +0.00 +0.00 +1.00 
 +0.00 +0.00 +0.00 +1.00 +0.00 +0.00 +0.00 +0.00 +2.00 
 +0.00 +0.00 +0.00 +0.00 +1.00 +0.00 +0.00 +0.00 +1.00 
 +0.00 +0.00 +0.00 +0.00 +0.00 +1.00 +0.00 +0.00 +1.00 
 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 
 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 
 I1 = 2, I2 = 1, I3 = 1, I4 = 2, I5 = 1, I6 = 1,

Mathc matrices/a222
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00a.c */
int main(void)
double ab[RA*(CA+Cb)]={
// I1 I2 I3 I4 I5 I6 
 -1, +1, +1, +0, +0, +0, +0, +0, +0,
 +0, +0, -1, +1, -1, +0, +0, +0, +0,
 +0, +0, +0, -1, +1, +1, +0, +0, +0,
 +1, -1, +0, +0, +0, -1, +0, +0, +0,
 +15, +60, +0, +0, +0, +0, +0, +0, +90,
 +0, -60, +15, +15, +0, +15, +0, +0, +0,
 +0, +0, +0, -15, -60, +0, +0, +0, -90,
 +15, +0, +15, +0, -60, +15, +0, +0, +0
double **Ab = ca_A_mR(ab,i_Abr_Ac_bc_mR(RA,CA,Cb));
double **A = c_Ab_A_mR(Ab,i_mR(RA,CA));
double **b = c_Ab_b_mR(Ab,i_mR(RA,Cb));
 clrscrn();
 printf(" Ab :\n"
 " I1 I2 I3 I4 I5 I6 ");
 p_mR(Ab,S6,P2,C9);
 getchar();
 clrscrn();
 printf(" Copy/Past into the octave window.\n\n");
 p_Octave_mR(Ab,"Ab",P0);
 printf("\n rref(Ab.00000000001)\n\n");
 getchar();
 clrscrn();
 printf(" gj_TP_mR(Ab) :\n\n"
 " I1 I2 I3 I4 I5 I6 ");
 gj_TP_mR(Ab);
 p_mR(Ab,S6,P2,C9);
 stop();
 f_mR(Ab);
 f_mR(b);
 f_mR(A);
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 Ab :
 I1 I2 I3 I4 I5 I6 
 -1.00 +1.00 +1.00 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 
 +0.00 +0.00 -1.00 +1.00 -1.00 +0.00 +0.00 +0.00 +0.00 
 +0.00 +0.00 +0.00 -1.00 +1.00 +1.00 +0.00 +0.00 +0.00 
 +1.00 -1.00 +0.00 +0.00 +0.00 -1.00 +0.00 +0.00 +0.00 
+15.00 +60.00 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 +90.00 
 +0.00 -60.00 +15.00 +15.00 +0.00 +15.00 +0.00 +0.00 +0.00 
 +0.00 +0.00 +0.00 -15.00 -60.00 +0.00 +0.00 +0.00 -90.00 
+15.00 +0.00 +15.00 +0.00 -60.00 +15.00 +0.00 +0.00 +0.00 
 ------------------------------------ 
 Copy/Past into the octave window.
 Ab=[
-1,+1,+1,+0,+0,+0,+0,+0,+0;
+0,+0,-1,+1,-1,+0,+0,+0,+0;
+0,+0,+0,-1,+1,+1,+0,+0,+0;
+1,-1,+0,+0,+0,-1,+0,+0,+0;
+15,+60,+0,+0,+0,+0,+0,+0,+90;
+0,-60,+15,+15,+0,+15,+0,+0,+0;
+0,+0,+0,-15,-60,+0,+0,+0,-90;
+15,+0,+15,+0,-60,+15,+0,+0,+0]
 rref(Ab.00000000001)
 ------------------------------------ 
 gj_TP_mR(Ab) :
 I1 I2 I3 I4 I5 I6 
 +1.00 -0.00 -0.00 +0.00 -0.00 +0.00 -0.00 -0.00 +2.00 
 +0.00 +1.00 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 +1.00 
 +0.00 +0.00 +1.00 +0.00 +0.00 +0.00 +0.00 +0.00 +1.00 
 +0.00 +0.00 +0.00 +1.00 +0.00 +0.00 +0.00 +0.00 +2.00 
 +0.00 +0.00 +0.00 +0.00 +1.00 +0.00 +0.00 +0.00 +1.00 
 +0.00 +0.00 +0.00 +0.00 +0.00 +1.00 +0.00 +0.00 +1.00 
 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 
 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 
 Press return to continue.

Programmation PHP avec Symfony/Stimulus
Introduction.
Stimulus est le framework JavaScript officiel de Symfony. Il est installé avec Webpack :
 composer require symfony/webpack-encore-bundle
Pour utiliser le framework dans Symfony :
 composer require symfony/ux-react
Lancer ensuite codice_1 pour que le code JS exécuté soit toujours identique à celui écris. Cela va lancer le codice_2 en cours de frappe.
Hello World on ready.
Partie Twig.
La première étape consiste à connecter un contrôleur Stimulus depuis un fichier Twig, en lui injectant les variables dont il a besoin. Ex :
Une syntaxe alternative est :
Partie Stimulus.
Dans le fichier assets/controllers/ticket_controller.js, créer une classe héritant de Stimulus :
Rafraichir la page du Twig pour voir le message du code exécuté par Stimulus.
Explication : la fonction "connect" est un mot réservé désignant une fonction prédéfinie qui s'exécute automatiquement quand le contrôleur Stimulus est connecté au de la page. C'est donc un mécanisme similaire à la méthode magique PHP "__contruct". De plus, il existe aussi "disconnect" comparable à la méthode PHP "__destruct".
Ex : codice_3 connectera le fichier assets/controllers/sousDossier/ticket_controller.js.
Hello World on click.
On utilise l'action "click".
Partie Twig.
Une syntaxe alternative est :
Partie Stimulus.
Par rapport au premier exemple, on remplace juste "connect" par une méthode maison.
Rafraichir la page du Twig et cliquer sur le bouton pour voir le message du code exécuté par Stimulus.
Exemple où Stimulus appelle React.
On veut maintenant déclencher l'ouverture d'une fenêtre modale React.js en cliquant sur un bouton de la page du Twig. Il faut donc que le contrôleur Stimulus appelle une classe React.

Mathc complexes/a202
Sommaire
Sous Ubuntu (linux), pour copier une matrice de la fenêtre du terminal dans octave : 
 Les commandes octave utilisées dans ce cours :
 A=[
+2-1*i,-6+2*i,-7-6*i;
-6+6*i,+7+8*i,+9-7*i;
+9-9*i,-2+6*i,+1-6*i];
A_T = A'
 A=[
+2-1*i,-6+2*i,-7-6*i;
-6+6*i,+7+8*i,+9-7*i;
+9-9*i,-2+6*i,+1-6*i];
traceA = trace(A)
 A=[
+2-1*i,-6+2*i,-7-6*i;
-6+6*i,+7+8*i,+9-7*i;
+9-9*i,-2+6*i,+1-6*i];
sA = 100.*A
 A=[
+2-1*i,-6+2*i,-7-6*i;
-6+6*i,+7+8*i,+9-7*i;
+9-9*i,-2+6*i,+1-6*i];
 B=[
-7-1*i,-9-3*i,-5+6*i;
-3+4*i,+8-3*i,-1+6*i;
+4+4*i,-7-1*i,-9-9*i];
AB = A*B
AplusB = A+B
AminsB = A-B
format short e;
 A=[
+2-1*i,-6+2*i,-7-6*i;
-6+6*i,+7+8*i,+9-7*i;
+9-9*i,-2+6*i,+1-6*i];
 B=[
-7-1*i,-9-3*i,-5+6*i;
-3+4*i,+8-3*i,-1+6*i;
+4+4*i,-7-1*i,-9-9*i];
AdivB = A/B
AinvB = A*inv(B)
 A=[
+2-1*i,-6+2*i,-7-6*i;
-6+6*i,+7+8*i,+9-7*i;
+9-9*i,-2+6*i,+1-6*i];
 det(A)

B=[
+2-1*i,-6+2*i,-7-6*i;
-6+6*i,+7+8*i,+9-7*i;
+9-9*i,-2+6*i,+1-6*i];
format short e;
 inv(B)

Ab=[
-194-129*i,-57+609*i,-77-659*i,-446+691*i,+771-502*i;
+797-623*i,-217+92*i,+482+547*i,+533-597*i,+8-690*i;
-616+647*i,+63+226*i,+197+114*i,+972-249*i,+331+564*i;
+402-363*i,-22-497*i,-970-448*i,+777+386*i,-327+510*i];
format short e;
 rref(Ab.00000000001)