How to use the pyromaths.classes.Polynome.TeX function in pyromaths

To help you get started, we’ve selected a few pyromaths examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github Pyromaths / pyromaths / src / pyromaths / ex / lycee / ExoPolynome.py View on Github external
x_x2 = "$%s$," % (TeX(x2))
            ligne_valeurs += [x2]
            sign_x2 = ",0,%s" % (signe_a)
            signes += [signe_a]
        ligne_valeurs += [bornesup]
        # Ne rien dire si une racine est égale à une borne
        compare = [compare[0] - (x1 == borneinf) - (x2 == borneinf), compare[1] - (x1 == bornesup) - (x2 == bornesup)]

        if sum(compare) == 2 :
            # les deux racines sont à supprimer
            cor.append(_("\\par Or $%s$ et $%s$ ne sont pas dans $%s$.") % (TeX(x1), TeX(x2), intervalle))

        elif compare[0] == 1:
            cor.append(_("\\par Or $%s$ n'est pas dans $%s$.") % (TeX(x1), intervalle))
        elif compare[1] == 1:
            cor.append(_("\\par Or $%s$ n'est pas dans $%s$.") % (TeX(x2), intervalle))
        cor.append("Ainsi \\par")

        str_valeurs = "{$%s$, %s %s $%s$}" % (TeX(borneinf), x_x1, x_x2, TeX(bornesup))
        str_signes = "\\tkzTabLine{%s%s%s}" % (sign_x1, entreracines, sign_x2)

#===============================================================================
#         str_valeurs = "\\tx{%s}& \\tx{%s}& %s %s & \\tx{%s}\\cr" % (var, TeX(borneinf), x_x1, x_x2, TeX(bornesup))
#
#         str_signe = "\\tx{%s(%s)}&%s %s %s&\\cr" % (nomP, var, sign_x1, entreracines, sign_x2)
#===============================================================================

    cor.append("\\begin{tikzpicture}\n\\tkzTabInit[espcl=2.5]")
    cor.append(str_variables)
    cor.append(str_valeurs)
    cor.append(str_signes)
    cor.append(r'\end{tikzpicture}\par')
github Pyromaths / pyromaths / src / pyromaths / ex / lycee / ExoPolynome.py View on Github external
cor.append("\\\\")
    if Q[1] != 1:
        x0 = eval(priorites('-%r*Fraction(1)/%r' % (Q[0], Q[1]))[-1][0])
        if isinstance(x0, (Fraction, RacineDegre2)):
            x1 = x0.simplifie()
        else:
            x1 = x0
        cor.append("%s&=%s" % (var, Fraction(-Q[0], Q[1])))
        cor.append("\\\\")
        if isinstance(x0, (Fraction, RacineDegre2)) and (not isinstance(x1, (Fraction, RacineDegre2)) or x0.d != x1.d):
            cor.append("%s&=%s" % (var, TeX(x1)))
            cor.append("\\\\")
    cor.pop(-1)
    cor.append("\\end{align*}")
    cor.append(_(u"Or $%s$ n'est pas dans l'intervalle $[%s~;~%s]$ et comme $%s$ est un quotient de polynômes, alors $%s$ est définie et dérivable sur $I$.") % \
               (TeX(VI), Intervalle[0], Intervalle[1], nomf, nomf))
    exo.append(_(u"\\item Déterminer $%s'(%s)$ pour tout $%s\in[%s~;~%s]$.") % \
          (nomf, var, var, Intervalle[0], Intervalle[1]))
    cor.append(_(u"\\item Déterminer $%s'(%s)$ pour tout $%s\in[%s~;~%s]$.") % \
          (nomf, var, var, Intervalle[0], Intervalle[1]))
    cor.append(u"$$%s'(%s)=%s=%s$$" % (nomf, var, f_derivee, f_derivee_simplifiee))
    exo.append(_(u"\\item En déduire le sens de variations de $%s$ sur $I$.") % (nomf))
    cor.append(_(u"\\item En déduire le sens de variations de $%s$ sur $I$.\\par") % (nomf))
    if numerateur_simplifie.degre_max == 0:
        cor.append(_(u" Comme $%s$ est un carré, il est toujours positif.\\\\") % (denominateur))
        f_xmin = eval(priorites('%r*Fraction(1)/%r' % (P(Intervalle[0]), Q(Intervalle[0])))[-1][0])
        f_xmax = eval(priorites('%r*Fraction(1)/%r' % (P(Intervalle[1]), Q(Intervalle[1])))[-1][0])
        if isinstance(f_xmin, (Fraction, RacineDegre2)): f_xmin = f_xmin.simplifie()
        if isinstance(f_xmax, (Fraction, RacineDegre2)): f_xmax = f_xmax.simplifie()
        f_xmin = TeX(f_xmin)
        f_xmax = TeX(f_xmax)
        if numerateur_simplifie[0] < 0:
github Pyromaths / pyromaths / src / pyromaths / ex / lycee / ExoPolynome.py View on Github external
cor.append("= %s $$" % (TeX(limite_simple)))
    cor.append("Pour $%s=%s$, on a $%s=%s" % (var, TeX(VI), P, TeX(P(VI))))
    if P(VI) < 0:
        limites = ["-\\infty", "+\\infty"]
        cor.append("<0$.\\\\")
    elif P(VI) > 0:
        limites = ["+\\infty", "-\\infty"]
        cor.append(">0$.\\\\")
    else:cor.append("$.\\\\")
        # Impossible car on test (a1*b2/a2 - b1)!=0

    VIplus = "\\substack{%s\\to %s\\\\%s>%s}" % (var, fTeX(VI), var, fTeX(VI))
    VImoins = "\\substack{%s\\to %s\\\\%s<%s}" % (var, fTeX(VI), var, fTeX(VI))
    if Q[1] < 0:
        cor.append(_("De plus, $%s>0$ si $%s<%s$") % (Q, var, TeX(VI)))
        cor.append(_("et  $%s<0$ si $%s>%s$.\\\\") % (Q, var, TeX(VI)))
    else:
        cor.append(_("De plus, $%s<0$ si $%s<%s$") % (Q, var, TeX(VI)))
        cor.append(_("et  $%s>0$ si $%s>%s$.\\\\") % (Q, var, TeX(VI)))

    cor.append(u"$$\\lim_{%s}\\dfrac{%s}{%s}=%s $$" % (VImoins, P, Q, limites[0]))
    cor.append(u"$$\\lim_{%s}\\dfrac{%s}{%s}=%s $$" % (VIplus, P, Q, limites[1]))



    exo.append(_(u"\\item Dresser le tableau de variations de $%s$ sur $\\mathcal{D}_{%s}$.") % (nomf, nomf))
    cor.append(_(u"\\item Dresser le tableau de variations de $%s$ sur $\\mathcal{D}_{%s}$.\\par") % (nomf, nomf))
    if numerateur_simplifie.degre_max == 0:
        cor.append(_(u" Comme $%s$ est un carré, il est toujours positif.\\\\") % (denominateur))
        f_xmin = eval(priorites('-%r*Fraction(1)/%r' % (P[1], Q[1]))[-1][0])
        if isinstance(f_xmin, (Fraction, RacineDegre2)):
            f_xmin = f_xmin.simplifie()
github Pyromaths / pyromaths / src / pyromaths / ex / lycee / ExoPolynome.py View on Github external
exo = ["\\exercice",
        "\\begin{enumerate}"]
    cor = ["\\exercice*",
         "\\begin{enumerate}"]
    nomP = "P"
    for i in range(len(Poly)):
        P = Poly[i]
        borneinf, bornesup = intervalles[i]
        if borneinf == float("-inf") and bornesup == float("inf"):
            TeXintervalle = "\\mathbb R"
        else:
            if borneinf != float("-inf"):
                TeXintervalle = "["
            else:
                TeXintervalle = "]"
            TeXintervalle += "%s~;~%s" % (TeX(borneinf), TeX(bornesup))
            if bornesup == float("inf"):
                TeXintervalle += "["
            else:
                TeXintervalle += "]"
        exo.append(_(u"\\item Étudier le signe du polynôme $%s=%s$ sur $I=%s$.") % (nomP, P, TeXintervalle))
        cor.append(_(u"\\item Étudier le signe du polynôme $%s=%s$ sur $I=%s$.\\par") % (nomP, P, TeXintervalle))

        delta, dummy, racines, dummy, dummy = factorisation_degre2(P, factorisation=False)
        redaction_racines(P, nomP, var, cor)
        tableau_de_signe(P, nomP, delta, racines, cor, borneinf, bornesup, detail=False)
    exo.append("\\end{enumerate}")
    cor.append("\\end{enumerate}")
    return exo, cor
github Pyromaths / pyromaths / src / pyromaths / ex / lycee / ExoPolynome.py View on Github external
def tableau_de_signe(P, nomP, delta, racines, cor, borneinf=float("-inf"), bornesup=float("+inf"), detail=False):
    '''Étudie le signe d'un polynôme de degré2'''
    ''' ne fonctionne pas si on a pas borneinf < x1< x2  0]  # Ca donne bien ce qu'on veut...
    signes = []
    str_variables = "{$%s$/1, $%s\\,(x)$/1}" % (var, nomP)
    if delta < 0:
        cor.append(_("Comme $\\Delta <0$, $%s(%s)$ ne s'annule pas et est toujours du signe de $a$") % (nomP, var))
        cor.append(_("Ainsi "))
        str_valeurs = "{$%s$,$%s$}" % (TeX(borneinf), TeX(bornesup))
        str_signes = "\\tkzTabLine{,%s}" % signe_a
        # str_valeurs = "\\tx{%s}&\\tx{%s}&& \\tx{%s}\\cr" % (var, TeX(borneinf), TeX(bornesup))
        # str_signe = "\\tx{%s(%s)}&&\\tx{%s}&\\cr" % (nomP, var, signe_a)
        signes = [signe_a]
        ligne_valeurs = [borneinf, bornesup]
    elif delta == 0:
        cor.append(_("Comme $\\Delta =0$, $%s(%s)$ s'annule une seule fois pour $%s_0=%s$ et est toujours du signe de $a$.\\par") % (nomP, var, var, racines[0]))
        if racines[0] < borneinf or racines[0] > bornesup:
            if borneinf != float("-inf"):
                intervalle = "["
            else:
                intervalle = "]"
            intervalle += "%s~;~%s" % (TeX(borneinf), TeX(bornesup))
            if bornesup == float("inf"):
                intervalle += "["
            else:
github Pyromaths / pyromaths / src / pyromaths / ex / lycee / ExoPolynome.py View on Github external
cor.append(TeX_division(E, (X - x0)) + "")
        E2, reste = E / (X - x0)
    cor.append(_("\\item On doit maintenant factoriser le polynome $%s_2=%s$\\\\") % (nomE, E2))
    delta, simplrac, racines, str_racines, factorisation = factorisation_degre2(E2, factorisation=True)
    cor = redaction_factorisation(E2, nomP=nomE + "_2", exo=[], cor=cor)[1]
    cor.append("\\par")
    cor.append(_("On en conclue donc que $%s=") % (nomE))
#     final = 0
    if x0 == 0:
        P0 = E.var
    else:
        P0 = "\\left(%s\\right)" % (X - x0)
    if E[3] == -1:
        cor.append("-")
    elif E[3] != 1:
        cor.append(TeX(E[3]))
    if delta < 0:
        # P1 = factorisation[-1][0]
        E_factorise = "%s\\times%s$" % (P0, E2)
    elif delta == 0:
        P1 = factorisation[-1][0]
        E_factorise = "%s\\times{\\left(%s\\right)}^2$" % (P0, P1)
    else:
        P1 = factorisation[-1][0]
        P2 = factorisation[-1][1]
        E_factorise = "%s\\left(%s\\right)\\left(%s\\right)$" % (P0, P1, P2)
    cor.append(E_factorise)

    exo.append("\\end{enumerate}")
    cor.append("\\end{enumerate}")
    return exo, cor
github Pyromaths / pyromaths / src / pyromaths / ex / lycee / ExoPolynome.py View on Github external
x_x1 = "$%s$," % (TeX(x1))
            ligne_valeurs += [x1]
            sign_x1 = ",%s,0" % (signe_a)
            signes += [signe_a]

        if 2 in compare:
            entreracines = ",%s" % (signe_a)
            signes += [signe_a]
        else:
            entreracines = ",%s" % (signe_moinsa)
            signes += [signe_moinsa]

        if compare[1] >= 1 or compare[0] == 2:
            x_x2 = sign_x2 = ""
        else:
            x_x2 = "$%s$," % (TeX(x2))
            ligne_valeurs += [x2]
            sign_x2 = ",0,%s" % (signe_a)
            signes += [signe_a]
        ligne_valeurs += [bornesup]
        # Ne rien dire si une racine est égale à une borne
        compare = [compare[0] - (x1 == borneinf) - (x2 == borneinf), compare[1] - (x1 == bornesup) - (x2 == bornesup)]

        if sum(compare) == 2 :
            # les deux racines sont à supprimer
            cor.append(_("\\par Or $%s$ et $%s$ ne sont pas dans $%s$.") % (TeX(x1), TeX(x2), intervalle))

        elif compare[0] == 1:
            cor.append(_("\\par Or $%s$ n'est pas dans $%s$.") % (TeX(x1), intervalle))
        elif compare[1] == 1:
            cor.append(_("\\par Or $%s$ n'est pas dans $%s$.") % (TeX(x2), intervalle))
        cor.append("Ainsi \\par")
github Pyromaths / pyromaths / src / pyromaths / ex / lycee / ExoPolynome.py View on Github external
ligne_factorisation = "$$%s(%s)" % (nomP, var)
        for etape in factorisation:
            ligne_factorisation += " = "
            if P[2] != 1:
                ligne_factorisation += "%s \\times " % (TeX(P[2]))

            ligne_factorisation += "{\\left(%s\\right)}^2" % (etape[0])
        ligne_factorisation += "$$"
        cor.append(ligne_factorisation)
    else:
        cor.append(_(u"On peut donc écrire "))
        ligne_factorisation = "$$%s(%s)" % (nomP, var)
        for etape in factorisation:
            ligne_factorisation += " = "
            if P[2] != 1:
                ligne_factorisation += "%s \\times " % (TeX(P[2]))
            if len(etape) == 1:
                ligne_factorisation += etape[0]
            else:
                ligne_factorisation += "\\left(%s\\right)\left(%s\\right)" % (etape[0], etape[1])
        ligne_factorisation += "$$"
        cor.append(ligne_factorisation)
    return exo, cor
github Pyromaths / pyromaths / src / pyromaths / ex / lycee / ExoPolynome.py View on Github external
cor.append("\\begin{tikzpicture}\n\\tkzTabInit[espcl=2.5]")
        cor.append(str_variables[:-1] + ', $%s\\,(x)$/1.5}' % nomP)
        cor.append(str_valeurs)
        cor.append(str_signes)
        var_de_P = "\\tkzTabVar{%s/$%s$, " % (["-", "+"]["-" == signes[0]], TeX(P(ligne_valeurs[0])))  # +/$%s$/, -/$%s$/}" % (f_xmin, f_xmax))
        #=======================================================================
        # var_de_P = "\\tx{%s}& \\%s{\\rnode{neu0}{%s}}&&" % (nomP, ["txb", "txh"]["-" == signes[0]], TeX(P(ligne_valeurs[0])))
        #=======================================================================
        compteur = 0
        for i in range(0, len(signes) - 1):
            if signes[i] == '+':
                if 0 and signes[i + 1] == "+":
                    var_de_P += "&&"
                else:
                    compteur += 1
                    var_de_P += "+/$%s$/, " % TeX(P(ligne_valeurs[i + 1]))
                    #===========================================================
                    # var_de_P += "\\txh{\\rnode{neu%s}{%s}}&&" % (compteur, TeX(P(ligne_valeurs[i + 1])))
                    #===========================================================
            else:
                if 0 and signes[i + 1] == "-":
                    var_de_P += "&&"
                else:
                    compteur += 1
                    var_de_P += "-/$%s$/, " % TeX(P(ligne_valeurs[i + 1]))
                    #===========================================================
                    # var_de_P += "\\txb{\\rnode{neu%s}{%s}}&&" % (compteur, TeX(P(ligne_valeurs[i + 1])))
                    #===========================================================
        compteur += 1
        if signes[-1] == "+":
            var_de_P += "+/$%s$/} " % TeX(P(ligne_valeurs[-1]))
            #===================================================================
github Pyromaths / pyromaths / src / pyromaths / ex / lycee / ExoPolynome.py View on Github external
facteur2 += var
        else:
            facteur2 += TeX(c) + var
        b = int(sqrt(pol2[0]))
        facteur2 += " \\times %s +" % (TeX(b))
    else:
        # a²-b²
        facteur2 += "-"
        b = int(sqrt(-(pol2[0])))
    facteur2 += u"%s^2" % (TeX(b))
    if a1 != 1:
        facteur2 += "\\big]"
    factorisation.append(facteur2)
    facteur3 = ""
    if a1 != 1:
        facteur3 += TeX(a1)
    sgns = sgns / 2
    if sgns:  # (cx-b)² ou (cx+b)²
        liste_racines = [Fraction(-(sgns)) * b / c]
        facteur3 += "{(%s)}^2" % (c * X + sgns * b)
    else:  # (cx-b)(cx+b)
        liste_racines = [Fraction(-1) * b / c, Fraction(1) * b / c]
        facteur3 += "(%s)(%s)" % (c * X + b, c * X - b)
    factorisation.append(facteur3)
    if racines:
        return factorisation, liste_racines
    return factorisation