Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Instead of defining fcanonique , I would directly write a*(x-alpha)^2+beta once replaced the constants. As a proof of concept, the code

a, b, c = -2, 3, 4
f(x) = a*x^2+b*x+c
alpha = -b/2/a
beta = f(alpha)
fcanonique(x) = a*(x-alpha)^2+beta

texte = (r"Je ne veux pas que mon polynôme soit écrit comme ça : "
         fr"${latex(fcanonique(x))}$."
         r"Plutôt, il faut qu'il soit écrit comme ça: "
         fr"${a}(x-{alpha})^2+{beta}$")

print(texte)

yields

Je ne veux pas que mon polynôme soit écrit comme ça : $-\frac{1}{8} \, {\left(4 \, x - 3\right)}^{2} + \frac{41}{8}$. Plutôt, il faut qu'il soit écrit comme ça: $-2(x-3/4)^2+41/8$.

Please note that you can simplify your code with the help of f-strings instead of the format method and concatenate strings as shown above. Likewise, I think you can use randrange(-1,2,2) instead of your own function signe.

Instead of defining fcanonique , I would directly write a*(x-alpha)^2+beta once replaced the constants. As a proof of concept, the code

a, b, c = -2, 3, 4
f(x) = a*x^2+b*x+c
alpha = -b/2/a
beta = f(alpha)
fcanonique(x) = a*(x-alpha)^2+beta

texte = (r"Je ne veux pas que mon polynôme soit écrit comme ça : "
         fr"${latex(fcanonique(x))}$."
         r"Plutôt, il faut qu'il soit écrit comme ça: ça : "
         fr"${a}(x-{alpha})^2+{beta}$")
fr"${a}(x-{alpha})^2+{beta}$.")

print(texte)

yields

Je ne veux pas que mon polynôme soit écrit comme ça : $-\frac{1}{8} \, {\left(4 \, x - 3\right)}^{2} + \frac{41}{8}$. Plutôt, il faut qu'il soit écrit comme ça: ça : $-2(x-3/4)^2+41/8$.

Please note that you can simplify your code with the help of f-strings instead of the format method and concatenate strings as shown above. Likewise, I think you can use randrange(-1,2,2) instead of your own function signe.

Instead of defining fcanonique , I would directly write a*(x-alpha)^2+beta once replaced the constants. As a proof of concept, the code

a, b, c = -2, 3, 4
f(x) = a*x^2+b*x+c
alpha = -b/2/a
beta = f(alpha)
fcanonique(x) = a*(x-alpha)^2+beta

texte = (r"Je ne veux pas que mon polynôme soit écrit comme ça : "
         fr"${latex(fcanonique(x))}$."
         r"Plutôt, il faut qu'il soit écrit comme ça : "
         fr"${a}(x-{alpha})^2+{beta}$.")

print(texte)

yields

Je ne veux pas que mon polynôme soit écrit comme ça : $-\frac{1}{8} \, {\left(4 \, x - 3\right)}^{2} + \frac{41}{8}$. Plutôt, il faut qu'il soit écrit comme ça : $-2(x-3/4)^2+41/8$.

Please note that you can simplify your code with the help of f-strings instead of the format method and concatenate strings as shown above. Likewise, I think you can use randrange(-1,2,2) instead of your own function signe.

Edit. Use the pol function below to fine print the binomial a(x-alpha)^2+beta:

def pol(a, alpha, beta):
    if a==1:
        fc = "$"
    elif a==-1:
        fc = "$-"
    else:
        fc = f"${a}"
    if alpha==0:
        fc += "x^2"
    elif alpha>0:
        fc += f"(x-{alpha})^2"
    else:
        fc += f"(x+{abs(alpha)})^2"
    if beta==0:
        fc += "$"
    elif beta>0:
        fc += f"+{beta}$"
    else:
        fc += f"-{abs(beta)}$"
    return fc

For example, this code

a, b, c = -1, -3, -4
f(x) = a*x^2+b*x+c
alpha = -b/2/a
beta = f(alpha)

texte = "La forme canonique est "
texte += pol(a,alpha,beta)
texte += ". C'est bien comme ça."
print(texte)

now yields

La forme canonique est $-(x+3/2)^2-7/4$. C'est bien comme ça.