>>> sp.limit((sp.tan(x) - x) / x**3, x, 0) # 1/3
Chaque bloc noir est du vrai Python, modifiable : ▶ Exécuter (ou Ctrl+Entrée). Les variables restent en mémoire d'un bloc à l'autre. NumPy et SymPy se chargent la première fois qu'un bloc les importe.
| Chapitre | L'essentiel | Python |
|---|---|---|
| 1. Matrices | Types, somme, produit (non commutatif), puissances, binôme, transposée | np.array, @, .T, matrix_power |
| 2. Déterminant & inverse | Propriétés, cofacteurs, développement, comatrice, A⁻¹ | linalg.det, inv · sp.Matrix.det() |
| 3. Systèmes linéaires | Substitution, Cramer, AX = B, interprétation géométrique | linalg.solve · sp.linsolve |
| 4. Valeurs propres | AX = λX, polynôme caractéristique, matrices triangulaires | linalg.eig · charpoly, eigenvals |
| 5. Fonctions | Limites, continuité, TVI, dérivées, Leibniz, variations | sp.limit, sp.diff, dichotomie |
| 6. Équations différentielles | y' = ay, y' = a(x)y + b(x), variation de la constante | sp.dsolve, méthode d'Euler |
| 7. Fonctions multivariables | Domaine, limites selon un chemin, ∂f/∂x, gradient, hessienne, extrema | sp.hessian, sp.solve |
| 8. Développements limités | Taylor-Young, DL usuels, opérations, limites, tangente | sp.series |
Deux branches qui se rejoignent : les valeurs propres réutilisent le déterminant, et la hessienne des fonctions multivariables est… une matrice. Clique sur un chapitre.
Une matrice de taille n × p est un tableau de n lignes et p colonnes ; aij est le coefficient de la ligne i, colonne j. En pharmacie, une ligne = un patient, une colonne = une variable (dose, âge…).
| Matrice | Définition |
|---|---|
| Carrée | n = p ; ses aii forment la diagonale principale |
| Ligne / colonne | 1 seule ligne (vecteur ligne) / 1 seule colonne (vecteur colonne) |
| Nulle 0n,p | Tous les coefficients sont 0 (joue le rôle du 0 : A + 0 = A) |
| Identité In | Carrée, 1 sur la diagonale, 0 ailleurs (A·I = I·A = A) |
| Triangulaire supérieure | aij = 0 dès que i > j (zéros sous la diagonale) |
| Triangulaire inférieure | aij = 0 dès que i < j (zéros au-dessus) |
| Diagonale | Seule la diagonale est non nulle |
| Symétrique / antisymétrique | Aᵀ = A / Aᵀ = −A (diagonale nulle) |
A + B : même taille, on additionne case par case. λA : chaque coefficient multiplié par λ.
A (n × p) · B (p × q) = matrice n × q. Le coefficient (i, j) = ligne i de A · colonne j de B = Σk aikbkj. En général AB ≠ BA.
A⁰ = I, Ap+1 = Ap·A. Pour une matrice diagonale : on élève chaque terme diagonal à la puissance p.
(A + B)² = A² + AB + BA + B². La formule (A+B)p = Σ C(p,k) Ap−kBk n'est valable que si AB = BA.
Le déterminant est un nombre associé à une matrice carrée. Il dit si la matrice est inversible (det ≠ 0) et mesure un « volume » : |det| = aire (2D) ou volume (3D) construit sur les colonnes.
| Opération sur A | Effet sur det |
|---|---|
| Multiplier une ligne (ou colonne) par λ | det × λ (et det(λA) = λⁿ det A pour une matrice n × n) |
| Échanger deux lignes (ou colonnes) | det change de signe |
| Ajouter à une ligne un multiple d'une autre | Inchangé |
| Deux lignes égales ou proportionnelles | det = 0 |
| Matrice triangulaire ou diagonale | Produit des termes diagonaux |
| det(AB), det(Aᵀ), det(A⁻¹) | det A · det B ; det A ; 1/det A |
+ − + / − + − / + − +. Pour une 3×3, la règle de Sarrus marche aussi (mais pas au-delà de 3×3).Droites sécantes (2D) ; det ≠ 0. On dit que le système est de Cramer.
Droites (ou plans) parallèles distinctes : équations incompatibles.
Droites confondues, ou deux plans qui se coupent selon une droite : on exprime les solutions avec un paramètre.
λ est une valeur propre de A s'il existe un vecteur non nul X tel que AX = λX : A ne fait qu'étirer X (par le facteur λ), sans changer sa direction. X est un vecteur propre associé.
limx→x₀ f(x) = ℓ : f(x) devient aussi proche de ℓ qu'on veut dès que x est assez proche de x₀ (∀ε > 0, ∃δ > 0, |x − x₀| < δ ⇒ |f(x) − ℓ| < ε).
Gendarmes : si f ≤ g ≤ h et f, h → ℓ, alors g → ℓ.
f est continue en x₀ si limx→x₀ f(x) = f(x₀). Sommes, produits, quotients (dénominateur ≠ 0) et composées de fonctions continues sont continues.
Prolongement : si f n'est pas définie en x₀ mais a une limite finie ℓ, on pose f(x₀) = ℓ.
Théorème des valeurs intermédiaires : si f est continue sur [a, b] et f(a), f(b) sont de signes contraires, il existe c ∈ ]a, b[ avec f(c) = 0. C'est la base de la dichotomie.
f'(x₀) = limh→0 [f(x₀ + h) − f(x₀)] / h = pente de la tangente : y = f(x₀) + f'(x₀)(x − x₀). Dérivable ⇒ continue (la réciproque est fausse : |x| en 0, √x en 0).
| f | f' | f | f' |
|---|---|---|---|
| xⁿ | n xⁿ⁻¹ | u·v | u'v + uv' |
| 1/x | −1/x² | u/v | (u'v − uv') / v² |
| √x | 1 / (2√x) | g∘f | g'(f(x)) · f'(x) |
| eˣ | eˣ | eu | u' eu |
| ln x | 1/x | ln u | u'/u |
| sin x / cos x | cos x / −sin x | tan x | 1 + tan²x = 1/cos²x |
| arctan x | 1/(1 + x²) | f⁻¹ | 1 / f'(f⁻¹(x)) |
L'inconnue est une fonction y(x), et l'équation relie y à ses dérivées. En pharmacocinétique, l'élimination d'ordre 1 s'écrit C'(t) = −k·C(t) : la vitesse d'élimination est proportionnelle à la concentration.
| Équation | Solutions |
|---|---|
| y' = a y (a constante) | y(x) = k eax, k ∈ ℝ |
| y' = a(x) y | y(x) = k eA(x) où A est une primitive de a |
| y' = a(x) y + b(x) | y = y₀ + k eA(x) : solution particulière + solution générale de l'équation homogène |
En pharmacie, une concentration dépend du temps, de la dose, du poids, du métabolisme… : C(t, d, m, k). L'effet d'un médicament peut s'écrire E(d, w) (dose d, poids w), avec Emax = effet maximal et EC50 = dose donnant 50 % de Emax.
La limite doit être la même par tous les chemins. Si deux chemins donnent deux valeurs différentes, la limite n'existe pas.
| Au point critique | Conclusion |
|---|---|
| det H > 0 et fxx > 0 | Minimum local (H définie positive) |
| det H > 0 et fxx < 0 | Maximum local (H définie négative) |
| det H < 0 | Point selle (valeurs propres de signes opposés) |
| det H = 0 | On ne peut pas conclure avec la hessienne |
Un DL à l'ordre n en a approche f par un polynôme de degré n : f(x) = Pn(x) + o((x − a)ⁿ). Plus n est grand, meilleure est l'approximation près de a.
| Au voisinage de 0 | DL |
|---|---|
| eˣ | 1 + x + x²/2! + x³/3! + … + xⁿ/n! + o(xⁿ) |
| sin x | x − x³/3! + x⁵/5! − … (puissances impaires) |
| cos x | 1 − x²/2! + x⁴/4! − … (puissances paires) |
| ln(1 + x) | x − x²/2 + x³/3 − … + (−1)ⁿ⁺¹ xⁿ/n |
| 1/(1 − x) | 1 + x + x² + … + xⁿ |
| (1 + x)α | 1 + αx + α(α−1)/2! x² + … |
| √(1 + x) | 1 + x/2 − x²/8 + x³/16 − 5x⁴/128 + … |
(sin x − x)/x³ = (−x³/6 + o(x³))/x³ → −1/6.
eˣ − (1 + x) = x²/2 + o(x²) > 0 : la courbe est au-dessus de sa tangente en 0.
x³ cos x = x³ − x⁵/2 + … : le terme dominant x³ est impair → change de signe → ni max ni min en 0.
Somme : on additionne les DL. Produit : on multiplie et on tronque à l'ordre voulu : ln(1+x)·sin x = x² − x³/2 + o(x³).
Fais d'abord l'exercice à la main (c'est ce qui est évalué), puis vérifie avec le bloc Python.
| Exercice | Résultat | À retenir |
|---|---|---|
| 1 | det B = 1×4 − 2×3 = −2 ; après échange des lignes : +2 | Échanger deux lignes change le signe |
| 2 | det = 0 | L3 − L2 = L2 − L1 : lignes liées → matrice non inversible |
| 3 | det [[3, 1], [2, 4]] = 10 | |det| = aire du parallélogramme construit sur u et v |
| 4 | det M = −4 | |det| = 4 = volume du parallélépipède ; ≠ 0 → vecteurs indépendants |
| 5 | det B = 1 → ×3 ligne : 3 ; échange : −1 ; L3 + 2L1 : 1 | Multiplier une ligne par k multiplie det par k ; ajouter un multiple d'une ligne ne change rien |
| 6-8 | M₁₁ = 13, M₂₃ = 10, M₃₂ = −8 ; C₁₁ = 13, C₂₃ = −10, C₃₂ = 8 | Cofacteurs : [[13, −12, 20], [−4, 6, −10], [−7, 8, −10]], det A = 10 |
| 9 | Cofacteurs de C : [[8, −1, −6], [4, 8, −3], [−1, −2, 5]], det = 17 | Comatrice = transposée : [[8, 4, −1], [−1, 8, −2], [−6, −3, 5]] |
| 10 | C₁₁ = 28, C₂₂ = 14, C₃₃ = 8, C₁₂ = 0, C₂₃ = 0 | Matrice triangulaire : det = produit de la diagonale = 56 |
| 11 | C₁₂ = 5, C₂₁ = 0, C₂₃ = 0, C₃₂ = −2, det E = −9 | Développer selon la ligne/colonne qui contient le plus de zéros (ici la colonne 2) |
Ex. 1 : det B = 10 ; cofacteurs de la 1re ligne : −3, −1, −1, 5 (vérifie : 2(−3) + 1(−1) + 3(−1) + 4(5) = 10 ✔). Ex. 2 : det C = −21 ≠ 0, donc C est inversible. Ex. 3 : mineur (L1, L3 ; C2, C4) = 1 ; mineur (L1, L2, L4 ; C1, C2, C3) = −12 ; mineur principal d'ordre 3 = 30.
Idée : on cherche les coefficients x₁…xₙ. Pour chaque élément (Ca, C, O, H, Cl…), le nombre d'atomes à gauche = à droite → une équation linéaire homogène. Ex. CaCO₃ + HCl → CaCl₂ + H₂O + CO₂ : Ca : x₁ = x₃ ; C : x₁ = x₅ ; O : 3x₁ = x₄ + 2x₅ ; H : x₂ = 2x₄ ; Cl : x₂ = 2x₃. En fixant x₁ = 1 : CaCO₃ + 2 HCl → CaCl₂ + H₂O + CO₂.
Méthode : une inconnue par solution (ou médicament), une équation par substance. Les colonnes de la matrice sont les solutions, les lignes les substances : np.linalg.solve(A, cible).
Pour montrer que X est vecteur propre, on calcule AX et on vérifie que c'est un multiple de X ; le coefficient est la valeur propre. Pour montrer que λ est valeur propre : det(A − λI) = 0.
Les matrices des exercices 1 et 4 sont très petites sur le scan : remplace les coefficients dans le bloc et utilise tester_vecteur pour vérifier tes réponses.
| Question | Réponse | Méthode |
|---|---|---|
| (2x² − x − 2)/(3x² + 2x + 2) en 0 ; en +∞ | −1 ; 2/3 | Remplacer ; rapport des termes de plus haut degré |
| sin(1/x) en +∞ ; cos x/√x en +∞ | 0 ; 0 | 1/x → 0 et sin continue ; gendarmes : |cos x/√x| ≤ 1/√x |
| (√(1+x) − √(1+x²))/x en 0 | 1/2 | Multiplier par la quantité conjuguée |
| (x² − 4)/(x² − 3x + 2) en 2 | 4 | Factoriser : (x+2)(x−2)/((x−1)(x−2)) = (x+2)/(x−1) |
| Dérivées n-ièmes de ln(1 + x) | (−1)ⁿ⁻¹ (n−1)! / (1+x)ⁿ | Calculer f', f'', f''' et repérer la forme |
| (eˣ(x² + 1))⁽ⁿ⁾ | eˣ (x² + 2n x + n² − n + 1) | Leibniz : seuls k = 0, 1, 2 donnent des termes non nuls |
Le cours manipule d'abord les matrices comme des listes de listes (boucles for/while sur les indices), puis avec NumPy. Les deux approches sont à connaître.
Ce bloc tire une matrice au hasard (graine fixée à 1, donc toujours la même) : change la graine pour t'entraîner sur d'autres matrices.
Teste tes propres calculs : import sympy as sp pour le calcul exact, import numpy as np pour le numérique.
A * B (NumPy) est case par case, le produit matriciel est A @ B ; np.linalg.det donne un float approché (9.9999999 au lieu de 10) : SymPy donne la valeur exacte.Chapitres 1-2 : produit, puissances, déterminant 3×3 par cofacteurs, inverse par la comatrice. Refais TD 2, 3 et 4 à la main.
Chapitres 3-4 : Cramer, interprétation géométrique, polynôme caractéristique. TD 6 (Série 6) et exercices du chapitre 4.
Chapitres 5, 6, 8 : tableau des dérivées et des DL usuels en mode auto-test, Leibniz, variation de la constante. TD 9.
Chapitre 7 : gradient, hessienne, nature des points critiques. Finis par le quiz et les flashcards.