{"id":8414,"date":"2023-06-20T11:21:04","date_gmt":"2023-06-20T09:21:04","guid":{"rendered":"https:\/\/www.mathweb.fr\/euclide\/?p=8414"},"modified":"2023-06-20T11:21:05","modified_gmt":"2023-06-20T09:21:05","slug":"equations-du-second-degre-en-python-avec-ia","status":"publish","type":"post","link":"https:\/\/www.mathweb.fr\/euclide\/2023\/06\/20\/equations-du-second-degre-en-python-avec-ia\/","title":{"rendered":"\u00c9quations du second degr\u00e9 en Python avec IA"},"content":{"rendered":"\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Les \u00e9quations du second degr\u00e9, ou \u00e9quations quadratiques, sont tr\u00e8s faciles \u00e0 r\u00e9soudre math\u00e9matiquement, mais d\u00e8s lors que l&rsquo;on souhaite \u00e9crire un programme en Python permettant de les r\u00e9soudre, c&rsquo;est autre chose&#8230;<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">J&rsquo;ai voulu test\u00e9 deux mani\u00e8res de concevoir un programme de r\u00e9solution des \u00e9quations quadratiques \u00e0 l&rsquo;aide de l&rsquo;intelligence artificielle apr\u00e8s avoir moi-m\u00eame \u00e9crit un programme, histoire de comparer&#8230;<\/p>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Alors oui, je sais, j&rsquo;ai d\u00e9j\u00e0 \u00e9crit un <a href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/05\/18\/trinome-du-second-degre-et-python\/\">article sur ce th\u00e8me<\/a>, mais je faisais appel \u00e0 Xcas. Je voudrais maintenant \u00eatre le plus autonome possible et donc ne me contenter que d&rsquo;une solution Python pure.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-white ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Au menu sur cette page...<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.mathweb.fr\/euclide\/2023\/06\/20\/equations-du-second-degre-en-python-avec-ia\/#Conception_dun_programme_avec_ChatGPT\" >Conception d&rsquo;un programme avec ChatGPT<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.mathweb.fr\/euclide\/2023\/06\/20\/equations-du-second-degre-en-python-avec-ia\/#Generation_dun_programme_en_Python_sous_Cursor\" >G\u00e9n\u00e9ration d&rsquo;un programme en Python sous Cursor<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.mathweb.fr\/euclide\/2023\/06\/20\/equations-du-second-degre-en-python-avec-ia\/#Mon_propre_programme\" >Mon propre programme<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Conception_dun_programme_avec_ChatGPT\"><\/span>Conception d&rsquo;un programme avec ChatGPT<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Le prompt que j&rsquo;ai saisi sur <a href=\"https:\/\/chat.openai.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">chatGPT<\/a> est le suivant:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Peux-tu me donner un programme \u00e9crit en Python qui permet de r\u00e9soudre une \u00e9quation du second degr\u00e9 sur l'ensemble des nombres r\u00e9els ?<\/code><\/pre>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Et voici sa r\u00e9ponse:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import math\n\ndef solve_quadratic(a, b, c):\n    discriminant = b**2 - 4*a*c\n    \n    if discriminant > 0:\n        root1 = (-b + math.sqrt(discriminant)) \/ (2*a)\n        root2 = (-b - math.sqrt(discriminant)) \/ (2*a)\n        return root1, root2\n    elif discriminant == 0:\n        root = -b \/ (2*a)\n        return root\n    else:\n        return None\n\n# Exemple d'utilisation\na = float(input(\"Entrez le coefficient a : \"))\nb = float(input(\"Entrez le coefficient b : \"))\nc = float(input(\"Entrez le coefficient c : \"))\n\nsolutions = solve_quadratic(a, b, c)\n\nif solutions is None:\n    print(\"Pas de solution r\u00e9elle.\")\nelif isinstance(solutions, tuple):\n    print(\"Les solutions sont :\", solutions[0], \"et\", solutions[1])\nelse:\n    print(\"La solution est :\", solutions)<\/pre>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Ce code ne me convient pas car il ne donne que les valeurs approch\u00e9es des solutions quand le discriminant n&rsquo;est pas un carr\u00e9 parfait.<\/p>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Au fait, pour plus de d\u00e9tail sur la r\u00e9solution math\u00e9matique de telles \u00e9quations, <a href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/08\/20\/le-second-degre-animation-fiche-resumee\/\">regardez cette page<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Generation_dun_programme_en_Python_sous_Cursor\"><\/span>G\u00e9n\u00e9ration d&rsquo;un programme en Python sous Cursor<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">C&rsquo;est gr\u00e2ce \u00e0 <a href=\"https:\/\/korben.info\/cursor-editeur-avec-ia-le-futur-du-developpement.html\" target=\"_blank\" rel=\"noreferrer noopener\">Korben<\/a> que j&rsquo;ai eu l&rsquo;info: cursor est un logiciel qui permet de coder \u00e0 l&rsquo;aide de l&rsquo;IA. J&rsquo;ai donc voulu voir ce que cela donne. Le r\u00e9sultat en vid\u00e9o:<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2023\/06\/cursor.mp4\"><\/video><\/figure>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Le programme est le suivant:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import cmath\n\ndef solve_quadratic(a, b, c):\n    # Calculate the discriminant\n    discriminant = cmath.sqrt(b**2 - 4*a*c)\n\n    # Find two solutions\n    sol1 = (-b - discriminant) \/ (2 * a)\n    sol2 = (-b + discriminant) \/ (2 * a)\n\n    return (sol1, sol2)\n\nif __name__ == \"__main__\":\n    a = float(input(\"Enter the coefficient of x^2 (a): \"))\n    b = float(input(\"Enter the coefficient of x (b): \"))\n    c = float(input(\"Enter the constant term (c): \"))\n\n    solutions = solve_quadratic(a, b, c)\n\n    print(\"The solutions are {0} and {1}\".format(solutions[0], solutions[1]))<\/pre>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">\u00c0 deux poils de cul pr\u00e8s, \u00e7a ressemble \u00e0 celui propos\u00e9 par chatGPT. En fait, c&rsquo;est pire car j&rsquo;avais bien demand\u00e9 de r\u00e9soudre sur l&rsquo;ensemble des r\u00e9els, mais il m&rsquo;a fait \u00e7a sur l&rsquo;ensemble des nombres complexes cet abruti! Et en anglais en plus ! Pfiou !<\/p>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">N&#8217;emp\u00eache que \u00e7a e me va pas du tout ! Je n&rsquo;ai toujours pas de valeurs exactes!<\/p>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Rien ne vaut le travail fait  la main (et au cerveau) !<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Mon_propre_programme\"><\/span>Mon propre programme<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Avant de se lancer dans le script, il faut analyser les situations d\u00e9licates.<\/p>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Lorsque le discriminant n&rsquo;est pas un carr\u00e9 parfait, les solutions (quand elles existent) ne sont pas rationnelles. Et m\u00eame quand le discriminant est un carr\u00e9 parfait, on peut se retrouver avec une solution rationnelle non d\u00e9cimale (par exemple, \\(\\frac{1}{3}\\) qui va s&rsquo;\u00e9crire 0.3333333333333&#8230; Beurk! <\/p>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Il y a donc deux probl\u00e9matiques:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>simplifier les racines quand il y a des fractions<\/li>\n\n\n\n<li>simplifier la racine carr\u00e9e du discriminant<\/li>\n<\/ul>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Pour simplifier les fractions, on peut utiliser le module <em><a href=\"https:\/\/docs.python.org\/fr\/3\/library\/fractions.html\" target=\"_blank\" rel=\"noreferrer noopener\">fractions<\/a><\/em>.<\/p>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">En revanche, pour simplifier la racine carr\u00e9e du discriminant, il n&rsquo;y a pas de module \u00e0 ma connaissance. Il faut donc bidouiller un script&#8230; Et ce n&rsquo;est pas si difficile que \u00e7a: on d\u00e9compose le discriminant en produit de facteurs premiers, que l&rsquo;on utilise pour simplifier la racine carr\u00e9e.<\/p>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">\u00c7a donne un programme assez volumineux (86 lignes de code) mais il faut ce qu&rsquo;il faut!<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">from fractions import Fraction\n\n\"\"\"\nD\u00e9composition en produit de facteurs premiers: retourne un dictionnaire de la forme\n{ (p1:exp1), ... }\n\"\"\"\ndef decomp(n):\n    D = dict() # dictionnaire vide\n    \n    k = 2\n    \n    while n > 1:\n        exposant = 0\n        while n%k == 0:\n            exposant = exposant + 1\n            n = n\/k\n        if exposant != 0:\n            D[k] = exposant\n        k = k+1\n        j = 2\n        while k%j == 0:\n            k = k + 1 \n        \n    return D\n\n\"\"\"\nSimplification d'une racine carr\u00e9e\n\"\"\"\ndef simp(x):\n    x = Fraction(x)\n    numer = decomp(x.numerator)\n    denom = decomp(x.denominator)\n    coef_num, radicand_num = 1, 1\n    for facteur, exposant in numer.items():\n        coef_num *= facteur**(exposant\/\/2)\n        if exposant%2 == 1:\n            radicand_num *= facteur\n            \n    coef_denom, radicand_denom = 1, 1\n    for facteur, exposant in denom.items():\n        coef_denom *= facteur**(exposant\/\/2)\n        if exposant%2 == 1:\n            radicand_denom *= facteur\n            \n    return Fraction(coef_num,coef_denom), Fraction(radicand_num,radicand_denom)\n\n\"\"\"\nTrouve les \u00e9ventuelles racines d'un trin\u00f4me de degr\u00e9 2\n\"\"\"\ndef racines(*coefs):\n    if len(coefs) != 3:\n        return 'Erreur dans la saisie des coefficients.'\n    else:\n        a, b, c = coefs[0], coefs[1], coefs[2]\n        delta = b*b - 4*a*c\n        if delta &lt; 0:\n            r = f'\u0394 = {delta} &lt; 0 donc le trin\u00f4me d\\'admet aucune racine.'\n        elif delta == 0:\n            r = f'\u0394 = 0 donc le trin\u00f4me admet une racine: {Fraction(-b,2*a)}.'\n        else:\n            coef, radicand = simp(delta) # sous la forme: coef, radicand\n            if radicand == 1:\n                x1, x2 = Fraction(-b-int(delta**0.5),2*a), Fraction(-b+int(delta**0.5),2*a)\n                r = f'\u0394 = {delta} > 0 donc le trin\u00f4me admet deux racines: x\u2081 = {x1} et x\u2082 = {x2}.'\n            else:\n                c = abs(Fraction(coef,2*a))\n                if c.numerator == 1:\n                    if c.denominator == 1:\n                        r = f'\u0394 = {delta} > 0 donc le trin\u00f4me admet deux racines:\\n \\\nx\u2081 = {Fraction(-b,2*a)} + \u221a({radicand}) et \\\nx\u2082 = {Fraction(-b,2*a)} - \u221a({radicand}).'\n                    else:\n                        r = f'\u0394 = {delta} > 0 donc le trin\u00f4me admet deux racines:\\n \\\nx\u2081 = {Fraction(-b,2*a)} + \u221a({radicand})\/{c.denominator} et \\\nx\u2082 = {Fraction(-b,2*a)} - \u221a({radicand})\/{c.denominator}.'\n                else:\n                    if c.denominator == 1:\n                        r = f'\u0394 = {delta} > 0 donc le trin\u00f4me admet deux racines:\\n \\\nx\u2081 = {Fraction(-b,2*a)} + {c.numerator}\u221a({radicand}) et \\\nx\u2082 = {Fraction(-b,2*a)} - {c.numerator}\u221a({radicand}).'\n                    else:\n                        r = f'\u0394 = {delta} > 0 donc le trin\u00f4me admet deux racines:\\n \\\nx\u2081 = {Fraction(-b,2*a)} + ({c.numerator}\/{c.denominator})\u221a({radicand}) et \\\nx\u2082 = {Fraction(-b,2*a)} - ({c.numerator}\/{c.denominator})\u221a({radicand}).'\n            \n        return r<\/pre>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Voici quelques exemples de ce qu&rsquo;il donne:<\/p>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Pour trouver les racines r\u00e9elles de \\(\\frac{1}{4}x^2+\\frac{1}{3}x-\\frac{1}{5}\\): <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>>>> print( racines(Fraction(1,4),Fraction(1,3),-Fraction(1,5)) )\n\u0394 = 14\/45 > 0 donc le trin\u00f4me admet deux racines:\n x\u2081 = -2\/3 + (2\/3)\u221a(14\/5) et x\u2082 = -2\/3 - (2\/3)\u221a(14\/5).<\/code><\/pre>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Si le polyn\u00f4me est \\(x^2+x-1\\), cela donne:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>>>> print( racines(1,1,-1) )\n\u0394 = 5 > 0 donc le trin\u00f4me admet deux racines:\n x\u2081 = -1\/2 + \u221a(5)\/2 et x\u2082 = -1\/2 - \u221a(5)\/2.<\/code><\/pre>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Avec \\(x^2-5x+4\\):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>>>> print( racines(1,-5,4) )\n\u0394 = 9 > 0 donc le trin\u00f4me admet deux racines: x\u2081 = 1 et x\u2082 = 4.<\/code><\/pre>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Pour le moment, je n&rsquo;ai pas impl\u00e9ment\u00e9 de solution avec des coefficients radicaux, mais c&rsquo;est assez simple au final. Il suffit en effet d&rsquo;impl\u00e9menter une classe <em>Sqrt<\/em>.<\/p>\n\n\n\n<p class=\"is-style-Paragraph-paragraph wp-block-paragraph\">Je compl\u00e8terai cet article quand je l&rsquo;aurai fait tr\u00e8s prochainement.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Les \u00e9quations du second degr\u00e9, ou \u00e9quations quadratiques, sont tr\u00e8s faciles \u00e0 r\u00e9soudre math\u00e9matiquement, mais d\u00e8s lors que l&rsquo;on souhaite \u00e9crire un programme en Python permettant de les r\u00e9soudre, c&rsquo;est autre chose&#8230;<\/p>\n","protected":false},"author":1,"featured_media":8416,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,5],"tags":[173,334],"class_list":["post-8414","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mathematiques","category-python","tag-equations-2","tag-ia"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u00c9quations du second degr\u00e9 en Python avec IA - Mathweb.fr<\/title>\n<meta name=\"description\" content=\"Que nous propose l&#039;IA pour r\u00e9soudre des \u00e9quations du second degr\u00e9 en langage Python? Je peux faire mieux!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mathweb.fr\/euclide\/2023\/06\/20\/equations-du-second-degre-en-python-avec-ia\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u00c9quations du second degr\u00e9 en Python avec IA - Mathweb.fr\" \/>\n<meta property=\"og:description\" content=\"Que nous propose l&#039;IA pour r\u00e9soudre des \u00e9quations du second degr\u00e9 en langage Python? Je peux faire mieux!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mathweb.fr\/euclide\/2023\/06\/20\/equations-du-second-degre-en-python-avec-ia\/\" \/>\n<meta property=\"og:site_name\" content=\"Mathweb.fr\" \/>\n<meta property=\"article:published_time\" content=\"2023-06-20T09:21:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-20T09:21:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2023\/06\/articles-python-equation-second-degre-python-ia.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"740\" \/>\n\t<meta property=\"og:image:height\" content=\"198\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"St\u00e9phane Pasquet\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"St\u00e9phane Pasquet\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/06\\\/20\\\/equations-du-second-degre-en-python-avec-ia\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/06\\\/20\\\/equations-du-second-degre-en-python-avec-ia\\\/\"},\"author\":{\"name\":\"St\u00e9phane Pasquet\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"headline\":\"\u00c9quations du second degr\u00e9 en Python avec IA\",\"datePublished\":\"2023-06-20T09:21:04+00:00\",\"dateModified\":\"2023-06-20T09:21:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/06\\\/20\\\/equations-du-second-degre-en-python-avec-ia\\\/\"},\"wordCount\":566,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/06\\\/20\\\/equations-du-second-degre-en-python-avec-ia\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/articles-python-equation-second-degre-python-ia.jpg\",\"keywords\":[\"\u00e9quations\",\"ia\"],\"articleSection\":[\"Math\u00e9matiques\",\"Python\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/06\\\/20\\\/equations-du-second-degre-en-python-avec-ia\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/06\\\/20\\\/equations-du-second-degre-en-python-avec-ia\\\/\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/06\\\/20\\\/equations-du-second-degre-en-python-avec-ia\\\/\",\"name\":\"\u00c9quations du second degr\u00e9 en Python avec IA - Mathweb.fr\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/06\\\/20\\\/equations-du-second-degre-en-python-avec-ia\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/06\\\/20\\\/equations-du-second-degre-en-python-avec-ia\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/articles-python-equation-second-degre-python-ia.jpg\",\"datePublished\":\"2023-06-20T09:21:04+00:00\",\"dateModified\":\"2023-06-20T09:21:05+00:00\",\"description\":\"Que nous propose l'IA pour r\u00e9soudre des \u00e9quations du second degr\u00e9 en langage Python? Je peux faire mieux!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/06\\\/20\\\/equations-du-second-degre-en-python-avec-ia\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/06\\\/20\\\/equations-du-second-degre-en-python-avec-ia\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/06\\\/20\\\/equations-du-second-degre-en-python-avec-ia\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/articles-python-equation-second-degre-python-ia.jpg\",\"contentUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/articles-python-equation-second-degre-python-ia.jpg\",\"width\":740,\"height\":198,\"caption\":\"\u00e9quations second degr\u00e9 python ia\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2023\\\/06\\\/20\\\/equations-du-second-degre-en-python-avec-ia\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u00c9quations du second degr\u00e9 en Python avec IA\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#website\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/\",\"name\":\"Mathweb.fr\",\"description\":\"Math\u00e9matiques, LaTeX et Python\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\",\"name\":\"St\u00e9phane Pasquet\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"contentUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"width\":74,\"height\":77,\"caption\":\"St\u00e9phane Pasquet\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u00c9quations du second degr\u00e9 en Python avec IA - Mathweb.fr","description":"Que nous propose l'IA pour r\u00e9soudre des \u00e9quations du second degr\u00e9 en langage Python? Je peux faire mieux!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mathweb.fr\/euclide\/2023\/06\/20\/equations-du-second-degre-en-python-avec-ia\/","og_locale":"fr_FR","og_type":"article","og_title":"\u00c9quations du second degr\u00e9 en Python avec IA - Mathweb.fr","og_description":"Que nous propose l'IA pour r\u00e9soudre des \u00e9quations du second degr\u00e9 en langage Python? Je peux faire mieux!","og_url":"https:\/\/www.mathweb.fr\/euclide\/2023\/06\/20\/equations-du-second-degre-en-python-avec-ia\/","og_site_name":"Mathweb.fr","article_published_time":"2023-06-20T09:21:04+00:00","article_modified_time":"2023-06-20T09:21:05+00:00","og_image":[{"width":740,"height":198,"url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2023\/06\/articles-python-equation-second-degre-python-ia.jpg","type":"image\/jpeg"}],"author":"St\u00e9phane Pasquet","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"St\u00e9phane Pasquet","Dur\u00e9e de lecture estim\u00e9e":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.mathweb.fr\/euclide\/2023\/06\/20\/equations-du-second-degre-en-python-avec-ia\/#article","isPartOf":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2023\/06\/20\/equations-du-second-degre-en-python-avec-ia\/"},"author":{"name":"St\u00e9phane Pasquet","@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"headline":"\u00c9quations du second degr\u00e9 en Python avec IA","datePublished":"2023-06-20T09:21:04+00:00","dateModified":"2023-06-20T09:21:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2023\/06\/20\/equations-du-second-degre-en-python-avec-ia\/"},"wordCount":566,"commentCount":2,"publisher":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"image":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2023\/06\/20\/equations-du-second-degre-en-python-avec-ia\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2023\/06\/articles-python-equation-second-degre-python-ia.jpg","keywords":["\u00e9quations","ia"],"articleSection":["Math\u00e9matiques","Python"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.mathweb.fr\/euclide\/2023\/06\/20\/equations-du-second-degre-en-python-avec-ia\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.mathweb.fr\/euclide\/2023\/06\/20\/equations-du-second-degre-en-python-avec-ia\/","url":"https:\/\/www.mathweb.fr\/euclide\/2023\/06\/20\/equations-du-second-degre-en-python-avec-ia\/","name":"\u00c9quations du second degr\u00e9 en Python avec IA - Mathweb.fr","isPartOf":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2023\/06\/20\/equations-du-second-degre-en-python-avec-ia\/#primaryimage"},"image":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2023\/06\/20\/equations-du-second-degre-en-python-avec-ia\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2023\/06\/articles-python-equation-second-degre-python-ia.jpg","datePublished":"2023-06-20T09:21:04+00:00","dateModified":"2023-06-20T09:21:05+00:00","description":"Que nous propose l'IA pour r\u00e9soudre des \u00e9quations du second degr\u00e9 en langage Python? Je peux faire mieux!","breadcrumb":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2023\/06\/20\/equations-du-second-degre-en-python-avec-ia\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mathweb.fr\/euclide\/2023\/06\/20\/equations-du-second-degre-en-python-avec-ia\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mathweb.fr\/euclide\/2023\/06\/20\/equations-du-second-degre-en-python-avec-ia\/#primaryimage","url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2023\/06\/articles-python-equation-second-degre-python-ia.jpg","contentUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2023\/06\/articles-python-equation-second-degre-python-ia.jpg","width":740,"height":198,"caption":"\u00e9quations second degr\u00e9 python ia"},{"@type":"BreadcrumbList","@id":"https:\/\/www.mathweb.fr\/euclide\/2023\/06\/20\/equations-du-second-degre-en-python-avec-ia\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.mathweb.fr\/euclide\/"},{"@type":"ListItem","position":2,"name":"\u00c9quations du second degr\u00e9 en Python avec IA"}]},{"@type":"WebSite","@id":"https:\/\/www.mathweb.fr\/euclide\/#website","url":"https:\/\/www.mathweb.fr\/euclide\/","name":"Mathweb.fr","description":"Math\u00e9matiques, LaTeX et Python","publisher":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mathweb.fr\/euclide\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69","name":"St\u00e9phane Pasquet","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","contentUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","width":74,"height":77,"caption":"St\u00e9phane Pasquet"},"logo":{"@id":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp"}}]}},"_links":{"self":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts\/8414","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/comments?post=8414"}],"version-history":[{"count":0,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts\/8414\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/media\/8416"}],"wp:attachment":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/media?parent=8414"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/categories?post=8414"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/tags?post=8414"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}