File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/P010-VgzDBpcx.js.map
{"version":3,"file":"P010-VgzDBpcx.js","sources":["../../src/exercices/profs/P010.js"],"sourcesContent":["import { courbe } from '../../lib/2d/courbes.js'\nimport { point, tracePoint } from '../../lib/2d/points.js'\nimport { repere } from '../../lib/2d/reperes.js'\nimport { segment, vecteur } from '../../lib/2d/segmentsVecteurs.js'\nimport { rotation, translation } from '../../lib/2d/transformations.js'\nimport { tableauDeVariation } from '../../lib/mathFonctions/etudeFonction.js'\nimport { fractionSimplifiee, texFractionSigne } from '../../lib/outils/deprecatedFractions.js'\nimport { reduirePolynomeDegre3 } from '../../lib/outils/ecritures.js'\nimport { texNombre } from '../../lib/outils/texNombre.js'\nimport { mathalea2d } from '../../modules/2dGeneralites.js'\nimport { calculANePlusJamaisUtiliser, listeQuestionsToContenu, printlatex, xcas } from '../../modules/outils.js'\nimport Exercice from '../Exercice.js'\n\nexport const titre = 'Study of degree 3 functions'\nexport const ref = 'P010'\nexport const uuid = '691a8'\n\n/**\n * tableau de variation d'une fonction et tracé de la courbe (polynomes de degré <= 3)\n * @author Jean-Claude Lhote\n */\nexport default function VariationPolynomeDegre3 () {\n Exercice.call(this) // Héritage de la classe Exercice()\n this.nbQuestions = 1\n this.nbQuestionsModifiable = false\n this.nbCols = 1 // Uniquement pour la sortie LaTeX\n this.nbColsCorr = 1 // Uniquement pour la sortie LaTeX\n this.sup = '-1/-2/3/1' // Niveau de difficulté\n this.sup2 = true\n this.tailleDiaporama = 3 // Pour les exercices chronométrés. 50 par défaut pour les exercices avec du texte\n this.video = '' // Id YouTube ou url\n this.listePackages = 'tkz-tab'\n this.typeExercice = 'xcas'\n\n this.nouvelleVersion = function () {\n this.listeQuestions = [] // Liste de questions\n this.listeCorrections = [] // Liste de questions corrigées\n\n // a correct table as an example\n // escpl=size in cm between two antecedents, deltacl=distance between the border and the first and last antecedents\n // lgt = size of the first column everything is in cm\n // tabInit contains 2 tables\n // the first contains triples [header string, line height, number of pixels of estimated text width for centering]\n // the second contains a succession of strings and widths in pixels: these are the antecedents of the header line\n // tabLines contains arrays of the form ['type',...]\n // type is 'Line' for a line of signs and values. The values are given followed by their estimated width in pixels.\n // type is 'Var' for a line of variations. Variations are strings respecting a particular syntax.\n // We insert an estimated width for the possible text\n // For more information on coding variations, see this tutorial: https://zestedesavoir.com/tutoriels/439/des-tableaux-de-variations-et-de-signes-avec-latex/\n // remains to make the types 'Ima', 'Val' and 'Slope\"\n\n let a\n let b\n let c\n let a1\n let b1\n let c1\n let xx\n let xxs\n let rac = []\n let tableau\n let x1s\n let fx1s\n let x3s\n let x2s\n let delta, x1, x2, x3, X1, X3, XXs, minima, mafonction, maderivee, MaFonction, solutions\n let YMAXI, YMINI, XMINI, XMAXI, texte, scalex, scaley\n const coefF = this.sup.split('/')\n for (let i = 0; i < coefF.length; i++) {\n coefF[i] = parseFloat(coefF[i])\n }\n const vecteurs = []\n let A\n let B\n let C\n let tangente\n\n const trouverLesRacines = function (a0, b0, c0) { // Une fonction locale pour trouver les racines d'une équation du 2nd degré\n delta = b0 * b0 - 4 * a0 * c0 // on calcule les racines de f'\n if (delta < 0) {\n return []\n } else if (delta === 0) {\n return [-b0 / 2 / a0]\n }\n x1 = (-b0 - Math.sqrt(delta)) / 2 / a0\n x3 = (-b0 + Math.sqrt(delta)) / 2 / a0\n X1 = `(${-b0}-sqrt(${b0 * b0}-${4 * a0 * c0}))/${2 * a0}`\n X3 = `(${-b0}+sqrt(${b0 * b0}-${4 * a0 * c0}))/${2 * a0}`\n x1s = xcas(`simplify((${-b0}-sqrt(${delta}))/${2 * a0})`)\n x3s = xcas(`simplify((${-b0}+sqrt(${delta}))/${2 * a0})`)\n if (x3 < x1) { // on ordonne les racines de f'\n xx = x3\n xxs = x3s\n XXs = X3\n x3 = x1\n x3s = x1s\n X3 = X1\n x1 = xx\n x1s = xxs\n X1 = XXs\n }\n x1s = x1s.replace('(', '')\n x1s = x1s.replace(')', '')\n x3s = x3s.replace('(', '')\n x3s = x3s.replace(')', '')\n return [x1, x3, x1s, x3s, X1, X3]\n }\n a = parseFloat(coefF[0])\n b = parseFloat(coefF[1])\n c = parseFloat(coefF[2])\n const d = parseFloat(coefF[3])\n // [a, b, c, d] = coef_f //We recover the coefficients of the polynomial\n const fxstring = `${reduirePolynomeDegre3(a, b, c, d)}`\n if (a !== 0) { // degré 3\n a1 = 3 * a\n b1 = 2 * b\n c1 = c\n // a2 = 6 * a\n mafonction = x => a * x ** 3 + b * x ** 2 + c * x + d\n MaFonction = `${a}*x^3+${b}*x^2+${c}x+${d}`\n maderivee = x => 3 * a * x ** 2 + 2 * b * x + c\n\n if (a < 0) {\n if (maderivee(-b / 3 / a) > 0) { // la dérivée croit jusqu'à un maximum >0 , il y a deux zéros donc négatif-positif-négatif\n rac = trouverLesRacines(a1, b1, c1)\n if (this.sup3) {\n tableau = tableauDeVariation({\n colorBackground: 'white',\n escpl: 6,\n delatcl: 1,\n lgt: 3.5,\n hauteurLignes: [30, 20, 30],\n tabInit: [[['$x$', 3, 30], ['$f\\'(x)$', 2, 60], ['$f(x)$', 5, 60]],\n ['$-\\\\infty$', 30, `$${rac[2]}$`, 70, `$${rac[3]}$`, 70, '$+\\\\infty$', 30]],\n tabLines:\n [['line', 30, '', 0, '-', 20, 'z', 20, '+', 20, 'z', 20, '-', 20],\n ['Var', 10, '+/$+\\\\infty$', 30, `-/$${xcas(`simplifier(subst(${MaFonction},x=${rac[4]}))`)}$`, 90, `+/$${xcas(`simplifier(subst(${MaFonction},x=${rac[5]}))`)}$`, 90, '-/$-\\\\infty$', 30]\n ]\n })\n } else {\n tableau = tableauDeVariation({\n colorBackground: 'white',\n escpl: 5,\n delatcl: 0.8,\n lgt: 3.5,\n hauteurLignes: [30, 20, 30],\n tabInit: [[['$x$', 3, 15], ['$f\\'(x)$', 2, 30], ['$f(x)$', 5, 25]],\n ['$-\\\\infty$', 30, `$${rac[2]}$`, 70, `$${rac[3]}$`, 70, '$+\\\\infty$', 30]],\n tabLines:\n [['line', 30, '', 0, '-', 20, 'z', 20, '+', 20, 'z', 20, '-', 20],\n ['Var', 10, '+/$+\\\\infty$', 30, `-/$${texNombre(mafonction(rac[0]), 2)}$`, 50, `+/$${texNombre(mafonction(rac[1]), 2)}$`, 50, '-/$-\\\\infty$', 30]\n ]\n })\n }\n XMINI = Math.round(rac[0]) - 2\n XMAXI = Math.round(rac[1]) + 2\n YMINI = Math.min(Math.round(mafonction(XMINI)), Math.round(mafonction(XMAXI)), Math.round(mafonction(rac[0])), Math.round(mafonction(rac[1])))\n YMAXI = Math.max(Math.round(mafonction(XMINI)), Math.round(mafonction(XMAXI)), Math.round(mafonction(rac[0])), Math.round(mafonction(rac[1])))\n scalex = Math.abs(10 / (XMAXI - XMINI))\n scaley = 20 / 10 ** Math.ceil(Math.log10(Math.abs(YMAXI - YMINI)))\n A = point(rac[0] * scalex, mafonction(rac[0]) * scaley)\n B = translation(A, vecteur(scalex, maderivee(rac[0]) * scaley))\n C = rotation(B, A, 180)\n tangente = segment(C, B, 'blue')\n tangente.styleExtremites = '<->'\n vecteurs.push(tangente)\n A = point(rac[1] * scalex, mafonction(rac[1]) * scaley)\n B = translation(A, vecteur(scalex, maderivee(rac[1]) * scaley))\n C = rotation(B, A, 180)\n tangente = segment(C, B, 'blue')\n tangente.styleExtremites = '<->'\n vecteurs.push(tangente)\n A = point(-b / (3 * a) * scalex, mafonction(-b / (3 * a)) * scaley)\n vecteurs.push(tracePoint(A))\n B = translation(A, vecteur(scalex, maderivee(-b / (3 * a)) * scaley))\n C = rotation(B, A, 180)\n tangente = segment(C, B, 'red')\n tangente.styleExtremites = '<->'\n vecteurs.push(tangente)\n } else { // la dérivée croit jusqu'at a maximum <0, there is no zero and therefore negative over the entire interval\n tableau = tableauDeVariation({\n colorBackground: 'white',\n escpl: 5,\n delatcl: 0.8,\n lgt: 3.5,\n hauteurLignes: [30, 20, 30],\n tabInit: [[['$x$', 3, 15], ['$f\\'(x)$', 2, 30], ['$f(x)$', 5, 25]],\n ['$-\\\\infty$', 30, '$+\\\\infty$', 30]],\n tabLines:\n [['line', 30, '', 0, '-', 20],\n ['Var', 10, '+/$+\\\\infty$', 30, '-/$-\\\\infty$', 30]\n ]\n })\n XMINI = -4\n XMAXI = 4\n YMINI = Math.min(Math.round(mafonction(XMINI)), Math.round(mafonction(XMAXI)))\n YMAXI = Math.max(Math.round(mafonction(XMINI)), Math.round(mafonction(XMAXI)))\n scalex = Math.abs(10 / (XMAXI - XMINI))\n scaley = 20 / 10 ** Math.ceil(Math.log10(Math.abs(YMAXI - YMINI)))\n A = point(-b / (3 * a) * scalex, mafonction(-b / (3 * a)) * scaley)\n vecteurs.push(tracePoint(A))\n B = translation(A, vecteur(scalex, maderivee(-b / (3 * a)) * scaley))\n C = rotation(B, A, 180)\n tangente = segment(C, B, 'red')\n tangente.styleExtremites = '<->'\n vecteurs.push(tangente)\n }\n } else {\n if (maderivee(-b / 3 / a) > 0) { // la dérivée décroit jusqu'at a minimum >0, there is no zero therefore positive over the entire interval\n tableau = tableauDeVariation({\n colorBackground: 'white',\n escpl: 3.5,\n deltacl: 0.6,\n lgt: 3.5,\n hauteurLignes: [30, 20, 30],\n tabInit: [[['$x$', 3, 15], ['$f\\'(x)$', 2, 30], ['$f(x)$', 5, 25]],\n ['$-\\\\infty$', 30, '$+\\\\infty$', 30]],\n tabLines:\n [['line', 30, '', 0, '+', 20],\n ['Var', 20, '-/$-\\\\infty$', 30, '+/$+\\\\infty$', 30]\n ]\n })\n XMINI = -4\n XMAXI = 4\n YMINI = Math.min(Math.round(mafonction(XMINI)), Math.round(mafonction(XMAXI)))\n YMAXI = Math.max(Math.round(mafonction(XMINI)), Math.round(mafonction(XMAXI)))\n scalex = Math.abs(10 / (XMAXI - XMINI))\n scaley = 20 / 10 ** Math.ceil(Math.log10(Math.abs(YMAXI - YMINI)))\n A = point(-b / (3 * a) * scalex, mafonction(-b / (3 * a)) * scaley)\n vecteurs.push(tracePoint(A))\n B = translation(A, vecteur(scalex, maderivee(-b / (3 * a)) * scaley))\n C = rotation(B, A, 180)\n tangente = segment(C, B, 'red')\n tangente.styleExtremites = '<->' /\n vecteurs.push(tangente)\n } else { // la dérivée décroit jusqu'à un minimum <0 , il y a deux zéros donc positif-négatif-positif\n rac = trouverLesRacines(a1, b1, c1)\n if (this.sup3) {\n tableau = tableauDeVariation({\n colorBackground: 'white',\n escpl: 3.5,\n delatcl: 0.8,\n lgt: 3.5,\n tabInit: [[['$x$', 3, 15], ['$f\\'(x)$', 2, 30], ['$f(x)$', 5, 25]],\n ['$-\\\\infty$', 30, `$${texNombre(rac[0], 2)}$`, 60, `$${texNombre(rac[1], 2)}$`, 60, '$+\\\\infty$', 30]],\n tabLines:\n [['line', 30, '', 0, '+', 20, 'z', 20, '-', 20, 'z', 20, '+', 20],\n ['Var', 10, '-/$-\\\\infty$', 30, `+/$${xcas(`simplifier(subst(${MaFonction},x=${rac[4]}))`)}$`, 90, `-/$${xcas(`simplifier(subst(${MaFonction},x=${rac[5]}))`)}$`, 90, '+/$+\\\\infty$', 30]\n ]\n })\n } else {\n tableau = tableauDeVariation({\n colorBackground: 'white',\n escpl: 3.5,\n delatcl: 0.8,\n lgt: 3.5,\n tabInit: [[['$x$', 3, 15], ['$f\\'(x)$', 2, 30], ['$f(x)$', 5, 25]],\n ['$-\\\\infty$', 30, `$${texNombre(rac[0], 2)}$`, 60, `$${texNombre(rac[1], 2)}$`, 60, '$+\\\\infty$', 30]],\n tabLines:\n [['line', 30, '', 0, '+', 20, 'z', 20, '-', 20, 'z', 20, '+', 20],\n ['Var', 10, '-/$-\\\\infty$', 30, `+/$${texNombre(mafonction(rac[0]), 2)}$`, 50, `-/$${texNombre(mafonction(rac[1]), 2)}$`, 50, '+/$+\\\\infty$', 30]\n ]\n })\n }\n XMINI = Math.round(rac[0]) - 2\n XMAXI = Math.round(rac[1]) + 2\n YMINI = Math.min(Math.round(mafonction(XMINI)), Math.round(mafonction(XMAXI)), Math.round(mafonction(rac[0])), Math.round(mafonction(rac[1])))\n YMAXI = Math.max(Math.round(mafonction(XMINI)), Math.round(mafonction(XMAXI)), Math.round(mafonction(rac[0])), Math.round(mafonction(rac[1])))\n scalex = Math.abs(10 / (XMAXI - XMINI))\n scaley = 20 / 10 ** Math.ceil(Math.log10(Math.abs(YMAXI - YMINI)))\n A = point(rac[0] * scalex, mafonction(rac[0]) * scaley)\n B = translation(A, vecteur(scalex, maderivee(rac[0]) * scaley))\n C = rotation(B, A, 180)\n tangente = segment(C, B, 'blue')\n tangente.styleExtremites = '<->'\n vecteurs.push(tangente)\n A = point(rac[1] * scalex, mafonction(rac[1]) * scaley)\n B = translation(A, vecteur(scalex, maderivee(rac[1]) * scaley))\n C = rotation(B, A, 180)\n tangente = segment(C, B, 'blue')\n tangente.styleExtremites = '<->'\n vecteurs.push(tangente)\n A = point(-b / (3 * a) * scalex, mafonction(-b / (3 * a)) * scaley)\n vecteurs.push(tracePoint(A))\n B = translation(A, vecteur(scalex, maderivee(-b / (3 * a)) * scaley))\n C = rotation(B, A, 180)\n tangente = segment(C, B, 'red')\n tangente.styleExtremites = '<->'\n vecteurs.push(tangente)\n }\n }\n } else if (b !== 0) { // degré 2\n a = b\n b = c\n c = d\n mafonction = x => a * x ** 2 + b * x + c\n maderivee = x => 2 * a * x + b\n a1 = 2 * a\n b1 = b\n x1 = -b1 / a1\n x2 = -b / (a * 2)\n minima = (-b * b + 4 * a * c) / 4 / a\n if (b !== 0) {\n x2s = `${texFractionSigne(fractionSimplifiee(-b, 2 * a)[0], fractionSimplifiee(-b, 2 * a)[1])}`\n } else {\n x2s = '0'\n }\n fx1s = `${texFractionSigne(fractionSimplifiee(-b * b + 4 * a * c, 4 * a)[0], fractionSimplifiee(-b * b + 4 * a * c, 4 * a)[1])}`\n if (a > 0) {\n if (minima < 0) { // f(x)=0 a deux solutions\n rac = trouverLesRacines(a, b, c)\n tableau = tableauDeVariation({\n colorBackground: 'white',\n escpl: 3.5,\n delatcl: 0.8,\n lgt: 3.5,\n hauteurLignes: [20, 20, 20, 20, 20],\n tabInit: [[['$x$', 3, 15], ['$f\\'(x)$', 2, 30], ['$f(x)$', 5, 25]],\n ['$-\\\\infty$', 30, `$${rac[2]}$`, 60, `$${x2s}$`, 60, `$${rac[3]}$`, 60, '$+\\\\infty$', 30]],\n tabLines:\n [['line', 30, 'R/', 0, 'R/', 0, '-', 20, 'R/', 0, 'z', 20, 'R/', 0, '+', 20, 'R/', 0],\n ['Var', 10, '+/$+\\\\infty$', 30, 'R/', 0, `-/$${fx1s}$`, 50, 'R/', 0, '+/$+\\\\infty$', 30],\n ['Ima', 1, 3, '$0$', 12],\n ['Ima', 3, 5, '$0$', 12]\n ]\n })\n XMINI = Math.round(x2 - 3)\n XMAXI = Math.round(x2 + 3)\n YMINI = Math.round(mafonction(x2)) - 2\n YMAXI = Math.max(Math.round(mafonction(XMINI)), Math.round(mafonction(XMAXI)), Math.round(mafonction(x2)))\n scalex = Math.abs(10 / (XMAXI - XMINI))\n scaley = 20 / 10 ** Math.ceil(Math.log10(Math.abs(YMAXI - YMINI)))\n A = point(x2 * scalex, mafonction(x2) * scaley)\n B = translation(A, vecteur(scalex, maderivee(x2) * scaley))\n C = rotation(B, A, 180)\n tangente = segment(C, B, 'blue')\n tangente.styleExtremites = '<->'\n vecteurs.push(tangente)\n } else if (minima > 0) { // f(x)=0 n'a pas de solution f(x)>0 pour tout x\n tableau = tableauDeVariation({\n colorBackground: 'white',\n escpl: 3.5,\n delatcl: 0.8,\n lgt: 3.5,\n hauteurLignes: [20, 20, 20, 20, 20],\n tabInit: [[['$x$', 3, 15], ['$f\\'(x)$', 2, 30], ['$f(x)$', 5, 25]],\n ['$-\\\\infty$', 30, `$${x2s}$`, 60, '$+\\\\infty$', 30]],\n tabLines:\n [['line', 30, 'R/', 0, '-', 20, 'z', 20, '+', 20],\n ['Var', 10, '+/$+\\\\infty$', 30, `-/$${fx1s}$`, 50, '+/$+\\\\infty$', 30]\n ]\n })\n XMINI = Math.round(x2) - 3\n XMAXI = Math.round(x2) + 3\n YMINI = -10\n YMAXI = Math.max(Math.round(mafonction(XMINI)), Math.round(mafonction(XMAXI)), Math.round(mafonction(x2)))\n scalex = Math.abs(10 / (XMAXI - XMINI))\n scaley = 20 / 10 ** Math.ceil(Math.log10(Math.abs(YMAXI - YMINI)))\n A = point(x2 * scalex, mafonction(x2) * scaley)\n B = translation(A, vecteur(scalex, maderivee(x2) * scaley))\n C = rotation(B, A, 180)\n tangente = segment(C, B, 'blue')\n tangente.styleExtremites = '<->'\n vecteurs.push(tangente)\n } else { // f(x)=0 a une solution unique : minima=0\n tableau = tableauDeVariation({\n colorBackground: 'white',\n escpl: 3.5,\n delatcl: 0.8,\n lgt: 3.5,\n hauteurLignes: [20, 20, 20, 20, 20],\n tabInit: [[['$x$', 3, 15], ['$f\\'(x)$', 2, 30], ['$f(x)$', 5, 25]],\n ['$-\\\\infty$', 30, `$${x2s}$`, 60, '$+\\\\infty$', 30]],\n tabLines:\n [['line', 30, 'R/', 0, '-', 20, 'z', 20, '+', 20],\n ['Var', 10, '+/$+\\\\infty$', 30, '-/$0$', 50, '+/$+\\\\infty$', 30]\n ]\n })\n XMINI = Math.round(x2) - 3\n XMAXI = Math.round(x2) + 3\n YMINI = -10\n YMAXI = Math.max(Math.round(mafonction(XMINI)), Math.round(mafonction(XMAXI)), Math.round(mafonction(x2)))\n scalex = Math.abs(10 / (XMAXI - XMINI))\n scaley = 20 / 10 ** Math.ceil(Math.log10(Math.abs(YMAXI - YMINI)))\n A = point(x2 * scalex, mafonction(x2) * scaley)\n B = translation(A, vecteur(scalex, maderivee(x2) * scaley))\n C = rotation(B, A, 180)\n tangente = segment(C, B, 'blue')\n tangente.styleExtremites = '<->'\n vecteurs.push(tangente)\n }\n } else { // a<0\n if (minima > 0) { // f(x)=0 a deux solutions\n rac = trouverLesRacines(a, b, c)\n tableau = tableauDeVariation({\n colorBackground: 'white',\n escpl: 3.5,\n delatcl: 0.8,\n lgt: 3.5,\n hauteurLignes: [20, 20, 20, 20, 20],\n tabInit: [[['$x$', 3, 15], ['$f\\'(x)$', 2, 30], ['$f(x)$', 5, 25]],\n ['$-\\\\infty$', 30, `$${rac[2]}$`, 60, `$${x2s}$`, 60, `$${rac[3]}$`, 60, '$+\\\\infty$', 30]],\n tabLines:\n [['line', 30, 'R/', 0, 'R/', 0, '+', 20, 'R/', 0, 'z', 20, 'R/', 0, '-', 20, 'R/', 0],\n ['Var', 10, '-/$-\\\\infty$', 30, 'R/', 0, `+/$${fx1s}$`, 50, 'R/', 0, '-/$-\\\\infty$', 30],\n ['Ima', 1, 3, '$0$', 12],\n ['Ima', 3, 5, '$0$', 12]\n ]\n })\n XMINI = Math.round(x2) - 3\n XMAXI = Math.round(x2) + 3\n YMINI = Math.min(Math.round(mafonction(XMINI)), Math.round(mafonction(XMAXI)), Math.round(mafonction(x2)))\n YMAXI = Math.round(mafonction(x2)) + 2\n scalex = Math.abs(10 / (XMAXI - XMINI))\n scaley = 20 / 10 ** Math.ceil(Math.log10(Math.abs(YMAXI - YMINI)))\n A = point(x2 * scalex, mafonction(x2) * scaley)\n B = translation(A, vecteur(scalex, maderivee(x2) * scaley))\n C = rotation(B, A, 180)\n tangente = segment(C, B, 'blue')\n tangente.styleExtremites = '<->'\n vecteurs.push(tangente)\n } else if (minima < 0) { // f(x)=0 n'a pas de solution f(x)<0 pour tout x\n tableau = tableauDeVariation({\n colorBackground: 'white',\n escpl: 3.5,\n delatcl: 0.8,\n lgt: 3.5,\n hauteurLignes: [20, 20, 20, 20, 20],\n tabInit: [[['$x$', 3, 15], ['$f\\'(x)$', 2, 30], ['$f(x)$', 5, 25]],\n ['$-\\\\infty$', 30, `$${x2s}$`, 60, '$+\\\\infty$', 30]],\n tabLines:\n [['line', 30, 'R/', 0, '+', 20, 'z', 20, '-', 20],\n ['Var', 10, '-/$-\\\\infty$', 30, `+/$${fx1s}$`, 50, '-/$-\\\\infty$', 30]\n ]\n })\n XMINI = Math.round(x2) - 3\n XMAXI = Math.round(x2) + 3\n YMINI = Math.min(Math.round(mafonction(XMINI)), Math.round(mafonction(XMAXI)), Math.round(mafonction(x2)))\n YMAXI = 10\n scalex = Math.abs(10 / (XMAXI - XMINI))\n scaley = 20 / 10 ** Math.ceil(Math.log10(Math.abs(YMAXI - YMINI)))\n A = point(x2 * scalex, mafonction(x2) * scaley)\n B = translation(A, vecteur(scalex, maderivee(x2) * scaley))\n C = rotation(B, A, 180)\n tangente = segment(C, B, 'blue')\n tangente.styleExtremites = '<->'\n vecteurs.push(tangente)\n } else { // f(x)=0 a une solution unique : minima=0 désigne ici un maximum\n tableau = tableauDeVariation({\n colorBackground: 'white',\n escpl: 3.5,\n delatcl: 0.8,\n lgt: 3.5,\n hauteurLignes: [20, 20, 20, 20, 20],\n tabInit: [[['$x$', 3, 15], ['$f\\'(x)$', 2, 30], ['$f(x)$', 5, 25]],\n ['$-\\\\infty$', 30, `$${x2s}$`, 60, '$+\\\\infty$', 30]],\n tabLines:\n [['line', 30, 'R/', 0, '+', 20, 'z', 20, '-', 20],\n ['Var', 10, '-/$-\\\\infty$', 30, '+/$0$', 12, '-/$-\\\\infty$', 30]\n ]\n })\n XMINI = Math.round(x2) - 3\n XMAXI = Math.round(x2) + 3\n YMINI = Math.min(Math.round(mafonction(XMINI)), Math.round(mafonction(XMAXI)), Math.round(mafonction(x2)))\n YMAXI = 10\n scalex = Math.abs(10 / (XMAXI - XMINI))\n scaley = 20 / 10 ** Math.ceil(Math.log10(Math.abs(YMAXI - YMINI)))\n A = point(x2 * scalex, mafonction(x2) * scaley)\n B = translation(A, vecteur(scalex, maderivee(x2) * scaley))\n C = rotation(B, A, 180)\n tangente = segment(C, B, 'blue')\n tangente.styleExtremites = '<->'\n vecteurs.push(tangente)\n }\n }\n } else if (c !== 0) { // degré 1\n mafonction = x => c * x + d\n maderivee = () => c\n x2 = -d / c\n if (c > 0) { // croissante\n tableau = tableauDeVariation({\n colorBackground: 'white',\n escpl: 3.5,\n delatcl: 0.8,\n lgt: 3.5,\n hauteurLignes: [20, 20, 20, 20, 20],\n tabInit: [[['$x$', 3, 15], ['$f\\'(x)$', 2, 30], ['$f(x)$', 5, 25]],\n ['$-\\\\infty$', 30, `$${texFractionSigne(-d, c)}$`, 60, '$+\\\\infty$', 30]],\n tabLines:\n [['line', 30, 'R/', 0, 'R/', 0, '+', 20, 'R/', 0],\n ['Var', 10, '-/$-\\\\infty$', 30, 'R/', 0, '+/$+\\\\infty$', 30],\n ['Ima', 1, 3, '$0$', 12]\n ]\n })\n XMINI = Math.round(x2) - 4\n XMAXI = Math.round(x2) + 4\n YMINI = Math.round(mafonction(x2)) - 4\n YMAXI = Math.round(mafonction(x2)) + 4\n } else { // décroissante\n tableau = tableauDeVariation({\n colorBackground: 'white',\n escpl: 3.5,\n delatcl: 0.8,\n lgt: 3.5,\n hauteurLignes: [20, 20, 20, 20, 20],\n tabInit: [[['$x$', 3, 15], ['$f\\'(x)$', 2, 30], ['$f(x)$', 5, 25]],\n ['$-\\\\infty$', 30, `$${texFractionSigne(-d, c)}$`, 60, '$+\\\\infty$', 30]],\n tabLines:\n [['line', 30, 'R/', 0, 'R/', 0, '-', 20, 'R/', 0],\n ['Var', 10, '+/$+\\\\infty$', 30, 'R/', 0, '-/$-\\\\infty$', 30],\n ['Ima', 1, 3, '$0$', 12]\n ]\n })\n XMINI = Math.round(x2) - 4\n XMAXI = Math.round(x2) + 4\n YMINI = Math.round(mafonction(x2)) - 4\n YMAXI = Math.round(mafonction(x2)) + 4\n }\n } else { // fonction constante\n mafonction = () => d\n maderivee = () => 0\n\n tableau = tableauDeVariation({\n colorBackground: 'white',\n escpl: 3.5,\n delatcl: 0.8,\n lgt: 3.5,\n tabInit: [[['$x$', 3, 15], ['$f\\'(x)$', 2, 30], ['$f(x)$', 3, 25]],\n ['$-\\\\infty$', 30, '$+\\\\infty$', 30]],\n tabLines:\n [['line', 30, 'R/', 0, '$0$', 20, 'R/', 0],\n ['Var', 10, `+/$${d}$`, 30, `+/$${d}$`, 30]\n ]\n })\n XMINI = Math.round(x2) - 3\n XMAXI = Math.round(x2) + 3\n if (d > 0) {\n YMINI = 0\n }\n YMAXI = 10 ** (Math.ceil(Math.log10(d)))\n }\n const pas = calculANePlusJamaisUtiliser(10 ** Math.ceil(Math.log10((Math.abs((YMAXI - YMINI) / 20)))) / 2)\n scalex = Math.abs(10 / (XMAXI - XMINI))\n scaley = calculANePlusJamaisUtiliser(20 / 10 ** Math.ceil(Math.log10(Math.abs(YMAXI - YMINI))))\n\n const monrepere = repere({\n xUnite: scalex,\n yUnite: scaley,\n xMin: XMINI,\n xMax: XMAXI,\n yMin: YMINI - YMINI % pas,\n yMax: YMAXI,\n grille: true,\n xThickDistance: 1,\n yThickDistance: pas\n })\n const macourbe = courbe(mafonction, { repere: monrepere, step: 0.1, epaisseur: 1 })\n texte = 'Study of variations of the function $f(x)='\n texte += `${printlatex(fxstring)}$.<br>`\n texte += tableau\n if (this.sup2) {\n texte += '<br>' + mathalea2d({\n xmin: (XMINI - 1) * scalex,\n ymin: (YMINI - 1) * scaley,\n xmax: (XMAXI + 2) * scalex,\n ymax: (YMAXI + 1) * scaley,\n pixelsParCm: 30\n }, macourbe, monrepere, vecteurs) + '<br>'\n solutions = xcas('fsolve(' + fxstring + '=0,x)').replace('[', '').replace(']', '').split(',')\n if (solutions[0] === '') {\n texte += 'Looking at the variation table of the function $f$, there is no solution to the equation $f(x)=0$.'\n } else {\n texte += 'By graphic reading we can read the solutions of $f(x)=0$:'\n if (solutions.length === 1) {\n texte += `$x\\\\approx${texNombre(Number(solutions[0]), 1)}$`\n } else {\n if (solutions.length === 2) {\n texte += `$x\\\\approx${texNombre(Number(solutions[0]), 1)}$ and $x\\\\approx${texNombre(Number(solutions[1]), 1)}$`\n } else {\n texte += `$x\\\\approx${texNombre(Number(solutions[0]), 1)}$, $x\\\\approx${texNombre(Number(solutions[1]), 1)}$ and $x\\\\approx${texNombre(Number(solutions[2]), 1)}$`\n }\n }\n }\n }\n\n const texteCorr = ''\n\n this.listeQuestions.push(texte)\n this.listeCorrections.push(texteCorr)\n\n listeQuestionsToContenu(this)\n }\n this.besoinFormulaireTexte = ['Coefficients of $ax^3+bx^2+cx+d$ separated by /', '-1/-2/3/1 for example']\n this.besoinFormulaire2CaseACocher = ['Graphic Representation', true]\n this.besoinFormulaire3CaseACocher = ['Exact values', false]\n}\n"],"names":["titre","ref","uuid","VariationPolynomeDegre3","Exercice","a","b","c","a1","b1","c1","xx","xxs","rac","tableau","x1s","fx1s","x3s","x2s","delta","x1","x2","x3","X1","X3","XXs","minima","mafonction","maderivee","MaFonction","solutions","YMAXI","YMINI","XMINI","XMAXI","texte","scalex","scaley","coefF","i","vecteurs","A","B","C","tangente","trouverLesRacines","a0","b0","c0","xcas","d","fxstring","reduirePolynomeDegre3","x","tableauDeVariation","texNombre","point","translation","vecteur","rotation","segment","tracePoint","texFractionSigne","fractionSimplifiee","pas","calculANePlusJamaisUtiliser","monrepere","repere","macourbe","courbe","printlatex","mathalea2d","texteCorr","listeQuestionsToContenu"],"mappings":"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"}