4.1.2. PolynomesCollege
— Fonctions polynômes¶
Le module PolynomesCollege
introduit la classe Polynome
qui
permet de faire des calculs détaillés sur les polynômes.
Un objet Polynome peut être construit à partir d’une liste et d’une chaîne contenant une variable ou à partir d’une chaîne représentant le polynôme avec la variable choisie.
-
class
pyromaths.classes.PolynomesCollege.
Polynome
(monomes, var=None, details=0)[source]¶ Cette classe crée la notion de polynômes.
Si
var == None
alors la variable estx
.details donne le niveau de détails attendus dans les développements et réductions :
- 0 : pas de détails : 3x+4x => 7x
- 1 : ordonne avant de réduire
- 2 : ordonne puis factorise les réductions : 3x+4x=(3+4)x
- 3 : comme 2 et détaille les produits : 2x*3x=2*3*x*x
>>> from pyromaths.classes.PolynomesCollege import Polynome >>> repr(Polynome([[2,2],[3,1],[4,0]], 'z')) Polynome([[2, 2], [3, 1], [4, 0]], "z", 0) >>> repr(Polynome("2y^2+3y+4")) Polynome([[2, 2], [3, 1], [4, 0]], "y", 0) >>> repr(Polynome([[1, 1], [2, 2]])) Polynome([[1, 1], [2, 2]], "x", 0) >>> repr(Polynome("Fraction(1,7)x^2-Fraction(3,8)x-1")) Polynome([[Fraction(1, 7), 2], [Fraction(-3, 8), 1], [-1, 0]], "x", 0)
-
__add__
(*others)[source]¶ object.__add__(*others)
p.__add__(q)
est équivalent àp + q
calcule la somme de polynômes.other peut être une chaîne représentant un polynôme.
>>> from pyromaths.classes.PolynomesCollege import Polynome >>> repr(Polynome("2y+3y^2+4", details=2)+Polynome('-y+6', details=2)) Polynome([[3, 2], [2, 1], [-1, 1], [4, 0], [6, 0]], "y", 2)
Param: other Type: Polynome ou string évaluable comme Polynome Type renvoyé: Polynome
-
__call__
(valeur)[source]¶ __call__(object,*valeur*)
p.__call__(valeur)
est équivalent àp(valeur)
Retourne l’expression numérique du polynôme pour sa variable égale à valeur.>>> from pyromaths.classes.PolynomesCollege import Polynome >>> Polynome("4+x-x^2+x^3-2x^5")(-5) 4-5-(-5)**2+(-5)**3-2*(-5)**5
Param: valeur Type: integer, float or Fraction Type renvoyé: string
-
__delitem__
(i)[source]¶ object.__delitem__(integer)
Renvoie le polynôme privé du i ème monome.
>>> from pyromaths.classes.PolynomesCollege import Polynome >>> p = Polynome("2y+3y^2+4") >>> del p[1] >>> repr(p) Polynome([[2, 1], [4, 0]], "y", 0)
Type renvoyé: Polynome
-
__eq__
(other)[source]¶ object.__eq__(other)
p.__eq__(q)
est équivalent àp == q
Renvoie True si deux polynômes sont égaux. Ne tient pas compte de l’ordre des monômes.>>> from pyromaths.classes.PolynomesCollege import Polynome >>> Polynome("2y+3y^2+4") == Polynome('-y+6') False >>> Polynome('3x+5x+4')== Polynome('8x+4') False
Type renvoyé: boolean
-
__getitem__
(i)[source]¶ object.__getitem__(integer)
Renvoie le i ème monome du polynôme.
>>> from pyromaths.classes.PolynomesCollege import Polynome >>> Polynome("2y+3y^2+4")[1] [3, 2]
Type renvoyé: list
-
__iadd__
(other)[source]¶ object.__iadd__(other)
p.__iadd__(q)
est équivalent àp += q
>>> from pyromaths.classes.PolynomesCollege import Polynome >>> p=Polynome("2y+3y^2+4") >>> p += Polynome('-y+6') >>> repr(p) Polynome([[2, 1], [3, 2], [4, 0], [-1, 1], [6, 0]], "y", 0)
Type renvoyé: Polynome
-
__len__
()[source]¶ object.__len__()
p.__len__()
équivaut àlen(p)
et renvoie le nombre de monômes d’un polynôme.>>> from pyromaths.classes.PolynomesCollege import Polynome >>> len(Polynome("2y+3y^2+4")) 3
Type renvoyé: integer
-
__mul__
(*others)[source]¶ object.__mul__(other)
p.__mul__(q)
est équivalent àp * q
Renvoie une chaîne de caractère ou un objet Polynôme dont les éléments sont :
- le produit de
p
etq
si ce sont deux monômes dont un au moins a pour coefficient 1. - le produit détaillé de
p
etq
si ce sont deux monômes ne dépendant pas du cas précédent. - le développement par distributivité dans les autres cas
si details est égal à 0, les produits dans les distributivités sont calculés immédiatement, sinon les produits sont explicités.
>>> from pyromaths.classes.PolynomesCollege import Polynome >>> repr(Polynome('3x+4', details=0)*Polynome('2x+5', details=0)) 'Polynome([[6, 2]], "x", 0)+Polynome([[15, 1]], "x", 0)+Polynome([[8, 1]], "x", 0)+Polynome([[20, 0]], "x", 0)' >>> repr(Polynome('3x', details=1)*Polynome('2x+5', details=1)) 'Polynome([[3, 1]], "x", 1)*Polynome([[2, 1]], "x", 1)+Polynome([[3, 1]], "x", 1)*Polynome([[5, 0]], "x", 1)' >>> repr(Polynome('3x', details=3) * Polynome('2x', details=3)) "Polynome([[3, 0]], var = 'x', details=3)*Polynome([[1, 1]], var = 'x', details=3)*Polynome([[2, 0]], var = 'x', details=3)*Polynome([[1, 1]], var = 'x', details=3)" >>> repr(Polynome('3', details=3)*Polynome('x', details=3)) Polynome([[3, 1]], "x", 3)
Param: other Type: Polynome ou string évaluable comme Polynome Type renvoyé: string ou Polynome - le produit de
-
__ne__
(other)[source]¶ object.__ne__(other)
p.__ne__(q)
est équivalent àp != q
Renvoie True si deux polynômes sont différents. Ne tient pas compte de l’ordre des monômes.>>> from pyromaths.classes.PolynomesCollege import Polynome >>> Polynome("2y+3y^2+4") != Polynome('-y+6') True
Type renvoyé: boolean
-
__neg__
()[source]¶ object.__neg__()
p.__neg__()
est équivalent à-p
est équivalent àp = -p
TODO : Corriger ce dernier point ; p ne devrait pas être modifié
Renvoie l’opposé d’un polynôme.
>>> from pyromaths.classes.PolynomesCollege import Polynome >>> repr(-Polynome("2y+3y^2+4")) Polynome([[-2, 1], [-3, 2], [-4, 0]], "y", 0)
Type renvoyé: Polynome
-
__pos__
()[source]¶ object.__pos__()
p.__pos__()
est équivalent à+p
Renvoie le polynôme.
>>> from pyromaths.classes.PolynomesCollege import Polynome >>> repr(+Polynome("2y+3y^2+4")) Polynome([[2, 1], [3, 2], [4, 0]], "y", 0)
Type renvoyé: Polynome
-
__pow__
(other)[source]¶ object.pow(integer)
p.__pow__(n)
équivaut àp**n
et renvoie le développement du polynôme p à la puissance n.- Si
n == 1
, alors renvoie l’objet Polynome ; - si
n == 2
, alors renvoie une chaîne avec le développement en utilisant une identité remarquable ; - si
n > 1
, renvoie le développement en utilisant la formule du binôme de Newton.
TODO : si
n == 2
etlen(p) > 2
, bug>>> from pyromaths.classes.PolynomesCollege import Polynome >>> repr(Polynome("2y+4")**2) 'Polynome([[2, 1]], "y", 0)**2+2*Polynome([[2, 1]], "y", 0)*Polynome([[4, 0]], "y", 0)+Polynome([[4, 0]], "y", 0)**2' >>> repr(Polynome("2y")**3) Polynome([[8, 3]], "y", 0)
Type renvoyé: string ou Polynome - Si
-
__radd__
(other)[source]¶ object.__radd__(other)
p.__radd__(q)
est équivalent àq + p
>>> from pyromaths.classes.PolynomesCollege import Polynome >>> from pyromaths.classes.Fractions import Fraction >>> repr(Fraction(5,4)+Polynome("3x")) Polynome([[3, 1], [Fraction(5, 4), 0]], "x", 0)
Param: other Type: Polynome ou string évaluable comme Polynome Type renvoyé: Polynome
-
__repr__
()[source]¶ repr(object)
Renvoie une chaîne de caractère représentant un
Polynome
évaluable pour créer unPolynome
.>>> from pyromaths.classes.PolynomesCollege import Polynome >>> repr(Polynome([[2,2],[3,1],[4,0]], 'z')) Polynome([[2, 2], [3, 1], [4, 0]], "z", 0)
Type renvoyé: string
-
__rmul__
(other)[source]¶ Multiplication de other (qui n’est pas un polynôme) par self (qui en est un)
- Si other est une suite de produits de monômes, et self un polynôme de rang 1, on effectue toutes les multiplications en une fois
- Sinon, on calcule d’abord @other
Param: other Type: Polynome ou string évaluable comme Polynome Type renvoyé: string ou Polynome
-
__rsub__
(other)[source]¶ object.__rsub__(other)
p.__rsub__(q)
est équivalent àq - p
>>> from pyromaths.classes.PolynomesCollege import Polynome >>> repr(1-Polynome([[-4, 1], [-9, 2], [-5, 0]], "x")) 'Polynome([[1, 0]], "x", 0)+Polynome([[4, 1], [9, 2], [5, 0]], "x", 0)' >>> from pyromaths.classes.Fractions import Fraction >>> repr(Fraction(5,4)-Polynome("3x")) Polynome([[-3, 1], [Fraction(5, 4), 0]], "x", 0) >>> repr(Fraction(5,4)-Polynome("-3x")) Polynome([[3, 1], [Fraction(5, 4), 0]], "x", 0)
Param: other Type: Polynome ou string évaluable comme Polynome Type renvoyé: Polynome
-
__str__
()[source]¶ str(object)
- Renvoie une version LaTeX du polynôme.
>>> from pyromaths.classes.PolynomesCollege import Polynome >>> str(Polynome([[2,2],[3,1],[4,0]], 'z')) 2\,z^{2}+3\,z+4 >>> str(Polynome("y^2-Fraction(3,2)y-1")) y^{2}-\dfrac{3}{2}\,y-1 >>> from pyromaths.classes.Fractions import Fraction >>> Polynome([[1, 1], [Fraction(-5, 1), 0]]) x-5
Type renvoyé: string
-
__sub__
(*others)[source]¶ object.__sub__(other)
p.__sub__(q)
est équivalent àp + q
calcule la somme de polynômes.other peut être une chaîne représentant un polynôme.
>>> from pyromaths.classes.PolynomesCollege import Polynome >>> repr(Polynome("2y+3y^2+4")-Polynome('-y+6')) 'Polynome([[2, 1], [3, 2], [4, 0]], "y", 0)+Polynome([[1, 1], [-6, 0]], "y", 0)' >>> repr(Polynome("3y^2+2y+4")-Polynome('-y+6')) 'Polynome([[3, 2], [2, 1], [4, 0]], "y", 0)+Polynome([[1, 1], [-6, 0]], "y", 0)' >>> repr(Polynome("x+6")-Polynome("3x")) Polynome([[-2, 1], [6, 0]], "x", 0) >>> repr(Polynome("x+6",details=2)-Polynome("3x",details=2)) Polynome([[1, 1], [-3, 1], [6, 0]], "x", 2)
Param: other Type: Polynome ou string évaluable comme Polynome Type renvoyé: Polynome or string
-
__weakref__
¶ list of weak references to the object (if defined)
-
degre
()[source]¶ degre(object)
Retourne le degré d’un polynôme, -1 pour le polynôme nul
>>> from pyromaths.classes.PolynomesCollege import Polynome >>> Polynome("2y+3y^2+4").degre() 2 >>> Polynome('').degre() -1
Type renvoyé: integer
-
nreduction
(bdirecte=False)[source]¶ nreduction(object)
Retourne une étape de la réduction d’un polynome selon la valeur de detail Si bdirecte est True, alors donne la version réduite sans aucun détail de calcul
Paramètres: - type – Polynome
- bdirecte – faut-il donner directement le résultat de la réduction, sans étape de calcul ?
- type – boolean
Type renvoyé:
-
ordonnable
()[source]¶ ordonnable(object)
Retourne True si le polynome n’est pas ordonnée, False sinon.
Paramètres: type – Polynome Type renvoyé: boolean
-
ordonne
()[source]¶ ordonne(object)
Retourne une version ordonnée d’un polynome en écrivant en premier les monômes de degré supérieur.
>>> from pyromaths.classes.PolynomesCollege import Polynome >>> repr(Polynome([[2, 1], [3, 2], [4, 0], [-1, 1], [6, 0]], "y").ordonne()) Polynome([[3, 2], [2, 1], [-1, 1], [4, 0], [6, 0]], "y", 0)
Paramètres: type – Polynome Type renvoyé: Polynome