Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

how to write an expression in latex without it being transformed by sage/sagetex

For my lesson that I am trying to write in latex/sagetex, I need to write formulas without them being transformed by sage.

Here's an example :

sage: f(x) = -2*x^2+x+3
....: g(x) = -2*(x-1/4)^2+25/8
....: g(x)
-1/8*(4*x - 1)^2 + 25/8
sage:

but I want to keep the form -2*(x-1/4)^2+25/8 to write it in latex.

I tried hold and with hold: and also some code with .mul( or .add( but I have a problem with the power.

My purpose is to do random exercises around quadratic equations, and I started writing this :

from random import sample
def signe():
    signe = sample([Integer(i) for i in range(-1, 2, 1) if i != 0],1)
    return(signe[0])

def calcul(amax, bmax, cmax):
    a = randint(1,amax)*signe()
    b = randint(0,bmax)*signe()
    c = randint(0,cmax)*signe()
    f(x) = a*x^2+b*x+c
    alpha = -b/2/a
    beta = f(x=alpha)
    fcanonique(x) = a*(x-alpha)^2+beta
    Delta = b**2-4*a*c
    output = r"Soit $f$ le trinôme défini sur $\R$ par ~${}=0$.".format(latex(f(x)))
    output += r"\medbreak"
    output += r"\begin{enumerate}"
    output += r"\item Déterminer une forme canonique de $f$."
    output += r"\item Résoudre dans $\R$ l'équation $f(x)=0$ par la méthode de votre choix."
    output += r"\item $f$ est-elle factorisable ? Si oui, déterminer en une forme factorisée."
    output += r"\item Résoudre dans $\R$ l'équation $f(x)={}$.".format(c)
    output += r"\item Résoudre dans $\R$ l'équation $f(x)={}$.".format(beta)
    output += r"\end{enumerate}"
    output += r"\medbreak\uline{Réponses} :\medbreak"
    output += r"\begin{enumerate}"
    output +=r"\item On a $f(x)={}$".format(latex(fcanonique(x)))
    if Delta < 0:
        output += r"\item On reconnaît une équation du second degré de discriminant $\Delta={}<0$, et donc cette équation n'a pas de solution réelle :".format(latex(Delta))
        output += "\\bigbreak{}"
        output += r"Ce trinôme admet une forme canonique : "
    elif Delta == 0:
        output += r"\item On reconnaît une équation du second degré de discriminant $\Delta={}$, et donc cette équation admet une unique solution $x_0={}$".format(latex(Delta), latex(alpha))
    else:
        x1 = simplify((-b-Delta^(1/2))/(2*a))
        x2 = simplify((-b+Delta^(1/2))/(2*a))
        ffactorisee(x) = a*(x-x1)*(x-x2)
        output += r"\item On reconnaît une équation du second degré de discriminant $\Delta={}>0$, et donc cette équation admet deux solutions réelles $x_1$ et $x_2$ avec : \quad $\displaystyle x_1={}$ \quad et \quad $\displaystyle x_2={}$.".format(latex(Delta), latex(x1), latex(x2))
        output += "\\bigbreak{}"
    output += r"\end{enumerate}"
    return(output)

and for example, calcul(5, 5, 5) return :

"Soit $f$ le trinôme défini sur $\\R$ par ~$-x^{2} + 4 \\, x - 2=0$.\\medbreak\\begin{enumerate}\\item Déterminer une forme canonique de $f$.\\item Résoudre dans $\\R$ l'équation $f(x)=0$ par la méthode de votre choix.\\item $f$ est-elle factorisable ? Si oui, déterminer en une forme factorisée.\\item Résoudre dans $\\R$ l'équation $f(x)=-2$.\\item Résoudre dans $\\R$ l'équation $f(x)=2$.\\end{enumerate}\\medbreak\\uline{Réponses} :\\medbreak\\begin{enumerate}\\item On a $f(x)=-x + 4$\\item On reconnaît une équation du second degré de discriminant $\\Delta=8>0$, et donc cette équation admet deux solutions réelles $x_1$ et $x_2$ avec : \\quad $\\displaystyle x_1=\\sqrt{2} + 2$ \\quad et \\quad $\\displaystyle x_2=-\\sqrt{2} + 2$.\\bigbreak{}\\end{enumerate}"

Before if Delta < 0: I would like output +=r"\item On a $f(x)={}$".format(latex(fcanonique(x))) to display the formula without transformation.

Thanks.