>>> P = Polynom.random(["{b}", "{a}"]) # Polynom du type ax + b
>>> print(P)
- 8 x - 3
>>> P = Polynom.random(degree = 2)
>>> print(P)
5 x^{ 2 } + 4 x - 7
Manipuler des polynômes
-----------------------
Les représentations des polynômes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
..code-block:: python
>>> P = Polynom([1, 2, 3])
>>> print(P)
3 x ^ 2 + 2 x + 1
Évaluer des polynômes
~~~~~~~~~~~~~~~~~~~~~
Les polynômes peuvent se comporter comme des fonctions, on peut les évaluer. Il est possible de les évaluer sur des nombres, des expressions et même des polynômes.
Les opérations +, -, \* et ^ sont accessibles aux polynômes. Elles renvoient *toujours* un polynôme (même si le résultat est une constante)
..code-block:: python
>>> type(P + 1)
pymath.polynomDeg2.Polynom_deg2
>>> for i in (P+1).explain():
print(i)
3 x^{ 2 } + 2 x + 1 + 1
3 x^{ 2 } + 2 x + 2
>>> Q = Polynom([4, 5, 6])
>>> for i in (P+Q).explain():
print(i)
3 x^{ 2 } + 2 x + 1 + 6 x^{ 2 } + 5 x + 4
( 3 + 6 ) x^{ 2 } + ( 2 + 5 ) x + 1 + 4
9 x^{ 2 } + 7 x + 5
>>> Q = Polynom([0,2,3])
>>> print(Q)
>>> print(P-Q)
1
>>> type(P-Q)
pymath.polynom.Polynom
Dérivation
~~~~~~~~~~
Il est possible de dériver les polynômes à partir de la méthode *derivate*. De la même façon que pour les opérations, le polynôme dérivé pour s'expliquer avec la méthode *explain*.
..code-block:: python
>>> P1 = P.derivate()
>>> print(P1)
6 x + 2
>>> for i in P1.explain():
... print(i)
...
2 \times 3 x + 1 \times 2
6 x + 2
>>> print(P1.name)
"P'"
Polynomes du second degré
-------------------------
Les polynômes du second degré héritent de toutes les méthodes venant de la classe Polynom. Ils ont cependant accès à d'autres méthodes plus spécifiques aux polynômes de ce degré:
* Accès aux coefficients de façon 'naturelle'
**delta*: discriminant du polynôme.
**alpha*: Abscisse de l'extremum.
**beta*: ordonnée de l'extremum.
**roots*: les racines du polynôme (/!\ utilise *sympy* et ne peux pas expliquer le calcul pour le moment)
**tbl_sgn_header*: en-tête du tableau du tableau de signe écrit pour *TkzTab*
**tbl_sgn*: ligne du tableau de signe pour *TkzTab*
**tbl_variation*: ligne du tableau de variation pour *TkzTab*