aboutsummaryrefslogtreecommitdiff
path: root/semestre 2
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <anhgelus@anhgelus.world>2025-01-31 15:39:30 +0100
committerAnhgelus Morhtuuzh <anhgelus@anhgelus.world>2025-01-31 15:39:30 +0100
commitd7c69934248f3fab4988c0d37c11feba25d653b8 (patch)
tree6c396257cb21374e13a26b8f78c05353806220bc /semestre 2
parented631f52ee7af474625e37c6855c7c55903317fc (diff)
Ajout du début du deuxième semestre
Diffstat (limited to 'semestre 2')
-rw-r--r--semestre 2/.gitignore1
-rw-r--r--semestre 2/are/1- Organisation.md35
-rw-r--r--semestre 2/histoire de la philo antique/0- Introduction.md82
-rw-r--r--semestre 2/informatique/.gitignore2
-rw-r--r--semestre 2/informatique/1- De Python à C.md208
-rw-r--r--semestre 2/informatique/2- Code binaire, mémoire, pointeurs.md68
-rw-r--r--semestre 2/informatique/3- Tableaux & pointeurs.md129
-rw-r--r--semestre 2/informatique/array_stack_c.pngbin0 -> 20596 bytes
-rw-r--r--semestre 2/informatique/computer_architecture_detailled.pngbin0 -> 77612 bytes
-rw-r--r--semestre 2/informatique/computer_architecture_simplified.pngbin0 -> 100745 bytes
-rw-r--r--semestre 2/informatique/ram_organisation_schema.pngbin0 -> 135847 bytes
-rw-r--r--semestre 2/informatique/td/1- Fonctions, affichage, define et assert.md26
-rw-r--r--semestre 2/informatique/td/1- exemples/constant.c26
-rw-r--r--semestre 2/informatique/td/1- exemples/plus_grand.c28
-rw-r--r--semestre 2/informatique/td/1- exemples/printf.c14
-rw-r--r--semestre 2/informatique/td/1- exemples/signe_somme.c17
-rw-r--r--semestre 2/informatique/td/2- Boucles, pile et comparaison de réels.md14
-rw-r--r--semestre 2/informatique/td/2- exemples/boucle.c25
-rw-r--r--semestre 2/informatique/td/2- exemples/boucle_complet.c22
-rw-r--r--semestre 2/informatique/td/2- exemples/boucles_complexes.c28
-rw-r--r--semestre 2/informatique/tme/semaine1/03_jeuTest.c18
-rw-r--r--semestre 2/informatique/tme/semaine1/05_discriminant.c28
-rw-r--r--semestre 2/informatique/tme/semaine1/06_signe_produit.c20
-rw-r--r--semestre 2/informatique/tme/semaine1/07_tour_londres.c37
-rw-r--r--semestre 2/informatique/tme/semaine2/09_lib_graphique.c15
-rw-r--r--semestre 2/informatique/tme/semaine2/10_carre.c28
-rw-r--r--semestre 2/informatique/tme/semaine2/11_propagation_epidemie.c41
-rw-r--r--semestre 2/informatique/tme/semaine2/12_droite_points.c34
-rw-r--r--semestre 2/informatique/tme/semaine2/14_tour_londres.c51
-rw-r--r--semestre 2/informatique/used_operators_c.pngbin0 -> 191698 bytes
-rw-r--r--semestre 2/maths/.gitignore8
-rw-r--r--semestre 2/maths/1-calcul matriciel/cours.pdfbin0 -> 257311 bytes
-rw-r--r--semestre 2/maths/1-calcul matriciel/cours.tex296
-rw-r--r--semestre 2/maths/td/01-23.pdfbin0 -> 148673 bytes
-rw-r--r--semestre 2/maths/td/01-23.tex246
-rw-r--r--semestre 2/maths/td/01-30.pdfbin0 -> 146411 bytes
-rw-r--r--semestre 2/maths/td/01-30.tex216
-rw-r--r--semestre 2/maths/template.tex164
-rw-r--r--semestre 2/philosophie des sciences/1- Introduction.md98
-rw-r--r--semestre 2/philosophie générale/0- Introduction.md49
-rw-r--r--semestre 2/philosophie générale/1- Figures de la vérité.md25
41 files changed, 2099 insertions, 0 deletions
diff --git a/semestre 2/.gitignore b/semestre 2/.gitignore
new file mode 100644
index 0000000..0ff8d5e
--- /dev/null
+++ b/semestre 2/.gitignore
@@ -0,0 +1 @@
+edt*
diff --git a/semestre 2/are/1- Organisation.md b/semestre 2/are/1- Organisation.md
new file mode 100644
index 0000000..09c802a
--- /dev/null
+++ b/semestre 2/are/1- Organisation.md
@@ -0,0 +1,35 @@
+---
+tags:
+ - sorbonne
+ - are
+semestre: 2
+---
+Pas d'ECTS
+Envoyer un mail une fois qu'on a constitué les groupes avec le sujet avant le **14/02**
+|> un mail par groupe, tout le monde en copie
+|> groupe de 3 ou 4
+
+Deuxième cours : jeudi 6/03 à 18h
+
+Calendrier sera disponible sur Moodle plus tard
+
+Besoin de rendre les documents avant le **12/04**
+Soutenance début mai
+
+Besoin d'écrire un rapport
+|> besoin d'avoir une unité
+|> respect des normes bibliographiques
+
+Exemples de sujet :
+- psychanalyse est-elle une science ?
+- le temps est-il objectif ?
+- la méthode axiomatique et ses limites
+- qu'est-ce qu'un individu en biologie ?
+- l'esprit fonctionne-t-il de manière algorithmique ?
+- qu'est-ce qu'une pseudo-science ?
+- une machine peut-elle pensée ?
+- qu'est-ce qui distingue les sciences humaines des sciences de la nature ?
+- les théories scientifiques décrivent-elles le monde ?
+- la médecine est-elle une science ? (_Le Nihilisme médical_, Stegenga)
+
+Ne pas faire un sujet complètement éthique \ No newline at end of file
diff --git a/semestre 2/histoire de la philo antique/0- Introduction.md b/semestre 2/histoire de la philo antique/0- Introduction.md
new file mode 100644
index 0000000..610aee7
--- /dev/null
+++ b/semestre 2/histoire de la philo antique/0- Introduction.md
@@ -0,0 +1,82 @@
+---
+tags:
+ - sorbonne
+ - philosophie
+ - histoire-philosophie-antique
+semestre: 2
+---
+Le résumé est super utile dans l'édition Folio
+
+Lire _Le Banquet_, Platon
+## Méthode
+Entre dans l'œuvre de Platon à partir de sa théorie de la connaissance
+|> étude des degrés/ modes de connaissance
+-> comment on atteint le mode de connaissance et donc la réalité la plus haute ?
+-> quels sont les relations entre ces modes ?
+
+Objectifs :
+- comprendre Platon à travers l'examen de ses textes et comment il organise sa pensée
+- lecture des textes abordant les modes de connaissance et degrés de réalité
+- approfondissement du travail de l'explication de textes
+
+Pour travailler l'explication de texte, on peut consulter _Méthodologie philosophique_, PUF (disponible à la BU et sur cairn.info)
+## Platon
+Platon est un philosophe athénien
+|> né fin du Ve avant JC
+|> mort début du IVe avant JC
+|> provient d'une famille très importante
+
+Platon est le petit-fils de Solon et le fils de Périctionè, sœur de Charmide, cousine de Critias, qui ont appartenu au 30 tyrans
+Père de Platon est Ariston, descendant du dernier roi légendaire d'Athènes et petit-fils de Poséidon
+-> est un fils de bonne famille
+
+Très tôt, il ne se concentre pas à la politique, il choisit la philosophie
+|> après la rencontre de Socrate (son maître jusqu'à sa condamnation à mort en -399)
+|> il rédigeait les dialogues philosophiques contenant Socrate, personnage portant l'idée de Platon
+|> a fondé l'Académie (centre d'enseignement et de recherche) attirant les plus grands savants -> est le premier en Occident
+
+Platon n'a écrit que des dialogues
+|> ne reproduit pas Socrate mais fait dire à Socrate ce qui en est sa vérité/son essence (i.e. ce que Platon pense)
+|> Socrate est le guide et parle avec ses contemporains (la majorité a existé !)
+|-> ses personnages représentent tous la pensée du -Ve siècle alors que Platon est le penseur de la génération d'après
+|> Platon recopie les particularités du style des personnages ayant existé
+|> les dialogues sont philosophiques : ils mettent en œuvre l'établissement ou la réfutation d'une thèse à l'aide de questions/réponses
+
+> [!warning] Histoire chez Platon
+> Platon n'est pas un historien : il montre comment les problèmes du -IVe siècle sont le développement naturelle des idées du passé
+
+Chaque dialogue progresse en changeant le niveau philosophique de la discussion
+|> est souvent provoquée par la bonne ou mauvaise volonté
+
+Il y a plusieurs types de dialogues :
+- les dialogues directes : théâtre classique
+- les dialogues mis en récits : un personnage raconte un récit
+
+Ils traitent de beaucoup de choses différentes (50 pages sur comment, quand, avec qui et pourquoi boire de l'alcool)
+
+Trois modes de la réalité :
+- percevoir
+- avoir une opinion
+- savoir
+
+Il ne s'agit pas de la même réalité
+|> le mode véritable est le "savoir"
+|> il y a donc une échelle de valeur dans la réalité puisque les autres modes sont dégradés
+-> faut-il nier toute valeur ou toute pertinence de tout ce qui est senti ou l'objet de l'opinion (ou opiner)
+-> il existe donc des réalités plus réelles que d'autre
+
+*idée : la philosophie platonicienne expliquée en java*
+
+> [!tip] Vocabulaire
+> Est ontologique ce qui est
+
+Les objets de la connaissance ne change pas
+
+L'intellect est un opérateur de la connaissance -> l'intellect *intellige*
+|> tout ce qui est intelligé est valide en tout temps, partout et asubjective (ne dépend pas du sujet) -> universelle
+
+Peut-on parler du changement et comment le changement s'articule-t-il avec ce qui est immuable et intelligible ?
+|> peut-on avoir une connaissance véritable sur son objet ?
+|> connaître nous est-il possible alors que nous changeons ?
+
+Pourquoi Platon défend la possibilité de la connaissance ? \ No newline at end of file
diff --git a/semestre 2/informatique/.gitignore b/semestre 2/informatique/.gitignore
new file mode 100644
index 0000000..7a8f1ae
--- /dev/null
+++ b/semestre 2/informatique/.gitignore
@@ -0,0 +1,2 @@
+0-\ Introduction.md
+*.pdf
diff --git a/semestre 2/informatique/1- De Python à C.md b/semestre 2/informatique/1- De Python à C.md
new file mode 100644
index 0000000..c088a7b
--- /dev/null
+++ b/semestre 2/informatique/1- De Python à C.md
@@ -0,0 +1,208 @@
+---
+tags:
+ - sorbonne
+ - informatique
+semestre: 2
+---
+```c
+#include <stdio.h>
+#include <stdlib.h>
+
+/* premier programme */
+
+int main(){
+ printf("Hello World\n");
+ return 0;
+}
+```
+
+On écrit des programmes comme éditeur de texte
+|> Visual Studio Code
+|> gedit
+|> vi/vim
+|> emacs
+-> permet d'écrire le programme
+
+Au début, on écrit les bibliothèques :
+```c
+#include <stdio.h>
+#include <stdlib.h>
+```
+
+Les commentaires s'écrivent comme ça :
+```c
+/* bonjour,
+je suis un commentaire sur
+plusieurs lignes */
+
+// bonjour, je suis sur une seule ligne
+```
+
+(le deuxième type de commentaire provient du C++, mais souvent ça passe)
+
+Après, on doit toujours écrire une fonction `main` :
+```c
+int main(){
+ /* ... */
+ return 0;
+}
+```
+
+Après avoir écrit notre programme, on doit faire en sorte qu'il soit exécutable
+|> est la compilation
+|> on utilise `gcc` (GNU C Compiler) pour compiler le texte
+
+Pour compiler, on fait :
+```bash
+$ gcc -Wall -o hello_world hello_world.c
+$ ./hello_world
+Hello World
+$
+```
+
+Le `-Wall` veut dire "Warning all", i.e. affiche tous les warnings
+## Fonctions
+Quand on définit une fonction, on a besoin de spécifier :
+- le type de retour (`void` si rien n'est retourné)
+- le nom de la fonction
+- les arguments avec leur type
+- le corps de la fonction (entre accolades)
+
+Les blocks en C sont définis par des accolages (`{ ... }`)
+
+Toutes les lignes d'instructions se finissent par un `;`
+
+On a toujours besoin d'une *unique* fonction `main` par programme.
+
+On peut définir plusieurs fonctions dans un programme, e.g.
+```c
+void hello(){
+ printf("Hello World\n");
+}
+
+int main(){
+ hello();
+ return 0;
+}
+```
+
+> [!warning] Définition d'une fonction
+> On a besoin de définir une fonction avant de l'utiliser !
+## Types que l'on utilise
+
+| Type | Signification | Taille (o) | Plage de valeurs | Exemple |
+| ----- | ---------------- | ---------- | ------------------------------- | ------- |
+| char | Caractère | 1 | -128 à 127 | 'a' |
+| int | Entier | 4 | -2 147 483 648 à 2 147 483 647 | 25 |
+| float | Simple précision | 4 | $\pm$ ... | 3.14 |
+> [!warning] `'a'` et `"a"`
+> Ce sont des types différents !
+> `'a'` est un caractère tandis que `"a"` est une chaîne de caractère !
+
+> [!warning] Booléen en C
+> Il n'existe pas de booléen en C : on utilise donc les `int` pour décrire l'état.
+> `0` est vraie, le reste est faux.
+## Arguments dans une fonction
+On les place dans les parenthèses et il fonctionne comme en Java
+```c
+void hello(int annee){
+ printf("Hello World %d!\n", annee)
+}
+
+int main(){
+ hello(2025);
+ return 0;
+}
+```
+
+La fonction `printf` ici est utilisée pour formaté un string que l'on va ensuite afficher
+|> `"%d"` insert un `int`
+|> `"%f"` insert un `float`
+|> `"%c"` insert un `char`
+|> les valeurs que l'on insert sans mise après le format
+i.e.
+```c
+printf("Hello World%d-%d\n", 2024, 2025);
+// est équivalent à
+printf("Hello World 2024-2025\n");
+```
+## Variables
+On est obligé de déclarer les variables avec leur type, i.e.
+```c
+int p;
+p = 5;
+
+float a=1, b=2.5, c=-2.5;
+```
+
+> [!warning] Porté des variables
+> Les variables sont locales au bloc ! On ne peut pas y accéder autre part !
+> (comme en python)
+
+![[used_operators_c.png]]
+
+> [!warning] Division en C
+> Si on a une division d'un entier par un entier, on obtient un... entier !
+> Pour avoir un `float`, on doit faire quelque chose comme `int / (float) int`
+
+## De Python à C
+### Syntaxe simple
+```python
+def perimetre(largeur: int, longeur: int) -> int:
+ """Precond: longueur >= largeur >= 0
+ Retourne le périmètre du rectangle défini par sa longeur et sa largeur"""
+ return 2*(largeur + longueur)
+```
+devient en C
+```c
+/* hypothèse: longueur >= largeur >= 0
+retourne le périmetre du rectangle défini par sa longueur et sa largeur*/
+int perimetre(int largeur, int longueur){
+ return 2*(largeur + longueur);
+}
+```
+### Structures de contrôle
+Un `if/else` s'écrit :
+```c
+if (cond) {
+ //
+} else {
+ //
+}
+```
+où `cond` est un booléen
+
+Un `while` s'écrit :
+```c
+while (cond) {
+ //
+}
+```
+où `cond` est toujours un booléen
+
+Une nouvelle boucle : la `do while` qui est une boucle `while` où la condition est testée à la fin de la boucle (i.e. elle tourne toujours au moins 1 fois)
+```c
+do {
+ //
+} while (cond);
+```
+où `cond` est encore un booléen
+⚠ il y a un `;` après le while
+
+La boucle `for` est comme celle en java
+```c
+int n = 5;
+int i;
+for (i = 0; i <= n; i++) {
+ printf("%d", i);
+}
+```
+est équivalente à
+```c
+int i;
+i = 0;
+while (i <= n) {
+ printf("%d", i);
+ i++;
+}
+```
diff --git a/semestre 2/informatique/2- Code binaire, mémoire, pointeurs.md b/semestre 2/informatique/2- Code binaire, mémoire, pointeurs.md
new file mode 100644
index 0000000..fa8979c
--- /dev/null
+++ b/semestre 2/informatique/2- Code binaire, mémoire, pointeurs.md
@@ -0,0 +1,68 @@
+---
+tags:
+ - sorbonne
+ - informatique
+semestre: 2
+---
+## Architecture de von Neumann
+Ordinateur est composé d'un processeur, d'une mémoire et de périphériques
+![[computer_architecture_simplified.png]]
+![[computer_architecture_detailled.png]]
+
+Registres = mémoire interne au CPU
+
+Unité de base = octet (8 bits)
+
+**Organisation de la mémoire :**
+![[ram_organisation_schema.png]]
+
+Les tensions électriques pour la valeur binaire 1 = 5 V ou 3.3 V ou 1.65 V
+|> compliqué de descendre plus bas que 1 V à cause de la tension de seuil du silicium
+Les tensions électriques pour la valeur binaire 0 = 0 V
+
+On peut ensuite calculer des choses :
+|> $1010 \land 0011 = 0010$ (bool)
+|> $1010 + 0010 = 1100$ (binaire)
+
+Souvent, on représente la mémoire avec un tableau de 4 colonnes avançant de 4 en 4
+
+Pour représenter les floatants, on les décompose en 3 parties :
+- signe
+- mantisse
+- exposant
+
+Après on peut les approximer à l'aide des sommes d'inverses de 2 ($\frac{1}{2}+\frac{1}{4}+\cdots$)
+Exemple sur $-50.5$ :
+- $2^5+2^4+2^1+2^{-1}$
+- $(2^0+2^{-1}+2^{-4}+2^{-6})\times 2^{5}$
+- la somme est la mantisse et la multiplication est l'exposant
+
+Chaque octet a une adresse unique !
+## Portée des variables
+Globale = disponible partout dans le fichier
+Paramètre = disponible dans toute la fonction
+Locale = disponible dans le bloc
+
+Le shadowing existe en C
+## Pointeurs
+On peut mettre une valeur et une adresse en mémoire
+|> valeur est une valeur classique
+|> une adresse est une zone de la mémoire contenant une valeur
+
+Une variable qui contient une adresse est un pointeur
+```c
+int *n;
+```
+
+ici, `n` contient l'adresse vers un entier
+
+On récupère l'adresse avec l'opérateur `&`
+```c
+int x = 0;
+int *p;
+p = &x;
+printf("%t %d", p, *p);
+```
+
+On peut afficher l'adresse avec `printf("%t", n)`
+On peut afficher le contenu du pointeur avec `*n` \ No newline at end of file
diff --git a/semestre 2/informatique/3- Tableaux & pointeurs.md b/semestre 2/informatique/3- Tableaux & pointeurs.md
new file mode 100644
index 0000000..1f70ab7
--- /dev/null
+++ b/semestre 2/informatique/3- Tableaux & pointeurs.md
@@ -0,0 +1,129 @@
+---
+tags:
+ - sorbonne
+ - informatique
+semestre: 2
+---
+La taille du pointeurs dépend de l'architecture
+|> sur une machine 64 bits, il est sur 8 octets ($8\times 8 = 64$)
+|> donc, `int *` prend plus de place que `int` !
+## Tableaux
+Un tableau est une suite de valeurs en mémoire
+|> les valeurs sont toutes du même type
+
+Il y a deux types de tableaux en C :
+- tableaux statiques sont de tailles fixes localisés dans la pile (stack) (`float[12]`)
+- tableaux dynamiques sont de tailles... dynamiques localisés dans le tas (heap)
+
+On déclare un tableau statique (array) comme ça :
+```c
+type var[size];
+```
+e.g.
+```c
+int tab[12];
+```
+déclare un tableau contenant 12 entiers
+
+> [!warning] Les indices négatifs n'existent pas !
+
+On assigne une valeur avec
+```c
+var[indice] = val;
+```
+e.g.
+```c
+tab[0] = 1;
+```
+assigne `1` dans `tab` à l'indice `0`
+
+On peut déclarer et initialiser un tableau avec les accolades, e.g.
+```c
+float tab[5] = {0, 1.1, 10.9, 5, 5.6};
+```
+
+> [!warning] On ne peut pas assigner plus tard un tableau avec des accolades !
+
+Représentation d'un tableau dans la pile
+![[array_stack_c.png]]
+ici, `i` est un indice dans une boucle (`for` ici)
+Ici c'est `pile (1)` car on écrit c'est la pile à l'étape 1 (écrit en commentaire sur le code donné sur moodle)
+
+Or, les arrays sont des pointeurs !
+On a donc que :
+```c
+int main(){
+ int tab[3] = {0, 1, 2};
+ int *a = tab+2;
+ printf("%d", *a);
+ return 0;
+}
+```
+affiche `2` !
+Ici, `tab+2` est équivalent à prendre l'adresse de la 3e valeur du tableau
+Quand on passe un tableau en paramètre, on obtient en réalité un pointeur
+|> tout ce qu'on réalisera avec ce paramètre affectera donc le tableau d'origine !
+
+> [!important] Longueur d'un array
+> Il n'existe aucun moyen d'avoir la longueur d'un array en C : on doit passer sa taille en paramètre en plus du tableau (sans spécifier sa taille)
+
+> [!danger] Il n'y a pas d'erreur du style "Index Out Of Bound" en C, donc on doit faire attention à comment on manipule les tableaux
+## Macro
+On peut définir des raccourcies appelé macro, avec `#define` :
+```c
+#define N 5
+int main(){
+ printf("%d\n", N);
+ return 0;
+}
+```
+À chaque fois que le programme rencontrera `N`, il remplacera par `5`
+
+> [!danger] On ne met jamais de `;` lors de la définition d'une macro !
+
+Le préprocesseur est la partie du compilateur qui lie les instructions commençant par `#`
+## Compréhension plus avancée de la pile
+Chaque zone dans la pile appartient à une fonction
+|> chaque zone possède ses propres noms : elle n'a pas accès aux autres noms de variables
+
+Pour qu'une fonction puisse accéder aux variables des autres fonctions, on doit utiliser les pointeurs !
+## Fonction `scanf`
+Elle permet de récupérer l'entrée donnée par l'utilisateur au clavier
+|> elle prend 2 paramètres : le⋅s type⋅s et un pointeur
+|> le type est par exemple `"%d"`pour un entier ou `"%c"` pour un caractère
+|> le pointeur est la variable devant recevoir la variable
+|> (elle ajoute automatiquement le `"\n"` après la saisi de l'utilisateur)
+
+```c
+int main(){
+ char c;
+ int i;
+
+ printf("Saisir un caractère\n");
+ scanf("%c", &c);
+ printf("Vous avez saisi %c\n", c);
+
+ printf("Saisir un entier\n");
+ scanf("%d", &i);
+ printf("Vous avez saisi %d\n", i);
+ return 0;
+}
+```
+## Arithmétique des pointeurs
+Soit `ns` un array d'int de taille 42. Soit `a` un pointeur référencé sur `ns`. En C, on a donc :
+```c
+int ns[42];
+int *a = ns;
+```
+On a :
+`&ns[0]` $\equiv$ `a`
+`&ns[1]` $\equiv$ `a+1`
+`&ns[2]` $\equiv$ `a+2`
+`&ns[3]` $\equiv$ `a+3`
+...
+et
+`ns[0]` $\equiv$ `*a`
+`ns[1]` $\equiv$ `*(a+1)`
+`ns[2]` $\equiv$ `*(a+2)`
+`ns[3]` $\equiv$ `*(a+2)`
+...
diff --git a/semestre 2/informatique/array_stack_c.png b/semestre 2/informatique/array_stack_c.png
new file mode 100644
index 0000000..913a1bb
--- /dev/null
+++ b/semestre 2/informatique/array_stack_c.png
Binary files differ
diff --git a/semestre 2/informatique/computer_architecture_detailled.png b/semestre 2/informatique/computer_architecture_detailled.png
new file mode 100644
index 0000000..1765914
--- /dev/null
+++ b/semestre 2/informatique/computer_architecture_detailled.png
Binary files differ
diff --git a/semestre 2/informatique/computer_architecture_simplified.png b/semestre 2/informatique/computer_architecture_simplified.png
new file mode 100644
index 0000000..f4c95bf
--- /dev/null
+++ b/semestre 2/informatique/computer_architecture_simplified.png
Binary files differ
diff --git a/semestre 2/informatique/ram_organisation_schema.png b/semestre 2/informatique/ram_organisation_schema.png
new file mode 100644
index 0000000..8f6015e
--- /dev/null
+++ b/semestre 2/informatique/ram_organisation_schema.png
Binary files differ
diff --git a/semestre 2/informatique/td/1- Fonctions, affichage, define et assert.md b/semestre 2/informatique/td/1- Fonctions, affichage, define et assert.md
new file mode 100644
index 0000000..3cc87f8
--- /dev/null
+++ b/semestre 2/informatique/td/1- Fonctions, affichage, define et assert.md
@@ -0,0 +1,26 @@
+---
+tags:
+ - sorbonne
+ - informatique
+ - td
+semestre: 2
+---
+Pour afficher des valeurs en C, on utilise `printf`:
+
+| Format | Type |
+| ------ | -------------------------------- |
+| `%d` | `int` |
+| `%f` | `float` |
+| `%.xf` | `float` et affiche `x` virgule⋅s |
+| `%c` | `char` |
+| `%s` | une chaîne de caractères |
+
+> [!warning] Booléen en C
+> On n'oublie pas que les booléens n'existent pas en C !
+> Ils sont remplacés par des entiers où 0 est false et tous les autres valeurs est vrai.
+> Donc, `1 == 1` vaut `1` et `1 == 0` vaut `0` !
+
+On peut créer des constantes en C grâce à `#define` :
+```c
+#define ZERO 0
+```
diff --git a/semestre 2/informatique/td/1- exemples/constant.c b/semestre 2/informatique/td/1- exemples/constant.c
new file mode 100644
index 0000000..37864ae
--- /dev/null
+++ b/semestre 2/informatique/td/1- exemples/constant.c
@@ -0,0 +1,26 @@
+#include <stdio.h>
+
+#define TNORMAL 11.4
+#define TMOINS 4.5
+#define TMOINS26S 4.9
+#define TMOINS26WE 7.9
+#define TMATIN 7.1
+
+float prixPlace(int age, int jour, float h){
+ if (age < 14) return TMOINS;
+ if (age < 26 && jour < 6) return TMOINS26S;
+ if (h < 11 && h > 8) return TMATIN;
+ if (age < 26) return TMOINS26WE;
+ return TNORMAL;
+}
+
+int main(){
+ printf("%.2f€ prix pour %d ans le %de jour de la semaine à %.1fh\n", prixPlace(13, 5, 13), 13, 5, 13.0);
+ printf("%.2f€ prix pour %d ans le %de jour de la semaine à %.1fh\n", prixPlace(14, 5, 13), 14, 5, 13.0);
+ printf("%.2f€ prix pour %d ans le %de jour de la semaine à %.1fh\n", prixPlace(14, 6, 13), 14, 6, 13.0);
+ printf("%.2f€ prix pour %d ans le %de jour de la semaine à %.1fh\n", prixPlace(14, 6, 10), 14, 6, 10.0);
+ printf("%.2f€ prix pour %d ans le %de jour de la semaine à %.1fh\n", prixPlace(28, 6, 10), 28, 6, 10.0);
+ printf("%.2f€ prix pour %d ans le %de jour de la semaine à %.1fh\n", prixPlace(28, 6, 15), 28, 6, 15.0);
+ return 0;
+}
+
diff --git a/semestre 2/informatique/td/1- exemples/plus_grand.c b/semestre 2/informatique/td/1- exemples/plus_grand.c
new file mode 100644
index 0000000..97c47a6
--- /dev/null
+++ b/semestre 2/informatique/td/1- exemples/plus_grand.c
@@ -0,0 +1,28 @@
+#include <assert.h>
+
+int plusGrand(int a, int b, int c){
+ int max = a;
+ if (max < b){
+ max = b;
+ }
+ if (max < c) {
+ max = c;
+ }
+ return max;
+}
+
+int plusGrandParmisCinq(int a, int b, int c, int d, int e){
+ return plusGrand(plusGrand(a, b, c), d, e);
+}
+
+int main(){
+ assert(plusGrand(1, 2, 3) == 3);
+ assert(plusGrand(4, 2, 3) == 4);
+ assert(plusGrand(4, 5, 3) == 5);
+ assert(plusGrandParmisCinq(1, 2, 3, 4, 5) == 5);
+ assert(plusGrandParmisCinq(6, 2, 3, 4, 5) == 6);
+ assert(plusGrandParmisCinq(6, 7, 3, 4, 5) == 7);
+ assert(plusGrandParmisCinq(6, 7, 8, 4, 5) == 8);
+ assert(plusGrandParmisCinq(6, 7, 8, 9, 5) == 9);
+ return 0;
+}
diff --git a/semestre 2/informatique/td/1- exemples/printf.c b/semestre 2/informatique/td/1- exemples/printf.c
new file mode 100644
index 0000000..f40921f
--- /dev/null
+++ b/semestre 2/informatique/td/1- exemples/printf.c
@@ -0,0 +1,14 @@
+#include <stdio.h>
+
+float mult(int op1, float op2){
+ return op1 * op2;
+}
+
+int main(){
+ int op1 = 3;
+ float op2 = 2.7;
+
+ printf("%d * %f = %f\n", op1, op2, mult(op1, op2));
+
+ return 0;
+}
diff --git a/semestre 2/informatique/td/1- exemples/signe_somme.c b/semestre 2/informatique/td/1- exemples/signe_somme.c
new file mode 100644
index 0000000..4506089
--- /dev/null
+++ b/semestre 2/informatique/td/1- exemples/signe_somme.c
@@ -0,0 +1,17 @@
+#include <assert.h>
+
+int signeSomme(int a, int b){
+ if (a > -b){
+ return 1;
+ } else if (a == -b){
+ return 0;
+ }
+ return -1;
+}
+
+int main(){
+ assert(signeSomme(2, -1) == 1);
+ assert(signeSomme(-1, 1) == 0);
+ assert(signeSomme(-2, 1) == -1);
+ return 0;
+}
diff --git a/semestre 2/informatique/td/2- Boucles, pile et comparaison de réels.md b/semestre 2/informatique/td/2- Boucles, pile et comparaison de réels.md
new file mode 100644
index 0000000..0c62406
--- /dev/null
+++ b/semestre 2/informatique/td/2- Boucles, pile et comparaison de réels.md
@@ -0,0 +1,14 @@
+---
+tags:
+ - sorbonne
+ - informatique
+ - td
+semestre: 2
+---
+Quand on fait la pile d'un programme, on procède par étape :
+1. on commence le bloc de la première fonction (`main`)
+2. dans le bloc, on enregistre et on affiche les valeurs des variables (e.g. `i`)
+3. quand on rencontre une nouvelle fonction, on crée un nouveau bloc et on retourne à l'étape 2
+4. quand on a fini l'exécution de la fonction, on libère la mémoire dans la pile
+5. on continue l'exécution du bloc
+
diff --git a/semestre 2/informatique/td/2- exemples/boucle.c b/semestre 2/informatique/td/2- exemples/boucle.c
new file mode 100644
index 0000000..b582080
--- /dev/null
+++ b/semestre 2/informatique/td/2- exemples/boucle.c
@@ -0,0 +1,25 @@
+#include <assert.h>
+
+int somme_carres_while(int m, int n){
+ int s = 0, i = m;
+ while (i <= n){
+ s += i*i;
+ i++;
+ }
+ return s;
+}
+
+int somme_carres_for(int m, int n){
+ int s = 0;
+ for (int i = m; i <= n; i++){
+ s += i*i;
+ }
+ return s;
+}
+
+int main(){
+ assert(somme_carres_while(0, 5) == somme_carres_for(0, 5));
+ assert(somme_carres_while(3, 5) == somme_carres_for(3, 5));
+ assert(somme_carres_while(15, 25) == somme_carres_for(15, 25));
+ return 0;
+}
diff --git a/semestre 2/informatique/td/2- exemples/boucle_complet.c b/semestre 2/informatique/td/2- exemples/boucle_complet.c
new file mode 100644
index 0000000..9cae542
--- /dev/null
+++ b/semestre 2/informatique/td/2- exemples/boucle_complet.c
@@ -0,0 +1,22 @@
+#include <stdio.h>
+#define MAX 20
+
+int premier(int n){
+ if (n < 2) return 0;
+ for (int i = 2; i < n;i++){
+ if (n%i == 0) return 0; // est une boucle avec sortie anticipée
+ }
+ return 1;
+}
+
+void afficheNombresPremiers(int max){
+ for (int i = 2; i <= max; i++){
+ if (premier(i)) printf("%d\n", i);
+ }
+}
+
+int main(){
+ printf("Liste des nombres premiers <= %d\n", MAX);
+ afficheNombresPremiers(MAX);
+ return 0;
+}
diff --git a/semestre 2/informatique/td/2- exemples/boucles_complexes.c b/semestre 2/informatique/td/2- exemples/boucles_complexes.c
new file mode 100644
index 0000000..6c388a4
--- /dev/null
+++ b/semestre 2/informatique/td/2- exemples/boucles_complexes.c
@@ -0,0 +1,28 @@
+#include <stdio.h>
+#include <assert.h>
+
+void afficheBilletsPieces(int m){
+ int r = m;
+ int billets = r/5;
+ r = r%5;
+ int pieces2 = r/2;
+ r = r%2;
+ int pieces1 = r;
+ printf("%d€ = %d * 5€ + %d * 2€ + %d * 1€", m, billets, pieces2, pieces1);
+}
+
+void afficheBilletsPiecesMultiple(int m){
+ for (int billets = m/5; billets >= 0; billets--){
+ int av = m - billets*5;
+ for (int p2 = av/2; p2 >= 0; p2--){
+ int av2 = av - p2*2;
+ assert(billets*5+p2*2+av2 == m);
+ printf("%d€ = %d*5€ + %d*2€ + %d*1€\n", m, billets, p2, av2);
+ }
+ }
+}
+
+int main(){
+ afficheBilletsPiecesMultiple(23);
+ return 0;
+}
diff --git a/semestre 2/informatique/tme/semaine1/03_jeuTest.c b/semestre 2/informatique/tme/semaine1/03_jeuTest.c
new file mode 100644
index 0000000..1099c11
--- /dev/null
+++ b/semestre 2/informatique/tme/semaine1/03_jeuTest.c
@@ -0,0 +1,18 @@
+#include <assert.h>
+
+int alternative(int n1, int n2, int n3){
+ int res;
+ if (n1 > 8) res = 3;
+ else if (n3 == 20) res = 2;
+ else if (n2 >= 10 && n3 >= 10) res = 1;
+ else res = 0;
+ return res;
+}
+
+int main(){
+ assert(alternative(-4, 3, 20) == 2); // teste de la branche n3 == 20
+ assert(alternative(9,-2,20) == 3); // teste de la branche n1 > 8
+ assert(alternative(-5, 15, 1098765) == 1); // teste de la branche n2 >= 10 && n3 >= 10
+ assert(alternative(4, 8, 23) == 0); // teste des autres cas
+ return 0;
+}
diff --git a/semestre 2/informatique/tme/semaine1/05_discriminant.c b/semestre 2/informatique/tme/semaine1/05_discriminant.c
new file mode 100644
index 0000000..575f776
--- /dev/null
+++ b/semestre 2/informatique/tme/semaine1/05_discriminant.c
@@ -0,0 +1,28 @@
+#include <math.h>
+#include <stdio.h>
+
+int discriminant(int a, int b, int c){
+ return b*b-4*a*c;
+}
+
+void afficheRacines(int a, int b, int c){
+ int disc = discriminant(a,b,c);
+ if (disc > 0) {
+ float sq = sqrt(disc);
+ printf("Racine 1 : %f\nRacine 2 : %f\n", (-b-sq)/(2*a), (-b+sq)/(2*a));
+ } else if (disc == 0) {
+ printf("Racine double : %f\n", (-b)/(float) (2*a));
+ } else {
+ printf("Pas de racine réelle\n");
+ }
+}
+
+int main(){
+ afficheRacines(1, 1, 1);
+ afficheRacines(1, 1, -1);
+ afficheRacines(-1, 1, -1);
+ afficheRacines(-1, 1, 1);
+ afficheRacines(1, 2, 1);
+ afficheRacines(2, 4, 2);
+ return 0;
+}
diff --git a/semestre 2/informatique/tme/semaine1/06_signe_produit.c b/semestre 2/informatique/tme/semaine1/06_signe_produit.c
new file mode 100644
index 0000000..764f184
--- /dev/null
+++ b/semestre 2/informatique/tme/semaine1/06_signe_produit.c
@@ -0,0 +1,20 @@
+#include <assert.h>
+
+int signeProduit(int a, int b){
+ if (a == 0 || b == 0) return 0;
+ else if (
+ (a < 0 && b > 0) || (a > 0 && b < 0)
+ ) return -1;
+ return 1;
+}
+
+int main(){
+ assert(signeProduit(0, 0) == 0);
+ assert(signeProduit(1, 0) == 0);
+ assert(signeProduit(0, -1) == 0);
+ assert(signeProduit(1, 1) == 1);
+ assert(signeProduit(-1, -1) == 1);
+ assert(signeProduit(1, -1) == -1);
+ assert(signeProduit(-1, 1) == -1);
+ return 0;
+}
diff --git a/semestre 2/informatique/tme/semaine1/07_tour_londres.c b/semestre 2/informatique/tme/semaine1/07_tour_londres.c
new file mode 100644
index 0000000..92f0cff
--- /dev/null
+++ b/semestre 2/informatique/tme/semaine1/07_tour_londres.c
@@ -0,0 +1,37 @@
+#include <assert.h>
+#define ADU 22.7
+#define KID 10.75
+#define FAMILLY 57.8
+#define COMPARE_FLOAT_PRECISION 0.00001
+
+float prixEntree(int adus, int kids){
+ float no_familly = adus * ADU + kids * KID;
+ float with_familly = FAMILLY;
+ int r_adus = adus - 2;
+ int r_kids = kids - 3;
+ if (r_adus > 0){
+ with_familly += r_adus * ADU;
+ }
+ if (r_kids > 0){
+ with_familly += r_kids * KID;
+ }
+ if (no_familly < with_familly) return no_familly;
+ return with_familly;
+}
+
+int compareFloat(float f1, float f2, float eps){
+ /* Prend trois floats (f1, f2 et eps) et renvoie |f1-f2|<eps ; est une comparaison de deux
+ * floats à epsilon près */
+ float diff = f1 - f2;
+ if (diff < 0) diff = - diff;
+ return diff < eps;
+}
+
+int main(){
+ assert(compareFloat(prixEntree(2, 3), FAMILLY, COMPARE_FLOAT_PRECISION));
+ assert(compareFloat(prixEntree(2, 2), FAMILLY, COMPARE_FLOAT_PRECISION));
+ assert(compareFloat(prixEntree(2, 1), 2*ADU + KID, COMPARE_FLOAT_PRECISION));
+ assert(compareFloat(prixEntree(1, 3), ADU + 3*KID, COMPARE_FLOAT_PRECISION));
+ assert(compareFloat(prixEntree(0, 1), KID, COMPARE_FLOAT_PRECISION));
+ return 0;
+}
diff --git a/semestre 2/informatique/tme/semaine2/09_lib_graphique.c b/semestre 2/informatique/tme/semaine2/09_lib_graphique.c
new file mode 100644
index 0000000..d90845e
--- /dev/null
+++ b/semestre 2/informatique/tme/semaine2/09_lib_graphique.c
@@ -0,0 +1,15 @@
+#include <cini.h>
+
+void diagonale(int x){
+ for (int i = 0; i <= x; i++) {
+ CINI_draw_pixel(i, i, "orange");
+ }
+}
+
+int main(){
+ CINI_open_window(400, 300, "hello world");
+ diagonale(200);
+ CINI_loop();
+
+ return 0;
+}
diff --git a/semestre 2/informatique/tme/semaine2/10_carre.c b/semestre 2/informatique/tme/semaine2/10_carre.c
new file mode 100644
index 0000000..45029bb
--- /dev/null
+++ b/semestre 2/informatique/tme/semaine2/10_carre.c
@@ -0,0 +1,28 @@
+#include <cini.h>
+
+void carre(int c, int x, int y){
+ for (int i = 0; i<c;i++){
+ CINI_draw_pixel(x+i, y, "blue");
+ CINI_draw_pixel(x+i, y+c, "green");
+ CINI_draw_pixel(x, y+i, "red");
+ CINI_draw_pixel(x+c, y+i, "black");
+ }
+}
+
+void carres_remontant(int c, int x, int y){
+ int nx = x, ny = y;
+ while (nx >= 0 && ny >= 0){
+ carre(c, nx, ny);
+ nx -= 20;
+ ny -= 20;
+ }
+}
+
+int main() {
+ CINI_open_window(400, 400, "Carre");
+ CINI_fill_window("white");
+ carres_remontant(100, 50, 100);
+ CINI_loop();
+
+ return 0;
+}
diff --git a/semestre 2/informatique/tme/semaine2/11_propagation_epidemie.c b/semestre 2/informatique/tme/semaine2/11_propagation_epidemie.c
new file mode 100644
index 0000000..26b763e
--- /dev/null
+++ b/semestre 2/informatique/tme/semaine2/11_propagation_epidemie.c
@@ -0,0 +1,41 @@
+#include <assert.h>
+#include <stdio.h>
+
+int jours(int infected, int pop, float percentage){
+ int n = 1, c = 0;
+ while (n / (float) pop < percentage/100){
+ n += infected * n;
+ c++;
+ }
+ return c;
+}
+
+float pourcentage(int infected, int pop, int day){
+ int n = 1, c = 0;
+ while (c < day && n <= pop){
+ n += infected*n;
+ c++;
+ }
+ if (n >= pop) return 100;
+ return 100*n/ (float) pop;
+}
+
+int eps_pres(float a, float b, float eps){
+ float v = a - b;
+ if (v < 0) v = -v;
+ return v < eps;
+}
+
+int main(){
+ assert(jours(5, 10000, 100) == 6);
+ assert(jours(5, 10000, 50) == 5);
+ assert(jours(5, 10000, 25) == 5);
+ assert(jours(5, 10000, 10) == 4);
+
+ assert(eps_pres(pourcentage(5, 10000, 2), 0.36, 0.001));
+ assert(eps_pres(pourcentage(5, 10000, 3), 2.16, 0.001));
+ assert(eps_pres(pourcentage(5, 10000, 4), 12.96, 0.001));
+ assert(eps_pres(pourcentage(5, 10000, 5), 77.76, 0.001));
+ assert(eps_pres(pourcentage(5, 10000, 6), 100.00, 0.001));
+ return 0;
+}
diff --git a/semestre 2/informatique/tme/semaine2/12_droite_points.c b/semestre 2/informatique/tme/semaine2/12_droite_points.c
new file mode 100644
index 0000000..a202e24
--- /dev/null
+++ b/semestre 2/informatique/tme/semaine2/12_droite_points.c
@@ -0,0 +1,34 @@
+#include <cini.h>
+#define WIDTH 400
+#define HEIGHT 400
+
+int position(int a, int b, int x, int y){
+ // t(z) = az+b
+ // y(x) = alpha x + beta
+ int straight_line_y = a*x+b;
+ if (straight_line_y > y) return 1;
+ if (straight_line_y < y) return -1;
+ return 0;
+}
+
+void affiche(int a, int b, int width, int height){
+ for (int x = 0; x < width; x++){
+ for (int y = 0; y < height; y++){
+ int pos = position(a, b, x, y);
+ char* color;
+ if (pos == 1) color = "red";
+ else if (pos == -1) color = "blue";
+ else color = "black";
+ CINI_draw_pixel(x, y, color);
+ }
+ }
+}
+
+int main(){
+ CINI_open_window(WIDTH, HEIGHT, "Hello");
+ CINI_fill_window("white");
+ affiche(1, 0, WIDTH, HEIGHT);
+ CINI_loop();
+ return 0;
+}
+
diff --git a/semestre 2/informatique/tme/semaine2/14_tour_londres.c b/semestre 2/informatique/tme/semaine2/14_tour_londres.c
new file mode 100644
index 0000000..1c86e65
--- /dev/null
+++ b/semestre 2/informatique/tme/semaine2/14_tour_londres.c
@@ -0,0 +1,51 @@
+#include <assert.h>
+#define ADU 22.7
+#define KID 10.75
+#define FAMILLY 57.8
+#define MAX_ADU_FAMILLY 2
+#define MAX_KID_FAMILLY 3
+#define COMPARE_FLOAT_PRECISION 0.00001
+
+float prixEntree(int adus, int kids){
+ int max_familly = 0;
+ int r_adus = adus;
+ int r_kids = kids;
+ do {
+ r_adus -= MAX_ADU_FAMILLY;
+ r_kids -= MAX_KID_FAMILLY;
+ max_familly++;
+ } while (r_adus > 0 || r_kids > 0);
+ float min = -1;
+ for (int f = 0; f <= max_familly; f++){
+ int r_adus = adus - MAX_ADU_FAMILLY*f;
+ int r_kids = kids - MAX_KID_FAMILLY*f;
+ float t = f*FAMILLY;
+ if (r_adus > 0) t += r_adus * ADU;
+ if (r_kids > 0) t += r_kids * KID;
+ if (min == -1 || t < min) {
+ min = t;
+ }
+ }
+ return min;
+}
+
+int compareFloat(float f1, float f2, float eps){
+ /* Prend trois floats (f1, f2 et eps) et renvoie |f1-f2|<eps ; est une comparaison de deux
+ * floats à epsilon près */
+ float diff = f1 - f2;
+ if (diff < 0) diff = - diff;
+ return diff < eps;
+}
+
+int main(){
+ assert(compareFloat(prixEntree(2, 3), FAMILLY, COMPARE_FLOAT_PRECISION));
+ assert(compareFloat(prixEntree(2, 2), FAMILLY, COMPARE_FLOAT_PRECISION));
+ assert(compareFloat(prixEntree(2, 1), 2*ADU + KID, COMPARE_FLOAT_PRECISION));
+ assert(compareFloat(prixEntree(6, 3), 4*ADU + FAMILLY, COMPARE_FLOAT_PRECISION));
+ assert(compareFloat(prixEntree(1, 3), 1*ADU + 3*KID, COMPARE_FLOAT_PRECISION));
+ assert(compareFloat(prixEntree(5, 7), 2*FAMILLY + ADU + KID, COMPARE_FLOAT_PRECISION));
+ assert(compareFloat(prixEntree(6, 8), 3*FAMILLY, COMPARE_FLOAT_PRECISION));
+ assert(compareFloat(prixEntree(10, 0), 227, COMPARE_FLOAT_PRECISION));
+ assert(compareFloat(prixEntree(0, 4), 43, COMPARE_FLOAT_PRECISION));
+ return 0;
+}
diff --git a/semestre 2/informatique/used_operators_c.png b/semestre 2/informatique/used_operators_c.png
new file mode 100644
index 0000000..f3dc95b
--- /dev/null
+++ b/semestre 2/informatique/used_operators_c.png
Binary files differ
diff --git a/semestre 2/maths/.gitignore b/semestre 2/maths/.gitignore
new file mode 100644
index 0000000..ac8aa1f
--- /dev/null
+++ b/semestre 2/maths/.gitignore
@@ -0,0 +1,8 @@
+td/info.md
+poly.pdf
+*.aux
+*.fdb_latexmk
+*.log
+*.gz
+*.toc
+*.fls
diff --git a/semestre 2/maths/1-calcul matriciel/cours.pdf b/semestre 2/maths/1-calcul matriciel/cours.pdf
new file mode 100644
index 0000000..69b3332
--- /dev/null
+++ b/semestre 2/maths/1-calcul matriciel/cours.pdf
Binary files differ
diff --git a/semestre 2/maths/1-calcul matriciel/cours.tex b/semestre 2/maths/1-calcul matriciel/cours.tex
new file mode 100644
index 0000000..5274331
--- /dev/null
+++ b/semestre 2/maths/1-calcul matriciel/cours.tex
@@ -0,0 +1,296 @@
+%%=====================================================================================
+%%
+%% Filename: cours.tex
+%%
+%% Description:
+%%
+%% Version: 1.0
+%% Created: 03/06/2024
+%% Revision: none
+%%
+%% Author: YOUR NAME (),
+%% Organization:
+%% Copyright: Copyright (c) 2024, YOUR NAME
+%%
+%% Notes:
+%%
+%%=====================================================================================
+\documentclass[a4paper, titlepage]{article}
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage[french]{babel}
+\usepackage{amsmath, amssymb}
+\usepackage{amsthm}
+\usepackage[svgnames]{xcolor}
+\usepackage{thmtools}
+\usepackage{lipsum}
+\usepackage{framed}
+\usepackage{parskip}
+\usepackage{titlesec}
+%\usepackage[cal=rsfs,calscale=1.03]{mathalpha}
+
+\renewcommand{\familydefault}{\sfdefault}
+
+% figure support
+\usepackage{import}
+\usepackage{xifthen}
+\pdfminorversion=7
+\usepackage{pdfpages}
+\usepackage{transparent}
+\newcommand{\incfig}[1]{%
+ \def\svgwidth{\columnwidth}
+ \import{./figures/}{#1.pdf_tex}
+}
+
+\pdfsuppresswarningpagegroup=1
+
+\colorlet{defn-color}{DarkBlue}
+\colorlet{props-color}{Blue}
+\colorlet{warn-color}{Red}
+\colorlet{exemple-color}{Green}
+\colorlet{corol-color}{Orange}
+\newenvironment{defn-leftbar}{%
+ \def\FrameCommand{{\color{defn-color}\vrule width 3pt} \hspace{10pt}}%
+ \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+\newenvironment{warn-leftbar}{%
+ \def\FrameCommand{{\color{warn-color}\vrule width 3pt} \hspace{10pt}}%
+ \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+\newenvironment{exemple-leftbar}{%
+ \def\FrameCommand{{\color{exemple-color}\vrule width 3pt} \hspace{10pt}}%
+ \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+\newenvironment{props-leftbar}{%
+ \def\FrameCommand{{\color{props-color}\vrule width 3pt} \hspace{10pt}}%
+ \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+\newenvironment{corol-leftbar}{%
+ \def\FrameCommand{{\color{corol-color}\vrule width 3pt} \hspace{10pt}}%
+ \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+
+\def \freespace {1em}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+ notebraces={}{},%
+ headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{defn-color}Définition~\NUMBER\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{defn-leftbar},%
+ postfoothook=\end{defn-leftbar},%
+]{better-defn}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+ notebraces={}{},%
+ headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{warn-color}Attention\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{warn-leftbar},%
+ postfoothook=\end{warn-leftbar},%
+]{better-warn}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+notebraces={}{},%
+headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{exemple-color}Exemple~\NUMBER\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{exemple-leftbar},%
+ postfoothook=\end{exemple-leftbar},%
+]{better-exemple}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+ notebraces={}{},%
+ headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{props-color}Proposition~\NUMBER\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{props-leftbar},%
+ postfoothook=\end{props-leftbar},%
+]{better-props}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+ notebraces={}{},%
+ headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{props-color}Théorème~\NUMBER\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{props-leftbar},%
+ postfoothook=\end{props-leftbar},%
+]{better-thm}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+ notebraces={}{},%
+ headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{corol-color}Corollaire~\NUMBER\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{corol-leftbar},%
+ postfoothook=\end{corol-leftbar},%
+]{better-corol}
+
+\declaretheorem[style=better-defn]{defn}
+\declaretheorem[style=better-warn]{warn}
+\declaretheorem[style=better-exemple]{exemple}
+\declaretheorem[style=better-corol]{corol}
+\declaretheorem[style=better-props, numberwithin=defn]{props}
+\declaretheorem[style=better-thm, sibling=props]{thm}
+\newtheorem*{lemme}{Lemme}%[subsection]
+%\newtheorem{props}{Propriétés}[defn]
+
+\newenvironment{system}%
+{\left\lbrace\begin{align}}%
+{\end{align}\right.}
+
+\newenvironment{AQT}{{\fontfamily{qbk}\selectfont AQT}}
+
+\usepackage{LobsterTwo}
+\titleformat{\section}{\newpage\LobsterTwo \huge\bfseries}{\thesection.}{1em}{}
+\titleformat{\subsection}{\vspace{2em}\LobsterTwo \Large\bfseries}{\thesubsection.}{1em}{}
+\titleformat{\subsubsection}{\vspace{1em}\LobsterTwo \large\bfseries}{\thesubsubsection.}{1em}{}
+
+\newenvironment{lititle}%
+{\vspace{7mm}\LobsterTwo \large}%
+{\\}
+
+\renewenvironment{proof}{$\square$ \footnotesize\textit{Démonstration.}}{\begin{flushright}$\blacksquare$\end{flushright}}
+
+\title{Calcul matriciel}
+\author{William Hergès\thanks{Sorbonne Université - Faculté des Sciences, Faculté des Lettres}}
+
+\begin{document}
+ \maketitle
+ \tableofcontents
+ \newpage
+ \section{Définition}
+ \begin{defn}
+ Une matrice est un l'ensemble de nombre $\{a_{p,q}\in E, p,q\in \mathcal{SN}\}$ où $\mathcal{SN}$ est un intervale de $\mathbb{N}^*$. On note l'ensemble de ces matrices $\mathcal{M}_{p,q}(E)$.
+ \end{defn}
+ \begin{defn}
+ Une matrice carrée est l'ensemble des matrices $\mathcal{M}_{k,k}(\mathbb{K})$ ($k\in\mathbb{N}^*$).
+
+ On utilise l'abus de notation $\mathcal{M}_k(\mathbb{K})$ pour parler des matrices carrées d'ordre $k\in\mathbb{N}^*$.
+ \end{defn}
+ \subsection{Opérations}
+ \begin{defn}[Somme de matrices]
+ Une somme de matrice est la somme des nombres des matrices.
+
+ Si on note $(a_{p,q})$ les nombres de la matrice $A$ et $(b_{p,q})$ les nombres de la matrice $B$, alors
+ $$ A+B = \{a_{p,q}+b_{p,q},p,q\in\mathcal{SN}\} $$
+
+ Alors :
+ $$ \begin{pmatrix} a_{1,1} & \cdots & a_{1,q} \\ \vdots & & \vdots \\ a_{p,1} & \cdots & a_{p,q} \end{pmatrix} + \begin{pmatrix} b_{1,1} & \cdots & b_{1,q} \\ \vdots & & \vdots \\ b_{p,1} & \cdots & b_{p,q} \end{pmatrix} = \begin{pmatrix} a_{1,1} + b_{1,1} & \cdots & a_{1,q} + b_{1,q} \\ \vdots & & \vdots \\ a_{p,1} + b_{p,1} & \cdots & a_{p,q} + b_{p,q} \end{pmatrix} $$
+ \end{defn}
+ \begin{defn}[Produit externe]
+ Soit $A\in\mathcal{M}_{p,q}(\mathbb{K})$ et $t\in\mathbb{K}$.
+
+ On a :
+ $$ t A = (ta_{p,q})_{p,q\in\mathcal{SN}} $$
+ \end{defn}
+ \begin{props}
+ On a :
+ \begin{itemize}
+ \item $s(tA) = t(sA)$
+ \item $t(A+B) = tA+tB$
+ \item $(t+s)A = tA+sA$
+ \end{itemize}
+ pour $t,s\in\mathbb{K}$ et $A,B\in\mathcal{M}_{p,q}(\mathbb{K})$.
+ \end{props}
+ \begin{proof}
+ \AQT
+ \end{proof}
+ \begin{props}
+ L'élément neutre pour l'addition est $\tilde 0$, i.e. l'ensemble $(a_{p,q})_{p,q\in\mathcal{SN}} = 0$.
+ \end{props}
+ \begin{proof}
+ \AQT
+ \end{proof}
+ \begin{defn}[Produit matriciel]
+ Soient $p,q,r\in\mathbb{N}^*$. Soient $A\in\mathcal{M}_{p,r}(\mathbb{K})$ et $B\in\mathcal{M}_{r,q}(\mathbb{K})$.
+
+ Le produit $AB$ est :
+ $$ \forall (i,k)\in[|1,p|]\times[|1,q|],\quad (ab)_{i,k} = \sum_{j=1}^{r} a_{i,j}b_{j,k} $$
+ \end{defn}
+ \begin{warn}
+ On a besoin que le nombre de colonnes de la matrice $A$ soit égal au nombre de lignes de la matrice $B$.
+ \end{warn}
+ C'est une forme de produit scalaire !
+ \section{Matrices spéciales}
+ \begin{defn}
+ Une matrice de $\mathcal{M}_{p}(\mathbb{K})$ est dite diagonale si et seulement si :
+ $$ \forall (i,j)\in[|1,p|]^2,\quad i\neq j \implies a_{i,j} = 0 $$
+ \end{defn}
+ \begin{props}
+ La multiplication matricielle des matrices diagonales est commutative et se fait très simplement.
+ \end{props}
+ \begin{props}
+ L'élément neutre de $M_p(\mathbb{K})$ est la matrice diagonale notée $I_p$ telle que :
+ $$ \forall (i,j)\in[|1,p|]^2,\quad i=j\implies 1 $$
+ \end{props}
+ \begin{defn}
+ On note $A^{-1}$ la matrice inverse de $A$, i.e.
+ $$ A A^{-1} = A^{-1} A = I_p $$
+ \end{defn}
+ \begin{thm}
+ Soit $A\in\mathcal{M}_2(\mathbb{K})$.
+
+ $A^{-1}$ existe si et seulement si :
+ $$ ad-bc = 0 $$
+ où $A = \begin{pmatrix} a&b\\c&d \end{pmatrix}, a,b,c,d\in\mathbb{K}$
+
+ Ainsi,
+ $$ A^{-1} = \frac{1}{ad-bc}\begin{pmatrix} d&-b\\-c&a \end{pmatrix} $$
+ \end{thm}
+ \begin{lititle}
+ Mais qu'est-ce $ad-bc$ ?
+ \end{lititle}
+ Il s'agit d'un déterminant de la matrice $A$. C'est une notion essentielle que l'on retrouve partout en maths.
+
+ \begin{thm}
+ Si $A$ et $B$ sont inversibles, alors $AB$ l'est aussi et :
+ $$ (AB)^{-1} = B^{-1}A^{-1} $$
+ \end{thm}
+ \section{Système linéaire}
+ \begin{thm}
+ On peut remplacer un système linéaire à $x$ inconnu par une matrice $A\in\mathcal{M}_{x}$ contenant les coefficiants, $X\in\mathcal{M}_{x,1}$ contenant les inconnues et $B\in\mathcal{M}_{x,1}$ contenant les résultats. On a alors :
+ $$ AX=B $$
+
+ Si $A$ est inversible, alors il existe une unique solution à ce système linéaire tel que :
+ $$ X=A^{-1}B $$
+ \end{thm}
+ \begin{exemple}
+ Le système
+ \begin{align*}
+ a_{1,1}x_1 &+ a_{1,2}x_2 + \ldots + a_{1,p}x_p &= b_1\\
+ \vdots& &= \vdots \\
+ a_{p,1}x_1 &+ a_{p,2}x_2 + \ldots + a_{p,p}x_p &= b_p
+ \end{align*}
+ est équivalent à
+ $$ \begin{pmatrix} a_{1,1}&a_{1,2}&\ldots&a_{1,p}\\\vdots&&&\vdots\\a_{p,1}&a_{p,2}&\ldots&a_{p,p} \end{pmatrix} \begin{pmatrix} x_1\\\vdots\\x_p \end{pmatrix} = \begin{pmatrix} b_1\\\vdots\\b_p \end{pmatrix} $$
+ \end{exemple}
+ \begin{lititle}
+ Opérations élémentaires
+ \end{lititle}
+ Ce sont les opérations qui ne font perdre aucune information au système. Il y a :
+ \begin{itemize}
+ \item permutation de deux lignes, notée $P_{i_1 \to i_2}$ (échange des lignes $i_1$ et $i_2$)
+ \item dilatation d'une ligne, notée $D_{i,\alpha\in\mathbb{R}^*}$ (dilatation de la ligne $i$ par $\alpha$)
+ \item transvection (somme de deux lignes), notée $T_{i_1,i_2,t\in\mathbb{R}}$ (transvection de la ligne $i_1$ par $i_2$ avec comme facteur $t$)
+ \end{itemize}
+ C'est-à-dire, on peut faire des combinaisons linéaires !
+
+ Faire cette opération, c'est équivalent à multiplier par une matrice carrée inversible.
+
+ Par exemple, pour $P_{2\to 3}$, on a la matrice :
+ $$ \begin{pmatrix} 1&0&0\\0&0&1\\0&1&0 \end{pmatrix} $$
+ ou $D_{2, \alpha\in\mathbb{R}^*}$ est :
+ $$ \begin{pmatrix} 1&0&0\\0&\alpha&0\\0&0&1 \end{pmatrix} $$
+ ou encore $T_{2,3,t}$ est :
+ $$ \begin{pmatrix} 1&0&0\\0&1&t\\0&0&1 \end{pmatrix} $$
+ \begin{thm}
+ Si $r$ est le rang de $A|B$ (voir le pivot de Gauss), si $p$ est le nombre de colonnes de $A$ et $q$ le nombre de lignes de $A$, alors :
+ \begin{itemize}
+ \item si $r=p$, alors pour tout $B$ il existe une solution (existence)
+ \item si $r=q$, alors il existe une unique solution (unicité)
+ \end{itemize}
+ \end{thm}
+\end{document}
diff --git a/semestre 2/maths/td/01-23.pdf b/semestre 2/maths/td/01-23.pdf
new file mode 100644
index 0000000..53ff4f4
--- /dev/null
+++ b/semestre 2/maths/td/01-23.pdf
Binary files differ
diff --git a/semestre 2/maths/td/01-23.tex b/semestre 2/maths/td/01-23.tex
new file mode 100644
index 0000000..222f558
--- /dev/null
+++ b/semestre 2/maths/td/01-23.tex
@@ -0,0 +1,246 @@
+%%=====================================================================================
+%%
+%% Filename: cours.tex
+%%
+%% Description:
+%%
+%% Version: 1.0
+%% Created: 03/06/2024
+%% Revision: none
+%%
+%% Author: YOUR NAME (),
+%% Organization:
+%% Copyright: Copyright (c) 2024, YOUR NAME
+%%
+%% Notes:
+%%
+%%=====================================================================================
+\documentclass[a4paper, titlepage]{article}
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage[french]{babel}
+\usepackage{amsmath, amssymb}
+\usepackage{amsthm}
+\usepackage[svgnames]{xcolor}
+\usepackage{thmtools}
+\usepackage{lipsum}
+\usepackage{framed}
+\usepackage{parskip}
+\usepackage{titlesec}
+
+\renewcommand{\familydefault}{\sfdefault}
+
+% figure support
+\usepackage{import}
+\usepackage{xifthen}
+\pdfminorversion=7
+\usepackage{pdfpages}
+\usepackage{transparent}
+\newcommand{\incfig}[1]{%
+ \def\svgwidth{\columnwidth}
+ \import{./figures/}{#1.pdf_tex}
+}
+
+\pdfsuppresswarningpagegroup=1
+
+\colorlet{defn-color}{DarkBlue}
+\colorlet{props-color}{Blue}
+\colorlet{warn-color}{Red}
+\colorlet{exemple-color}{Green}
+\colorlet{corol-color}{Orange}
+\newenvironment{defn-leftbar}{%
+ \def\FrameCommand{{\color{defn-color}\vrule width 3pt} \hspace{10pt}}%
+ \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+\newenvironment{warn-leftbar}{%
+ \def\FrameCommand{{\color{warn-color}\vrule width 3pt} \hspace{10pt}}%
+ \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+\newenvironment{exemple-leftbar}{%
+ \def\FrameCommand{{\color{exemple-color}\vrule width 3pt} \hspace{10pt}}%
+ \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+\newenvironment{props-leftbar}{%
+ \def\FrameCommand{{\color{props-color}\vrule width 3pt} \hspace{10pt}}%
+ \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+\newenvironment{corol-leftbar}{%
+ \def\FrameCommand{{\color{corol-color}\vrule width 3pt} \hspace{10pt}}%
+ \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+
+\def \freespace {1em}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+ notebraces={}{},%
+ headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{defn-color}Définition~\NUMBER\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{defn-leftbar},%
+ postfoothook=\end{defn-leftbar},%
+]{better-defn}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+ notebraces={}{},%
+ headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{warn-color}Attention\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{warn-leftbar},%
+ postfoothook=\end{warn-leftbar},%
+]{better-warn}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+notebraces={}{},%
+headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{exemple-color}Exemple~\NUMBER\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{exemple-leftbar},%
+ postfoothook=\end{exemple-leftbar},%
+]{better-exemple}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+ notebraces={}{},%
+ headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{props-color}Proposition~\NUMBER\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{props-leftbar},%
+ postfoothook=\end{props-leftbar},%
+]{better-props}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+ notebraces={}{},%
+ headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{props-color}Théorème~\NUMBER\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{props-leftbar},%
+ postfoothook=\end{props-leftbar},%
+]{better-thm}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+ notebraces={}{},%
+ headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{corol-color}Corollaire~\NUMBER\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{corol-leftbar},%
+ postfoothook=\end{corol-leftbar},%
+]{better-corol}
+
+\declaretheorem[style=better-defn]{defn}
+\declaretheorem[style=better-warn]{warn}
+\declaretheorem[style=better-exemple]{exemple}
+\declaretheorem[style=better-corol]{corol}
+\declaretheorem[style=better-props, numberwithin=defn]{props}
+\declaretheorem[style=better-thm, sibling=props]{thm}
+\newtheorem*{lemme}{Lemme}%[subsection]
+%\newtheorem{props}{Propriétés}[defn]
+
+\newenvironment{system}%
+{\left\lbrace\begin{align}}%
+{\end{align}\right.}
+
+\newenvironment{AQT}{{\fontfamily{qbk}\selectfont AQT}}
+
+\usepackage{LobsterTwo}
+\titleformat{\section}{\newpage\LobsterTwo \huge\bfseries}{\thesection.}{1em}{}
+\titleformat{\subsection}{\vspace{2em}\LobsterTwo \Large\bfseries}{\thesubsection.}{1em}{}
+\titleformat{\subsubsection}{\vspace{1em}\LobsterTwo \large\bfseries}{\thesubsubsection.}{1em}{}
+
+\newenvironment{lititle}%
+{\vspace{7mm}\LobsterTwo \large}%
+{\\}
+
+\renewenvironment{proof}{$\square$ \footnotesize\textit{Démonstration.}}{\begin{flushright}$\blacksquare$\end{flushright}}
+
+\title{TD du 23 janvier 2025}
+\author{William Hergès\thanks{Sorbonne Université - Faculté des Sciences, Faculté des Lettres}}
+
+\begin{document}
+ \maketitle
+ \newpage
+ \section*{Exercice 1}
+ Les produits possibles sont $AX$, $BX$, $BA$, $AB$ et $DZ$, i.e.
+ $$ AX = \begin{pmatrix} 1&2\\ 2&1 \end{pmatrix}\begin{pmatrix} 1\\-1 \end{pmatrix} = \begin{pmatrix} -1\\1 \end{pmatrix} $$
+ $$ BX = \begin{pmatrix} -1&1\\0&1 \end{pmatrix}\begin{pmatrix} 1\\-1 \end{pmatrix} = \begin{pmatrix} -2\\-1 \end{pmatrix} $$
+ $$ BA = \begin{pmatrix} -1&1\\0&1 \end{pmatrix}\begin{pmatrix} 1&2\\2&1 \end{pmatrix}= \begin{pmatrix} 1&-1\\2&1 \end{pmatrix} $$
+ $$ AB = \begin{pmatrix} 1&2\\2&1 \end{pmatrix}\begin{pmatrix} -1&1\\0&1 \end{pmatrix} = \begin{pmatrix} -1&3\\-2&3 \end{pmatrix} $$
+ $$ DZ = \begin{pmatrix} 1&2&3\\3&2&1\\2&1&3 \end{pmatrix} \begin{pmatrix} 0\\2\\3 \end{pmatrix} = \begin{pmatrix} 13\\7\\11 \end{pmatrix} $$
+ \section*{Exercice 2}
+ \begin{enumerate}
+ \item On a :
+ $$ AB = \begin{pmatrix} 1&1\\0&1 \end{pmatrix} \begin{pmatrix} 0&1\\-1&0 \end{pmatrix} = \begin{pmatrix} -1&1\\-1&0 \end{pmatrix} $$
+ $$ BA = \begin{pmatrix} 0&1\\-1&0 \end{pmatrix} \begin{pmatrix} 1&1\\0&1 \end{pmatrix}= \begin{pmatrix} 0&1\\-1&-1 \end{pmatrix} $$
+ Donc $AB \neq BA$
+ \item On a :
+ $$ (A + B)^2 = \begin{pmatrix} 1&2\\-1&1 \end{pmatrix} \begin{pmatrix} 1&2\\-1&1 \end{pmatrix} = \begin{pmatrix} -1&3\\-2&-1 \end{pmatrix} $$
+ \item On a :
+ $$ A^2 = \begin{pmatrix} 1&1\\0&1 \end{pmatrix} \begin{pmatrix} 1&1\\0&1 \end{pmatrix} = \begin{pmatrix} 1&2\\0&1 \end{pmatrix} $$
+ $$ B^2 = \begin{pmatrix} 0&1\\-1&0 \end{pmatrix} \begin{pmatrix} 0&1\\-1&0 \end{pmatrix} = \begin{pmatrix} -1&0\\0&-1 \end{pmatrix} $$
+ Après calcul, on obtient que $(A+B)^2 = A^2+AB+BA+B^2 \neq A^2+2AB+B^2$.
+ \item Cherchons l'inverse de $A$ :
+ $$ ad-bc = 1-0 = 1 $$
+ Donc l'inverse existe, i.e.
+ $$ A^{-1} = \begin{pmatrix} 1&-1\\0&1 \end{pmatrix} $$
+ Cherchons maintenant l'inverse de $B$ :
+ $$ ad-bc = 0+1 = 1 $$
+ Donc l'inverse existe, i.e.
+ $$ B^{-1} = \begin{pmatrix} 0&-1\\1&0 \end{pmatrix} $$
+ \end{enumerate}
+ \section*{Exercice 3}
+ $$ A^t = \begin{pmatrix} -5&-1&3\\-4&0&4\\-3&1&5\\-2&2&6 \end{pmatrix} $$
+ puis
+ $$ BA^t = \begin{pmatrix} -1&0&1&2\\ 2&1&0&-1\\ 1&0&-1&2 \end{pmatrix}A^t = \begin{pmatrix} -2&6&14\\-12&-4&4\\-8&2&10 \end{pmatrix} $$
+ \section*{Exercice 4}
+ \begin{enumerate}
+ \item Ce vecteur $v$ peut être représentée par un complexe $z=a+ib$. Or il existe $r,\theta\in\mathbb{R}$ tel que $z=re^{i\theta}$, d'où $r\cos\theta+ri\sin\theta$.
+ \item On a
+ $$ R_{\theta}\cdot v = r(\cos\phi\cos\theta-\sin\phi\sin\theta)+ir(\sin\phi\cos\theta+\cos\theta\sin\theta) $$
+ i.e.
+ $$ R_{\theta}\cdot v = r\cos(\phi+\theta)+ir\sin(\phi+\theta) $$
+ \end{enumerate}
+ \section*{Exercice 5}
+ On a :
+ $$ AT = \begin{pmatrix} 2&4&8\\ 1&2&5 \end{pmatrix} $$
+ $$ BT = \begin{pmatrix} 1&2&3\\-1&-2&-1 \end{pmatrix} $$
+ $$ CT = \begin{pmatrix} 0&0&2\\1&2&1 \end{pmatrix} $$
+ $$ DT = \begin{pmatrix} \frac{\sqrt{3}-1}{2}&\sqrt{3}-1&\frac{3\sqrt{3}-1}{2}\\\frac{1+\sqrt{3}}{2}&1+\sqrt{3}&\frac{3+\sqrt{3}}{2} \end{pmatrix} $$
+ \section*{Exercice 6}
+ \begin{enumerate}
+ \item Soit $P_n: M^n\begin{pmatrix} 0\\1 \end{pmatrix} = \begin{pmatrix} f_n\\f_{n+1} \end{pmatrix}$ avec $n\in\mathbb{N}^*$. Montrons que $P_n$ est vraie pour tout $n$.
+
+ \fbox{Initialisation} On a $M^1\begin{pmatrix} 0\\1 \end{pmatrix} = \begin{pmatrix} 1\\1 \end{pmatrix} = \begin{pmatrix} f_{1}\\f_{2} \end{pmatrix}$. Donc $P_1$ est vraie.
+
+ \fbox{Hérédité} Posons $n\in\mathbb{N}^*$ tel que $P_n$ soit vraie. On a :
+ $$ M^n\begin{pmatrix} 0\\1 \end{pmatrix} = \begin{pmatrix} f_{n}\\f_{n+1} \end{pmatrix} $$
+ Donc,
+ $$ M^{n+1}\begin{pmatrix} 0\\1 \end{pmatrix} = M\begin{pmatrix} f_n\\f_{n+1} \end{pmatrix} $$
+ Or,
+ $$ M\begin{pmatrix} f_n\\f_{n+1} \end{pmatrix} = \begin{pmatrix} f_{n+1}\\f_n+f_{n+1} \end{pmatrix} $$
+ i.e.,
+ $$ M^{n+1}\begin{pmatrix} 0\\1 \end{pmatrix} = \begin{pmatrix} f_{n+1}\\f_n+f_{n+1} \end{pmatrix} $$
+ Alors,
+ $$ M^{n+1}\begin{pmatrix} 0\\1 \end{pmatrix} = \begin{pmatrix} f_{n+1}\\f_{n+2} \end{pmatrix} $$
+ Ainsi, $P_{n+1}$ est vraie
+
+ \fbox{Conclusion} $P_n$ est vraie pour tout $n\in\mathbb{N}^*$.
+
+ \item Montrons que pour tout $n\in\mathbb{N}^*$, on a que
+ $$ P_n:\quad M^n = \begin{pmatrix} f_{n-1}&f_n\\f_n&f_{n+1} \end{pmatrix} $$
+ est vraie.
+
+ \fbox{Initialisation} On a $M^1 = \begin{pmatrix} 0&1\\1&1 \end{pmatrix} = \begin{pmatrix} f_0&f_1\\f_1&f_2 \end{pmatrix} $. Donc $P_1$ est vraie.
+
+ \fbox{Hérédité} Fixons $n$ dans $\mathbb{N}^*$ tel que $P_n$ soit vraie. On a :
+ $$ M^n = \begin{pmatrix} f_{n-1}&f_n\\f_n&f_{n+1} \end{pmatrix} $$
+ Donc,
+ $$ M^nM = \begin{pmatrix} f_{n-1}&f_n\\f_n&f_{n+1} \end{pmatrix} M $$
+ i.e.,
+ $$ M^{n+1} = \begin{pmatrix} f_{n}&f_{n+1}\\f_{n+1}&f_n+f_{n+1} \end{pmatrix} $$
+ Or,
+ $$ M^{n+1} = \begin{pmatrix} f_{n}&f_{n+1}\\f_{n+1}&f_{n+2} \end{pmatrix} $$
+ Ainsi, $P_{n+1}$ est vraie.
+
+ \fbox{Conclusion} $P_n$ est vraie pour tout $n\in\mathbb{N}^*$.
+ \end{enumerate}
+\end{document}
diff --git a/semestre 2/maths/td/01-30.pdf b/semestre 2/maths/td/01-30.pdf
new file mode 100644
index 0000000..197f6d3
--- /dev/null
+++ b/semestre 2/maths/td/01-30.pdf
Binary files differ
diff --git a/semestre 2/maths/td/01-30.tex b/semestre 2/maths/td/01-30.tex
new file mode 100644
index 0000000..ba4cb39
--- /dev/null
+++ b/semestre 2/maths/td/01-30.tex
@@ -0,0 +1,216 @@
+%%=====================================================================================
+%%
+%% Filename: cours.tex
+%%
+%% Description:
+%%
+%% Version: 1.0
+%% Created: 03/06/2024
+%% Revision: none
+%%
+%% Author: YOUR NAME (),
+%% Organization:
+%% Copyright: Copyright (c) 2024, YOUR NAME
+%%
+%% Notes:
+%%
+%%=====================================================================================
+\documentclass[a4paper, titlepage]{article}
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage[french]{babel}
+\usepackage{amsmath, amssymb}
+\usepackage{amsthm}
+\usepackage[svgnames]{xcolor}
+\usepackage{thmtools}
+\usepackage{lipsum}
+\usepackage{framed}
+\usepackage{parskip}
+\usepackage{titlesec}
+
+\renewcommand{\familydefault}{\sfdefault}
+
+% figure support
+\usepackage{import}
+\usepackage{xifthen}
+\pdfminorversion=7
+\usepackage{pdfpages}
+\usepackage{transparent}
+\newcommand{\incfig}[1]{%
+ \def\svgwidth{\columnwidth}
+ \import{./figures/}{#1.pdf_tex}
+}
+
+\pdfsuppresswarningpagegroup=1
+
+\colorlet{defn-color}{DarkBlue}
+\colorlet{props-color}{Blue}
+\colorlet{warn-color}{Red}
+\colorlet{exemple-color}{Green}
+\colorlet{corol-color}{Orange}
+\newenvironment{defn-leftbar}{%
+ \def\FrameCommand{{\color{defn-color}\vrule width 3pt} \hspace{10pt}}%
+ \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+\newenvironment{warn-leftbar}{%
+ \def\FrameCommand{{\color{warn-color}\vrule width 3pt} \hspace{10pt}}%
+ \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+\newenvironment{exemple-leftbar}{%
+ \def\FrameCommand{{\color{exemple-color}\vrule width 3pt} \hspace{10pt}}%
+ \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+\newenvironment{props-leftbar}{%
+ \def\FrameCommand{{\color{props-color}\vrule width 3pt} \hspace{10pt}}%
+ \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+\newenvironment{corol-leftbar}{%
+ \def\FrameCommand{{\color{corol-color}\vrule width 3pt} \hspace{10pt}}%
+ \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+
+\def \freespace {1em}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+ notebraces={}{},%
+ headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{defn-color}Définition~\NUMBER\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{defn-leftbar},%
+ postfoothook=\end{defn-leftbar},%
+]{better-defn}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+ notebraces={}{},%
+ headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{warn-color}Attention\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{warn-leftbar},%
+ postfoothook=\end{warn-leftbar},%
+]{better-warn}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+notebraces={}{},%
+headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{exemple-color}Exemple~\NUMBER\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{exemple-leftbar},%
+ postfoothook=\end{exemple-leftbar},%
+]{better-exemple}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+ notebraces={}{},%
+ headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{props-color}Proposition~\NUMBER\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{props-leftbar},%
+ postfoothook=\end{props-leftbar},%
+]{better-props}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+ notebraces={}{},%
+ headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{props-color}Théorème~\NUMBER\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{props-leftbar},%
+ postfoothook=\end{props-leftbar},%
+]{better-thm}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+ notebraces={}{},%
+ headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{corol-color}Corollaire~\NUMBER\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{corol-leftbar},%
+ postfoothook=\end{corol-leftbar},%
+]{better-corol}
+
+\declaretheorem[style=better-defn]{defn}
+\declaretheorem[style=better-warn]{warn}
+\declaretheorem[style=better-exemple]{exemple}
+\declaretheorem[style=better-corol]{corol}
+\declaretheorem[style=better-props, numberwithin=defn]{props}
+\declaretheorem[style=better-thm, sibling=props]{thm}
+\newtheorem*{lemme}{Lemme}%[subsection]
+%\newtheorem{props}{Propriétés}[defn]
+
+\newenvironment{system}%
+{\left\lbrace\begin{align}}%
+{\end{align}\right.}
+
+\newenvironment{AQT}{{\fontfamily{qbk}\selectfont AQT}}
+
+\usepackage{LobsterTwo}
+\titleformat{\section}{\newpage\LobsterTwo \huge\bfseries}{\thesection.}{1em}{}
+\titleformat{\subsection}{\vspace{2em}\LobsterTwo \Large\bfseries}{\thesubsection.}{1em}{}
+\titleformat{\subsubsection}{\vspace{1em}\LobsterTwo \large\bfseries}{\thesubsubsection.}{1em}{}
+
+\newenvironment{lititle}%
+{\vspace{7mm}\LobsterTwo \large}%
+{\\}
+
+\renewenvironment{proof}{$\square$ \footnotesize\textit{Démonstration.}}{\begin{flushright}$\blacksquare$\end{flushright}}
+
+\title{TD du 30 janvier}
+\author{William Hergès\thanks{Sorbonne Université - Faculté des Sciences, Faculté des Lettres}}
+
+\begin{document}
+ \maketitle
+ \tableofcontents
+ \newpage
+ \section*{Exercice 1}
+ \begin{enumerate}
+ \item On a :
+ $$ \begin{pmatrix} 1&1\\2&-3 \end{pmatrix} \begin{pmatrix} x\\y \end{pmatrix} = \begin{pmatrix} 0\\0 \end{pmatrix} $$
+ $$ \begin{pmatrix} 0&-2&-3\\ -2&3&0\\3&0&2 \end{pmatrix} \begin{pmatrix} x\\y\\z \end{pmatrix} = \begin{pmatrix} 1\\2\\3 \end{pmatrix} $$
+ $$ \begin{pmatrix} 1&1&1&0\\1&1&0&1\\0&0&1&t \end{pmatrix} \begin{pmatrix} x\\y\\z\\t \end{pmatrix} = \begin{pmatrix} 0\\-1\\1 \end{pmatrix} $$
+ \item On fait l'opération inverse (flemme de le faire).
+ \end{enumerate}
+ \section*{Exercice 2}
+ \begin{enumerate}
+ \item $y=\frac{3}{2}$ et $x=\frac{1}{5}$
+ \item $\begin{pmatrix} -1&1&|~1\\ 1&1&|~2 \end{pmatrix}$
+ \item En faisant $l_1+l_2$, on obtient $2y=3$, ce qui nous donne les mêmes $x$ et $y$
+ \item Son rang est $2$.
+ \end{enumerate}
+ \section*{Exercice 3}
+ Refaire ces transformations chez soi. $S_1$ n'a pas de solution (car on a une ligne $0\neq 0$). $S_2$ possède une infinité de solutions. $S_3$ possède une infinité de solutions.
+
+ On a que la quatrième ligne est la somme des deux premières, on peut donc la supprimer en écrivant $0=0$.
+ $$ \begin{pmatrix} 1&-1&1&1&|~3\\ 5&2&-1&-3&|~5\\ -3&-4&3&2&|~1\\ 0&0&0&0&|~0 \end{pmatrix} \iff \begin{pmatrix} 1&-1&1&1&|~3\\ 0&7&-6&-8&|~-10\\ 0&-7&6&5&|~10\\ 0&0&0&0&|~0 \end{pmatrix} $$
+ $$ \iff\begin{pmatrix} 1&-1&1&1&|~3\\ 0&7&-6&-8&|~-10\\ 0&0&0&-3&|~0\\ 0&0&0&0&|~0 \end{pmatrix}$$
+
+ L'ensemble solution de $S_3$ est donc $\left\{ \left( \frac{11-z}{7},\frac{6z-10}{7}, z, 0 \right), z\in\mathbb{R} \right\} $
+
+ Technique de la matrice échelonnée réduite pour trouver les inconnues :
+ \begin{enumerate}
+ \item on fait en sorte que tous les pivots soient égaux à $1$ ;
+ \item on refait des combinaisons linéaires pour que tous les coefficiants (à part les pivots) soient nuls (c'est plus simple de commencer par le dernier pivot).
+ \end{enumerate}
+ Il n'est pas possible de faire en sorte que tous les coefficiants soient nuls si le rang de la matrice n'est pas assez élevée. Dans ce cas, on a que les coefficiants nuls doivent forcément être ceux dans les colonnes des pivots.
+ \section*{Exercice 5}
+ \begin{enumerate}
+ \item $\begin{pmatrix} -1&-2&3&1&|~b_1\\1&1&2&2&|~b_2\\3&4&1&3&|~b_3 \end{pmatrix} $
+ \item On a que $L_1 = 2L_2-L_3$, donc $b_1=2b_2-b_3$ si le système admet au moins une solution.
+ \item On a donc que $\begin{pmatrix} 1&1&2&2&|~b_2\\3&4&1&3&|~b_3\\0&0&0&0&|~~0 \end{pmatrix}\iff \begin{pmatrix} 1&1&2&2&|~b_2\\0&1&-5&-3&|~b_3-3b_2\\0&0&0&0&|~~0 \end{pmatrix} $. Donc, $x_3$ et $x_4$ sont libres.
+ $$x_2 = b_3-3b_2+5x_3+3x_4$$
+ et
+ $$ x_1 = b_3+4b_2-7x_3-6x_4 $$
+ $$ S = \left\{ (b_4+4b_2-7x_3-6x_4,b_3-3b_2+5x_3+3x_4,x_3,x_4), (x_3,x_4)\in\mathbb{R}^2 \right\} $$
+ \item $\mathrm{rg}(S) = 2$
+ \end{enumerate}
+ \section*{Exercice 8}
+ Si $A^{-1}$ existe, alors il existe $v_1,v_2$ et $v_3$ tel que $Av_1 = \begin{pmatrix} 1\\0\\0 \end{pmatrix}$, $Av_2 = \begin{pmatrix} 0\\1\\0 \end{pmatrix}$ et $Av_3 = \begin{pmatrix} 0\\0\\1 \end{pmatrix}$.
+
+ Résolvons $\begin{pmatrix} 1&1&1&|~b_1\\2&1&1&|~b_2\\1&2&1&|~b_3 \end{pmatrix}$. On a donc :
+ $$ \begin{pmatrix} 1&1&1&|~b_1\\2&1&1&|~b_2\\1&2&1&|~b_3 \end{pmatrix} = \begin{pmatrix} 1&1&1&|~b_1\\0&-1&-1&|~b_2-2b_1\\0&1&0&|~b_3-b_1 \end{pmatrix} = \begin{pmatrix} 1&1&1&|~b_1\\0&0&-1&|~b_2-3b_1+b_3\\0&1&0&|~b_3-b_1 \end{pmatrix} $$
+ Donc, $y=b_3-b_1$, $z=-b_2+3b_1-b_3$ et $x=-b_2-b_1$.
+ Ainsi,
+ $$ v_1= \begin{pmatrix} -1\\-1\\3 \end{pmatrix}\quad v_2= \begin{pmatrix} -1\\0\\-1 \end{pmatrix} \quad v_3 = \begin{pmatrix} 0\\1\\-1 \end{pmatrix} $$
+ D'où $$ A^{-1} = \begin{pmatrix} -1&-1&0\\-1&0&1\\3&-1&-1 \end{pmatrix} $$
+ \section*{Exercice 11}
+ Le système associé à ce problème est :
+ $$ \begin{pmatrix} 3&4&5&|~66\\7&4&3&|~74\\8&8&9&|136 \end{pmatrix} $$
+\end{document}
diff --git a/semestre 2/maths/template.tex b/semestre 2/maths/template.tex
new file mode 100644
index 0000000..23404b4
--- /dev/null
+++ b/semestre 2/maths/template.tex
@@ -0,0 +1,164 @@
+%%=====================================================================================
+%%
+%% Filename: cours.tex
+%%
+%% Description:
+%%
+%% Version: 1.0
+%% Created: 03/06/2024
+%% Revision: none
+%%
+%% Author: YOUR NAME (),
+%% Organization:
+%% Copyright: Copyright (c) 2024, YOUR NAME
+%%
+%% Notes:
+%%
+%%=====================================================================================
+\documentclass[a4paper, titlepage]{article}
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage[french]{babel}
+\usepackage{amsmath, amssymb}
+\usepackage{amsthm}
+\usepackage[svgnames]{xcolor}
+\usepackage{thmtools}
+\usepackage{lipsum}
+\usepackage{framed}
+\usepackage{parskip}
+\usepackage{titlesec}
+
+\renewcommand{\familydefault}{\sfdefault}
+
+% figure support
+\usepackage{import}
+\usepackage{xifthen}
+\pdfminorversion=7
+\usepackage{pdfpages}
+\usepackage{transparent}
+\newcommand{\incfig}[1]{%
+ \def\svgwidth{\columnwidth}
+ \import{./figures/}{#1.pdf_tex}
+}
+
+\pdfsuppresswarningpagegroup=1
+
+\colorlet{defn-color}{DarkBlue}
+\colorlet{props-color}{Blue}
+\colorlet{warn-color}{Red}
+\colorlet{exemple-color}{Green}
+\colorlet{corol-color}{Orange}
+\newenvironment{defn-leftbar}{%
+ \def\FrameCommand{{\color{defn-color}\vrule width 3pt} \hspace{10pt}}%
+ \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+\newenvironment{warn-leftbar}{%
+ \def\FrameCommand{{\color{warn-color}\vrule width 3pt} \hspace{10pt}}%
+ \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+\newenvironment{exemple-leftbar}{%
+ \def\FrameCommand{{\color{exemple-color}\vrule width 3pt} \hspace{10pt}}%
+ \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+\newenvironment{props-leftbar}{%
+ \def\FrameCommand{{\color{props-color}\vrule width 3pt} \hspace{10pt}}%
+ \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+\newenvironment{corol-leftbar}{%
+ \def\FrameCommand{{\color{corol-color}\vrule width 3pt} \hspace{10pt}}%
+ \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+
+\def \freespace {1em}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+ notebraces={}{},%
+ headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{defn-color}Définition~\NUMBER\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{defn-leftbar},%
+ postfoothook=\end{defn-leftbar},%
+]{better-defn}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+ notebraces={}{},%
+ headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{warn-color}Attention\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{warn-leftbar},%
+ postfoothook=\end{warn-leftbar},%
+]{better-warn}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+notebraces={}{},%
+headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{exemple-color}Exemple~\NUMBER\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{exemple-leftbar},%
+ postfoothook=\end{exemple-leftbar},%
+]{better-exemple}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+ notebraces={}{},%
+ headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{props-color}Proposition~\NUMBER\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{props-leftbar},%
+ postfoothook=\end{props-leftbar},%
+]{better-props}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+ notebraces={}{},%
+ headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{props-color}Théorème~\NUMBER\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{props-leftbar},%
+ postfoothook=\end{props-leftbar},%
+]{better-thm}
+\declaretheoremstyle[headfont=\sffamily\bfseries,%
+ notefont=\sffamily\bfseries,%
+ notebraces={}{},%
+ headpunct=,%
+ bodyfont=\sffamily,%
+ headformat=\color{corol-color}Corollaire~\NUMBER\hfill\NOTE\smallskip\linebreak,%
+ preheadhook=\vspace{\freespace}\begin{corol-leftbar},%
+ postfoothook=\end{corol-leftbar},%
+]{better-corol}
+
+\declaretheorem[style=better-defn]{defn}
+\declaretheorem[style=better-warn]{warn}
+\declaretheorem[style=better-exemple]{exemple}
+\declaretheorem[style=better-corol]{corol}
+\declaretheorem[style=better-props, numberwithin=defn]{props}
+\declaretheorem[style=better-thm, sibling=props]{thm}
+\newtheorem*{lemme}{Lemme}%[subsection]
+%\newtheorem{props}{Propriétés}[defn]
+
+\newenvironment{system}%
+{\left\lbrace\begin{align}}%
+{\end{align}\right.}
+
+\newenvironment{AQT}{{\fontfamily{qbk}\selectfont AQT}}
+
+\usepackage{LobsterTwo}
+\titleformat{\section}{\newpage\LobsterTwo \huge\bfseries}{\thesection.}{1em}{}
+\titleformat{\subsection}{\vspace{2em}\LobsterTwo \Large\bfseries}{\thesubsection.}{1em}{}
+\titleformat{\subsubsection}{\vspace{1em}\LobsterTwo \large\bfseries}{\thesubsubsection.}{1em}{}
+
+\newenvironment{lititle}%
+{\vspace{7mm}\LobsterTwo \large}%
+{\\}
+
+\renewenvironment{proof}{$\square$ \footnotesize\textit{Démonstration.}}{\begin{flushright}$\blacksquare$\end{flushright}}
+
+\title{Titre}
+\author{William Hergès\thanks{Sorbonne Université - Faculté des Sciences, Faculté des Lettres}}
+
+\begin{document}
+ \maketitle
+ \tableofcontents
+ \newpage
+
+\end{document}
diff --git a/semestre 2/philosophie des sciences/1- Introduction.md b/semestre 2/philosophie des sciences/1- Introduction.md
new file mode 100644
index 0000000..2306ca5
--- /dev/null
+++ b/semestre 2/philosophie des sciences/1- Introduction.md
@@ -0,0 +1,98 @@
+---
+tags:
+ - sorbonne
+ - philosophie
+ - philosophie-sciences
+semestre: 2
+---
+Une note en TD sera un QCM en temps limité
+
+Partiel sera des questions
+## Qu'est-ce que la philosophie des sciences ?
+est la partie de la philosophie cherchant à clarifier la nature et les fondements des connaissances scientifiques et à explorer certaines de ses conséquences philosophiques
+|> on fera essentiellement de la recherche de la nature et des fondements de la connaissance
+
+Les sciences nous apprennent des choses sur le monde, comment peut-on les utiliser en philosophie ?
+|> voir la métaphysique des sciences
+
+Qu'est-ce qu'une connaissance ?
+|> croyance vraie et justifiée (Platon, _Théétète_) -> croyance n'a aucun lien avec la religion
+
+Qu'est-ce qu'une justification ?
+Qu'est-ce qu'une preuve ? (Tout ce qui va nous amener à croire quelque chose)
+
+Les preuves et les justifications scientifiques sont-elles différentes des autres domaines ?
+|> qu'est-ce que la scientificité ?
+-> est la question de la démarcation (distingue science et non science)
+
+Quelle autorité de la science ?
+|> doit-elle être plus écoutée ?
+
+> [!info] Sur ces notions
+> Ces notions ne sont pas indépendantes les unes des autres : elles sont liées
+
+*voir la diapo pour avoir un ensemble des questions de philosophie des sciences*
+
+> [!warning] Expériences et expérimentation
+> Expérience $\neq$ expérimentation !
+>
+> Une expérience scientifique est en réalité une expérimentation
+
+> [!NOTE] Expérience et expérimentation
+> L'expérience inclut l'observation, pas l'expérimentation
+
+Thomas Kuhn, *La Structure des révolutions scientifiques*
+|> sur les... révolutions scientifiques
+
+Les disciplines connexes sont :
+- histoire et philosophie des sciences (HPS) -> étude des exemples de l'histoire des sciences avec un œil sur les problèmes philosophiques (est surtout dans le monde anglosaxon)
+- épistémologie -> en France est philosophie des sciences + HPS ; en anglais, c'est la philo générale des connaissances (est le sens le plus utilisé)
+- sociologie des sciences -> étude des conditions sociales de la production des connaissances scientifiques (fondé par Merton)
+- histoire sciences (STS) -> approche pluridisciplinaire des sciences
+
+Philosophie des sciences s'intéressent surtout à la physique
+|> les sciences ici sont les sciences naturelles
+|> maintenant, on parle aussi des sciences humaines et sociales
+|> les sciences formelles ne sont pas étudiées (mathématiques, logique)
+## Conception moderne de la science
+Au 17e siècle, on dépasse la vision des anciens : est la révolution scientifique empiriste
+|> Galilée dépasse les livres écrit par les anciens avec ses observations
+-> découverte d'étoiles, de cratères et montagnes sur la Lune et des satellites de Jupiter
+
+On considère qu'une expérimentation qui contredit est plus intéressante que l'inverse
+|> changement de pdv
+
+On ne cherche plus pourquoi les choses sont, mais comment elles sont
+|> quitte les mots pour aller vers les maths
+
+Les théories deviennent des hypothèses
+|> ancienne def = contemplation de la vérité définitive par l'intellect
+|> théorie = affirmation de la nécessité d'un détour par l'expérience, d'où le caractère révisable de la connaissance
+
+> [!NOTE] Théorie et hypothèse
+> Ici, on ne fait pas de différence
+
+Conception scientifique empiriste est la conception de la science qui se dégage de cette révolution
+|> expérience (i.e. expérience sensible en générale) qui valide ou condamne nos théories scientifiques
+-> provient de l'empirisme en philosophie de la philosophie moderne
+
+Cette conception est dominante jusqu'à aujourd'hui
+
+L'empirisme est-il une bonne philosophie des sciences ? Suffit-il à rendre compte de la façon dont les théories scientifiques sont conçues et évaluées ?
+
+L'empirisme est-il une bonne conception de la façon dont les théories scientifiques sont validées ?
+|> focalisation sur le "raisonnement scientifique" -> est de la philosophie générales des sciences
+|> lié à la spécificité des sciences -> rigueur du raisonnement, méthode constitutive de la conception
+## Plan envisagé
+1. Introduction
+2. Les principales conceptions philosophiques de la validation empirique des théories scientifiques (cf _L'Empirisme logique et son histoire_)
+ 1. L'induction dans les sciences
+ 2. Le falsificationnisme
+ 3. Les limites du falsificationnisme
+ 4. Les déterminants non empiriques du choix théorique. Introduction à la philosophie des sciences de Thomas Kuhn
+3. La question de l'empirisme en-dehors du choix théorique
+ 1. Les constituants non empiriques des données
+ 2. Les hypothèses viennent-elles de l'expérience ?
+ 3. La place des valeurs dans les sciences
+4. **...**
+
diff --git a/semestre 2/philosophie générale/0- Introduction.md b/semestre 2/philosophie générale/0- Introduction.md
new file mode 100644
index 0000000..3bb89ef
--- /dev/null
+++ b/semestre 2/philosophie générale/0- Introduction.md
@@ -0,0 +1,49 @@
+---
+tags:
+ - sorbonne
+ - philosophie
+ - philosophie-générale
+semestre: 2
+---
+On parle de la vérité
+
+Objectifs :
+- compréhension et extension (champs d'application) de la vérité
+- lecture des grands textes philosophiques parlant de la vérité (et apprentissage des arguments pour défendre n'importe quelle position philosophique)
+- approfondissement du travail de la dissertation
+
+_Méthodologie philosophique_, PUF continue à être pertinent pour la dissertation (dispo sur Cairn)
+
+On ne va pas s'intéresser aux différents types de vérité
+|> mais à qu'est-ce qui est commun dans tous ces cas ?
+
+Situation contemporaine complexe autour de la vérité
+|> compliqué de reconnaître ce qui est vrai (reconnaissance)
+|> comment établir la vérité (établissement)
+
+Tout le monde sait qu'il existe plusieurs discours essayant d'énoncer de la vérité
+|> n'est pas un problème en soit
+|> ces différents discours peuvent rentrer en conflit
+-> fatigue face à la surabondance de vérités, crainte face à l'arbitrage de la vérité, méfiance face à la vérité
+|> peuvent amener à nier la valeur/pertinence de la vérité (relativisme) -> toutes les opinions se valent tous puisque ce sont des jugements de valeurs (discours éthique, politique et religieux), ce qui revient à nier la valeur de ces domaines
+|> ou à l'hypercritique -> tout ce qui est prétendu vrai peut être aussi bien réputé faux (révisionniste), négationnisme est un révisionnisme niant l'existence de la Shoah ou la négation du cannibalisme en anthropologie, une autre forme est l'accusation de tout fait alléguer de fake news quand ils sont avancés par des personnes n'allant dans le même sens et défend des faits alternatifs (comme les platistes)
+=> qui détient le savoir et qui peut peut déterminer le vrai et le faux ?
+|> la vérité ne va donc pas de soit
+
+Qu'est-ce la vérité et comment peut-on l'établir ?
+|> est-ce utile de réfléchir dessus au lieu de militer ?
+
+Considère communément que le vrai est :
+- ce qui est le cas, ce qui a lieu
+- ce qui fait l'objet d'un consensus en tant que c'est le cas
+
+La vérité dépasse cette vision :
+- doit être conforme à des principes logiques et être cohérente d'un point de vu interne
+- doit être conforme au réel (décrire et rendre compte comme il est)
+- recherché, difficile d'accès et réservée à quelques uns (pas comme le vrai)
+
+C'est l'essence de la vérité qui fait notre recherche
+
+1. Comment se manifeste la vérité et comment la définir ?
+2. Qu'est-ce qui atteste de la vérité ?
+3. En quoi la vérité est-elle accessible et en quoi existe-t-il des conditions de vérité ? (Pourquoi ça a un sens pour nous ?) \ No newline at end of file
diff --git a/semestre 2/philosophie générale/1- Figures de la vérité.md b/semestre 2/philosophie générale/1- Figures de la vérité.md
new file mode 100644
index 0000000..c6ae4d5
--- /dev/null
+++ b/semestre 2/philosophie générale/1- Figures de la vérité.md
@@ -0,0 +1,25 @@
+---
+tags:
+ - sorbonne
+ - philosophie
+ - philosophie-générale
+semestre: 2
+---
+## A. Où trouver la vérité
+Le vrai et le faux sont-ils dans les choses elles-mêmes ou dans les énoncés ?
+
+> [!info] Comment distinguer un saint d'une commune ?
+> Un saint ne commence jamais par une majuscule et il n'y a pas de tiret, à l'inverse d'une commune !
+> - saint Augustin est un saint
+> - Saint-Augustin est une commune
+>
+> On n'est pas obligé de mettre "saint" devant le nom d'un saint
+
+Augustin, _Soliloques_
+|> *Soliloque* est un néologisme signifiant discussion avec soi-même
+|> est un dialogue entre Augustin et sa raison
+|> est au IVe siècle
+|> se questionne sur la possibilité de connaître Dieu et l'âme est-elle immortelle
+|> essaye de définir le vrai et le faux (dans Livre II)
+-> très long détoure par la définition du faux, ce qui est très difficile à mener
+|> opère des mises à l'épreuve sur les différentes définitions \ No newline at end of file