Forum Programmation.autre Conseils pour améliorer mon niveau de maths

Posté par  (site web personnel, Mastodon) . Licence CC By‑SA.
Étiquettes :
4
23
juil.
2016

Bonjour,

Je suis développeur depuis bientôt un décennie et mon niveau de math ne s'est pas beaucoup amélioré depuis ma sortie de l'école (BTS). J'ai récemment fait l'acquisition de l'ouvrage "Conception d'algorithmes
Principes et 150 exercices corrigés
" et je constate que mon niveau en math appliqué à la programmation me handicape vraiment pour sa lecture.

Comme un développeur se doit d'avoir un bon niveau de maths pour bien faire son travail, je me tourne vers vous afin d'obtenir des conseils, des références ou des indications sur un parcours à suivre pour remédier à mon retard. Si vous me posiez la question "quel est ton niveau" actuel ou "où t'est tu arrêté", je crois que je pourrais dire que repartir du début (lycée) ne me ferais pas de mal.

Pour illustrer cela, voici un extrait du dit ouvrage:

Titre de l'image

Je maîtrise les termes comme nombre rationnel, fraction irréductible, etc. Mais je me perd très vite dans les expression mathématique et la compréhension du sens global de ce qui est dit. Comme si ma bosse des maths était un dépression des maths :p

Évidemment mon idée n'est pas simplement de re-faire tout le programme de maths lycée + formations scientifique. J'ai une vie active qui ne me laisse pas tant de temps que ça . Je cherche à acquérir ce qui doit être essentiel pour un développeur :)

Merci d'avance !

  • # Cours particulier

    Posté par  . Évalué à 5. Dernière modification le 23 juillet 2016 à 19:17.

    Tu peux prendre des cours particuliers sur des thématiques qui t'intéressent.

    Ou alors en autodidacte en posant des questions sur les forums.

    Ici par exemple, on t'explique ce qu'est une démonstration par l'absurde. C'est une des 4 ou 5 techniques de démonstrations de base.

    On te dit que démontrer un énoncé par l'absurde, c'est:
    -1 Formuler le contraire de cet énoncé,
    -2 Trouver une contradiction dans ce "contraire",
    -3 Si on trouve une contradiction alors l'énoncé de départ est prouvé. Sinon, eh bien il faut chercher autrement.

    Ici l'énoncé "contraire" est : "on a un petit nombre r positif, strictement, et c'est le plus petit des rationnels." C'est bizarre, développons:
    Je peux diviser un rationnel par deux. J'ai le droit. J'essaie sur mon r:

    r/2
    

    Et ça, c'est pas plus petit que r ? Avec les nombres positifs, c'est comme ça. Si on divise le nombre par deux le résultat (baptisé s sur l'image, ou p ou n'importe quoi) est plus petit. Donc r n'est pas le plus petit des nombres rationels positifs. C'est une contradiction.

    Voilà je suis arrivé où je voulais! J'ai ma contradiction, l'énoncé de base est démontré.

    En espérant que ça t'aide. Sinon bon courage quand même !

    • [^] # Re: Cours particulier

      Posté par  . Évalué à 2. Dernière modification le 24 juillet 2016 à 13:06.

      Note qu'il doit rester des zones d'ombre dans la démonstration que tu montres. Moi je n'ai fais que paraphraser et structurer:

      Comment obtiens-t-on la négation de P ? (j'ai été un peu approximatif dans le vocabulaire dans mon post, ça fait longtemps que je n'ai plus fait de math ;-) )

      Et ce truc de r/2 < r, ne faut-il pas le prouver aussi ?

      Je ne sais pas trop si c'est évident pour toi, ou si tu es capable de trouver la réponse.

  • # Expérience

    Posté par  (site web personnel) . Évalué à 1.

    Coucou, j'ai une certaine expérience de la remise à niveau en mathématiques, car sur la dernière année, je me suis préparé au CAPES de mathématiques, essentiellement basé sur le programme de classe préparatoire de MP/MPSI.

    En fait, bien maîtriser les mathématiques c'est un sujet qui est hyper intéressant en soi car ça te donne une réserve de puissance intellectuelle. Mais c'est un savoir qui est aussi un peu laborieux à apprendre. De plus, on dit souvent que les mathématiques ne sont pas applicables à la vie réelle et donc on s'en désintéresse facilement. Rien n'est plus faux en réalité mais elles conservent cette image de discipline austère et difficile d'accès.

    Pour schématiser, l'activité mathématique dans les livre est souvent présentée comme une énumération fastidieuse de théorèmes et de preuves. Savoir prouver et avoir des connaissances en logique est très important pour un développeur je pense. En fait, savoir prouver un algo est sans doute dans l'aspect mathématique le plus intéressant pour un développeur.

    En terme de mathématiques appliquées, il y a aussi des choses à prendre. Les « recettes » des maths, on peut les réutiliser car un ordinateur est avant tout un calculateur.

    En terme de concepts plus élaborés (algèbre linéaire, théorie des groupes) ces derniers sont extrêmement importants, à la fois comme fondation des mathématiques et en terme de culture générale, mais ils demandent aussi un travail approfondi pour être bien maîtrisés.

    Tu peux sélectionner ces différents aspects pour te composer une culture intéressante. Tu ne peux pas rattraper 10 ou 15 d'inactivité mathématique comme cela, tu vas avoir besoin de temps et de respirations pour progresser.

    Avant tout cela il y a tout un vocabulaire à maîtriser, mais celui ci est en général bien résumé dans le premier chapitre d'un bon bouquin de MPSI.

  • # Renseigne-toi éventuellement auprès de CNED

    Posté par  . Évalué à 4. Dernière modification le 23 juillet 2016 à 21:57.

    http://www.cned.fr/vie-active/remise-a-niveau/formation-base

    Aparamment ils ont un test en ligne pour les maths.

    A mon avis si tu n'es pas coaché un minimum, tu vas laisser tomber des que quelque chose de plus intéessant se présentera à toi.

  • # Rigueur mathématique du bouquin

    Posté par  . Évalué à 3.

    Tu postes 2 pages du bouquin, et je m'interroge sur la rigueur mathématique d'icelui.

    En particulier

    p^2 = 2q^2\quad\Longleftrightarrow\quad 2\textrm{ divise }p^2

    Il est immédiat que p^2 = 2q^2\quad\Longrightarrow\quad 2\textrm{ divise }p^2, mais la réciproque est fausse, juste par exemple, si p^2=4, alors 2\textrm{ divise }p^2, mais il n'existe aucun q entier tel que p^2 = 2q^2.

    Ce n'est pas un problème dans le raisonnement, car seulement l'implication directe est nécessaire, l'implication réciproque étant fausse et non nécessaire au raisonnement, mais ça fait tâche.

    De plus lorsqu'il écrit la phrase avec le \exists p', elle n'est pas déduite de uniquement la phrase précédente, mais aussi de p^2 = 2q^2.

    C'est peut-être ma vision personnelle, mais je pense que pour suivre un raisonnement math, il faut que le raisonnement soit rigoureux et explicite. Ici, il n'est pas rigoureux, voir faux mais sur des points qui ne remettent pas en cause la validité globale du raisonnement, et pas explicite, puisqu'on réutilise des affirmation précédente à l'opposé du sens même du connecteur logique \quad\Longleftrightarrow\quad.

    • [^] # Re: Rigueur mathématique du bouquin

      Posté par  (site web personnel) . Évalué à 2. Dernière modification le 25 juillet 2016 à 13:54.

      Tu postes 2 pages du bouquin, et je m'interroge sur la rigueur mathématique d'icelui.

      L'équivalence ne vaut que sous la condition (clairement indiquée par le texte) que p et q sont premiers entre eux. Cela intervient une deuxième fois quand il écrit “reformulation.”

      • [^] # Re: Rigueur mathématique du bouquin

        Posté par  . Évalué à 3.

        Justement, il faut l'indiquer quand tu écrit l'équivalence.

        D'ailleurs, en fait, quand on regarde, c'est ni un raisonnement par équivalence ou implication qui est fait. C'est un raisonnement déductif. Les phrases logiques du type p^2 = 2q^2 sont à p,q fixé.

        Personnellement, je proposerai une formulation de type là (en très détaillé, ce qui est le but d'un ouvrage pédagogique) :

        Objectif, prouver « \sqrt{2} \not\in \mathbb{Q}_+ »

        On fait l'hypothèse \sqrt{2} \in \mathbb{Q}_+.

        Donc il existe p,q\in\mathbb{N} tel que p,q premiers entre eux, et \frac{p}{q}=\sqrt{2}.

        On a \frac{p^2}{q^2}=2 [1], et donc p^2 = 2q^2 [2].

        En utilisant [2] p^2 est pair. Donc p est pair. [3]

        En utilisant [3], il existe p' tel que p=2p'. Puis en utilisant [2] 4p'=2q^2, donc q^2 est pair, et donc q est pair. [4].

        [3] et [4] permettent de conclure que p et q sont pairs, et donc non premiers entre eux, ce qui est contradictoire. L'hypothèse \sqrt{2} \in \mathbb{Q}_+ est donc fausse. \sqrt{2} \not\in \mathbb{Q}_+ est donc prouvée.

        Et pour une version courte, je proposerais.

        Hypothèse : \sqrt{2} \in \mathbb{Q}_+.
        On déduit de l'hypothèse l'existence de p,q premiers entre eux tel que \frac{p}{q}=2. On en déduit p^2=2q^2, ce qui nous permets de dire que p^2 et donc p sont pairs, et introduisant un entier p' tel que p=2p', et en l'injectant dans p^2=2q^2, on déduit que q^2 et donc q sont pairs. La parité de p et q contredit la condition de leur existence. L'hypothèse initiale est donc fausse.
        On a prouvé que \sqrt{2}\not\in\mathbb{Q}_+.

  • # Quelques conseils

    Posté par  (site web personnel) . Évalué à 3. Dernière modification le 25 juillet 2016 à 14:33.

    Je suis développeur depuis bientôt un décennie et mon niveau de math ne s'est pas beaucoup amélioré depuis ma sortie de l'école (BTS).

    Déjà je voudrais commencer par hiérarchiser un peu les objectifs de compétence, disons, par ordre de difficulté:

    1. Comprendre une démonstration “pas à pas”.
    2. Comprendre la structure d'une démonstration et en extraire une “ébauche de démonstration” qui dégage la structure de la preuve. Par exemple pour la première proposition “on fait l'hypothèse absurde qu'il existe un plus petit rationnel strictement positif et on construit un rationnel plus petit en divisant par 2.” et pour la second “on fait fait l'hypothèse absurde qu'il existe une fraction réduite p/q de carré 2 et on raisonne sur la décomposition en facteurs premiers de p2 = 2q2”.
    3. Arriver à retrouver un preuve à partir d'une ébauche comme celles de 2.
    4. Démontrer des théorèmes proches d'un théorème qu'on connait déjà, dans des hypothèses largement différentes (cela permet de comprendre quelles sont les hypothèses qui “font marcher la preuve”).
    5. Démontrer le théorème sans connaître la preuve!
    6. Deviner soi-même les théorèmes à partir d'exemples et les démontrer.

    (Dès fois 5 et 6 sont abordables, mais dès fois c'est quasiment de la recherche!)

    Ensuite pour la méthode je ne peux que te conseiller:

    1. De travailler régulièrement, par exemple tu peux avoir pour objectif de regarder les 3/4 du livre que tu as acheté “à la cool, pépère” en te prenant 2 heures tous les vendredi matin pendant 6 mois.

    2. Prendre le temps de chercher, et se poser des méta-questions: quand on lit la solution d'un problème qu'on a pas su résoudre, c'est bien de se demander “qu'est-ce que c'est le truc dur auquel je n'aurais pas pensé”. On peut aussi essayer des preuves différentes, par exemple la deuxième preuve utilise les relations de divisibilité. Le théorème de décomposition en facteurs premiers explique les relations de divisibilité entre les nombres, on peut essayer de prouver le même énoncé en utilisant cette décomposition au lieu de la version “petit bras” où l'on ne regarde que la division par 2.

    3. Parler à des gens qui s'intéressent aussi à ça, par exemple une question de maths peut faire un bon petit sujet de cantine. :)

    4. Tu n'es pas obligé de faire tous les exercices d'une leçon tout de suite, tu peux en garder un peu pour après.

    Pour le sujets je pense qu'au début, c'est plus satisfaisant de se concentrer sur des sujets assez délimités pour avoir des compétences assez solides sur lesquelles on sait qu'on peut s'appuyer. Par exemple tu peux choisir parmi la “théorie des nombres”, de la combinatoire, de l'analyse réelle et des probabilités, je pense que n'importe laquelle de ces branches devrait être relativement proche de ton travail de programmeurs (l'analyse réelle est peut-être un peu en périphérie).

    Ensuite le choix du livre. C'est très important de piocher des livres qui ont une vraie approche pédagogique et pas des listes fourre-tout d'exercices. Si tu es à l'aise en anglais je peux te recommander les quelques livres suivants (du plus facile au plus dur, disons):

    • Concrete Mathematics (Knuth; Graham; Patachnik)
    • Number Theory (Hardy; Wright)
    • Number Theory (Rose)
    • Problems and theorems in analysis (Polyà et Szegö)
    • Roger Godement (Cours d'analyse)

    C'est tous des classiques que tu devrais trouver d'occasion sans aucun problème à très bon marché. Je pense que le niveau est peut-être un peu exigeant pour un néo bachelier mais comme tu as déjà des cours dans le supérieur tu as déjà vu des preuves et des cours et même si tu as oublié le contenu je pense que tu devrais arriver à profiter de ces livres!

  • # Merci pour vos réponses

    Posté par  (site web personnel, Mastodon) . Évalué à 2.

    Merci à tous pour tous ces conseils et analyses de la situation ! Je vais me construire un petit cursus à l'aide de vos remarques :)

    🦀🐍 http://github.com/buxx 🖥 https://algoo.fr 📋 https://tracim.fr

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.