Example #1
0
def discriminant(polynome):
    u"Calcule le discriminant d'un polynôme du second degré."
    a = Wild('a')
    b = Wild('b')
    c = Wild('c')
    x = Wild('x')
    dico = polynome.match(a*x**2 + b*x + c)
    if dico is None:
        raise NotImplementedError
    a, b, c, x = dico[a], dico[b], dico[c], dico[x]
    if not x.is_Symbol or a.has(x) or b.has(x) or c.has(x):
        raise NotImplementedError
    return b**2 - 4*a*c
Example #2
0
def canonique(polynome):
    u"Met un polynôme du second degré sous forme canonique."
    a = Wild('a')
    b = Wild('b')
    c = Wild('c')
    x = Wild('x')
    dico = polynome.match(a*x**2 + b*x + c)
    if dico is None:
        return polynome
    a, b, c, x = dico[a], dico[b], dico[c], dico[x]
    if not x.is_Symbol or a.has(x) or b.has(x) or c.has(x):
        return polynome
    alpha = -b/(2*a)
    beta = (4*a*c - b**2)/(4*a)
    return a*(x - alpha)**2 + beta