def afficher_menu(): print("=== Cours sur les Équations Différentielles ===") print("1. 1er degré (coeff constants)") print("2. 1er degré (coeff non constants)") print("3. 2nd degré (coeff constants)") print("4. 2nd degré (coeff non constants)") print("0. Quitter") choix = int(input("Choisissez une section : ")) return choix def ed_premier_degre_constant(): print("\n=== ED du 1er degré : coefficients constants ===") print("Forme générale : y'(x) + a*y(x) = b") print("\nFormules importantes :") print("1. Facteur intégrant μ(x) = exp(∫a dx) = exp(ax)") print("2. Solution générale :") print(" Si b = 0 : y(x) = C*exp(-a*x)") print(" Si b ≠ 0 : y(x) = (b/a) + C*exp(-a*x)") print("\nÉtapes de résolution :") print("1. Calculer μ(x).") print("2. Multiplier l'équation par μ(x).") print("3. Résoudre la dérivée totale résultante.") print("4. Ajouter la constante d'intégration C.\n") def ed_premier_degre_non_constant(): print("\n=== ED du 1er degré : coefficients non constants ===") print("Forme générale : y'(x) + P(x)*y(x) = Q(x)") print("\nFormules importantes :") print("1. Facteur intégrant μ(x) = exp(∫P(x) dx)") print("2. Solution générale : y(x) = (1/μ(x)) * ∫[μ(x)*Q(x)] dx + C/μ(x)") print("\nÉtapes de résolution :") print("1. Identifier P(x) et Q(x).") print("2. Calculer le facteur intégrant μ(x).") print("3. Multiplier toute l'équation par μ(x).") print("4. Résoudre la dérivée totale résultante.") print("5. Ajouter la constante d'intégration C.\n") def ed_second_degre_constant(): print("\n=== ED du 2nd degré : coefficients constants ===") print("Forme générale : a*y''(x) + b*y'(x) + c*y(x) = 0") print("\nFormules importantes :") print("1. Équation caractéristique : a*r2 + b*r + c = 0") print("2. Solutions de l'équation :") print(" Si ∆ > 0 : y(x) = C1*exp(r1*x) + C2*exp(r2*x)") print(" Si ∆ = 0 : y(x) = (C1 + C2*x)*exp(r*x)") print(" Si ∆ < 0 : y(x) = exp(α*x) * [C1*cos(β*x) + C2*sin(β*x)]") print(" (où r1, r2 sont les racines, ∆ = b2 - 4ac, α = -b/(2a), β = √|∆|/(2a))") print("\nÉtapes de résolution :") print("1. Calculer le discriminant ∆ = b2 - 4ac.") print("2. Trouver les racines (réelles ou complexes).") print("3. Construire la solution générale en fonction de ∆.\n") def ed_second_degre_non_constant(): print("\n=== ED du 2nd degré : coefficients non constants ===") print("Forme générale : a(x)*y''(x) + b(x)*y'(x) + c(x)*y(x) = d(x)") print("\nFormules générales :") print("1. Si l'équation est homogène :") print(" Utiliser la méthode de réduction d'ordre ou chercher des solutions particulières.") print("2. Si l'équation est non homogène :") print(" Solution = Solution de l'équation homogène + Solution particulière.") print("\nMéthodes possibles :") print("- Méthode de variation des constantes :") print(" Chercher y(x) = u(x)*y1(x), où y1(x) est une solution de l'équation homogène.") print("- Méthode des séries :") print(" Approcher la solution par une série de Taylor.") print("- Méthode numérique (Euler, Runge-Kutta).") print("\nÉtapes générales :") print("1. Identifier a(x), b(x), c(x), et d(x).") print("2. Réécrire l'équation en forme simplifiée.") print("3. Appliquer la méthode choisie pour résoudre.\n") def cours(): while True: choix = afficher_menu() if choix == 1: ed_premier_degre_constant() elif choix == 2: ed_premier_degre_non_constant() elif choix == 3: ed_second_degre_constant() elif choix == 4: ed_second_degre_non_constant() elif choix == 0: print("Au revoir !") break else: print("Choix invalide, veuillez réessayer.") # Lancer le programme cours()