http://www.jpicedt.org

jpicedt.util.math
Class Polynomial

java.lang.Object
  extended by jpicedt.util.math.Polynomial
All Implemented Interfaces:
Cloneable

public class Polynomial
extends Object
implements Cloneable

Polynôme réel monovarié.

Since:
jPicEdt 1.6
Author:
Vincent Belaïche

Constructor Summary
Polynomial()
          Construit un polynôme nul.
Polynomial(int degree)
          Construit un polynôme, la mémoire est allouée, mais non initialisée pouvoir stocker les monômes de degrée 0 à degree.
Polynomial(int leastDegree, int degree)
          construit un polynôme nul en allouant en interne la mémoire pour les coefficient de leastDegree à degree.
Polynomial(int leastDegree, int degree, double[] coefficients)
          construit un polynôme.
Polynomial(Polynomial x)
           
 
Method Summary
 Polynomial add(double s)
          ajoute s au polynome this.
 Polynomial add(Polynomial x)
           
 Polynomial addMonomial(int d, double c)
          ajoute c*X^d au polynôme this, ceci modifie this
 Polynomial cAdd(Polynomial x)
          Ajoute x à this, et renvoie la somme. this n'est pas changé.
 Polynomial cCompose(Polynomial other)
          Compose le polynôme this avec le polymôme other, sans changer this, et renvoie le resultat.
 Polynomial cDerive()
          calcule la dérivée du this sans modifier le this
 Polynomial cMul(Polynomial x)
          Multiplie x et this, et renvoie le produit. this n'est pas changé.
 Polynomial cNeg()
          calcule -this, sans modifier this, et renvoie le résultat.
 double coeff(int i)
          renvoie le coefficient du monôme X^i de degré i
 Polynomial cSub(double s)
          ajoute s au polynome this, sans modifier this, et renvoie le résultat.
 Polynomial cSub(Polynomial x)
          Soustrait x à this, et renvoie la différence. this n'est pas changé.
 void degreeExtend(int d)
          fait en sorte que le format interne du polynome contienne le degré d.
 Polynomial derive()
          dérive le this, ce qui modifie this, et renvoie la nouvelle valeur de this.
 Polynomial[] divide(Polynomial divisor)
          divise this par divisor en division Euclidienne
 Complex eval(Complex x)
          évalue le polynôme this en x
 double eval(double x)
          évalue le polynôme this en x
 double[] findZeroInInterval(double min, double max, double tol, int sign)
          trouve un zéro dans l'intervalle [min, max].
 ArrayList<PolynomialRealRoot> findZerosInInterval(double min, double max, double tol)
          trouve tous les zéros réels entre min et max inclus. min et max peuvent être infinis
 Polynomial mul(double s)
          multiplie le polynome this par s, ce qui modifie this.
 Polynomial mul(Polynomial x)
          Multiplie x et this, et affecte le produit à this.
 Polynomial neg()
          remplace this par -this
 int refreshDegree()
          teste les monômes de degrés les plus élevés et réduit ci-possible de degrés jusqu'à ce que degree soit le plus faible possible
 void scale(double s)
          multiplie le polynome this par s, ce qui modifie this.
 Polynomial setALaBernstein(int _degree, double[] bernsteinCoefficients)
          Affecte au polynome le polynome de Bernstein défini par la formule: \sum_{i=0}^{i=d} \begin{bmatrix}i\\ d\end{bmatrix} b_{i}\times X^i\times X^{d-i}\begin{bmatrix}i\\ d\end{bmatrix} désigne le bimôme de Newton
 void setCoeff(int degree, double coeff)
           
 Polynomial sub(double s)
          retranche s du polynome this, ce qui modifie this, et renvoie le résultat
 Polynomial sub(Polynomial x)
          Soustrait x à this, ce qui modifie this, et renvoie this ainsi modifié.
 double[] toArray(int degMin, int degMax)
          renvoie un tableau des coefficients dans une plage de degrès donnée.
 void toArray(int degMin, int degMax, double[] coeff)
          écrit un tableau des coefficients dans une plage de degrès donnée.
 String toString()
          Convertit le polynôme this en une chaîne de caractère à des fin de débogage.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Polynomial

public Polynomial(Polynomial x)

Polynomial

public Polynomial()
Construit un polynôme nul.

Since:
jPicEdt 1.6

Polynomial

public Polynomial(int degree)
Construit un polynôme, la mémoire est allouée, mais non initialisée pouvoir stocker les monômes de degrée 0 à degree. Utiliser une méthode du genre setALaBernstein(int _degree,double[] bernsteinCoefficients) pour initialiser les coefficients.

Since:
jPicEdt 1.6
See Also:
setALaBernstein(int _degree,double[] bernsteinCoefficients)., Polynomial(int leastDegree,int degree).

Polynomial

public Polynomial(int leastDegree,
                  int degree)
construit un polynôme nul en allouant en interne la mémoire pour les coefficient de leastDegree à degree. La mémoire est initialisée à 0, c'est à dire que le polynôme est initialement nul.

Since:
jPicEdt 1.6

Polynomial

public Polynomial(int leastDegree,
                  int degree,
                  double[] coefficients)
construit un polynôme. Attention : coefficients n'est pas cloné

Since:
jPicEdt 1.6
Method Detail

setCoeff

public void setCoeff(int degree,
                     double coeff)
Since:
jPicEdt 1.6

eval

public double eval(double x)
évalue le polynôme this en x

Since:
jPicEdt 1.6

eval

public Complex eval(Complex x)
évalue le polynôme this en x

Since:
jPicEdt 1.6

coeff

public double coeff(int i)
renvoie le coefficient du monôme X^i de degré i

Since:
jPicEdt 1.6

derive

public Polynomial derive()
dérive le this, ce qui modifie this, et renvoie la nouvelle valeur de this.

Since:
jPicEdt 1.6

cDerive

public Polynomial cDerive()
calcule la dérivée du this sans modifier le this

Returns:
la dérivée
Since:
jPicEdt 1.6

neg

public Polynomial neg()
remplace this par -this

Returns:
this après négation.
Since:
jPicEdt 1.6

cNeg

public Polynomial cNeg()
calcule -this, sans modifier this, et renvoie le résultat.

Returns:
-this
Since:
jPicEdt 1.6

toArray

public double[] toArray(int degMin,
                        int degMax)
renvoie un tableau des coefficients dans une plage de degrès donnée.

Since:
jPicEdt 1.6

toArray

public void toArray(int degMin,
                    int degMax,
                    double[] coeff)
écrit un tableau des coefficients dans une plage de degrès donnée.

Since:
jPicEdt 1.6

cCompose

public Polynomial cCompose(Polynomial other)
Compose le polynôme this avec le polymôme other, sans changer this, et renvoie le resultat.

Returns:
le polynôme dont la fonction polynôme associée est x -> this(other(x))
Since:
jPicEdt 1.6

mul

public Polynomial mul(double s)
multiplie le polynome this par s, ce qui modifie this. Renvoie le résultat, c'st à dire this après modification.

Since:
jPicEdt 1.6

scale

public void scale(double s)
multiplie le polynome this par s, ce qui modifie this.

Since:
jPicEdt 1.6

addMonomial

public Polynomial addMonomial(int d,
                              double c)
ajoute c*X^d au polynôme this, ceci modifie this

Parameters:
d - degrès du monôme ajouté
c - coefficient du monôme ajouté
Returns:
this, par commodité.
Since:
jPicEdt 1.6

degreeExtend

public void degreeExtend(int d)
fait en sorte que le format interne du polynome contienne le degré d. Suppose que d >= 0.

Since:
jPicEdt 1.6

add

public Polynomial add(Polynomial x)
Since:
jPicEdt 1.6

cAdd

public Polynomial cAdd(Polynomial x)
Ajoute x à this, et renvoie la somme. this n'est pas changé.

Since:
jPicEdt 1.6

sub

public Polynomial sub(Polynomial x)
Soustrait x à this, ce qui modifie this, et renvoie this ainsi modifié.

Since:
jPicEdt 1.6

cSub

public Polynomial cSub(Polynomial x)
Soustrait x à this, et renvoie la différence. this n'est pas changé.

Since:
jPicEdt 1.6

mul

public Polynomial mul(Polynomial x)
Multiplie x et this, et affecte le produit à this.

Since:
jPicEdt 1.6

cMul

public Polynomial cMul(Polynomial x)
Multiplie x et this, et renvoie le produit. this n'est pas changé.

Since:
jPicEdt 1.6

add

public Polynomial add(double s)
ajoute s au polynome this. Ça fait pareil que addMonomial(0,s). this est modifié par cette opération.

Returns:
this
Since:
jPicEdt 1.6

sub

public Polynomial sub(double s)
retranche s du polynome this, ce qui modifie this, et renvoie le résultat

Returns:
this -= s
Since:
jPicEdt 1.6

cSub

public Polynomial cSub(double s)
ajoute s au polynome this, sans modifier this, et renvoie le résultat.

Returns:
this - s
Since:
jPicEdt 1.6

setALaBernstein

public Polynomial setALaBernstein(int _degree,
                                  double[] bernsteinCoefficients)
Affecte au polynome le polynome de Bernstein défini par la formule: \sum_{i=0}^{i=d} \begin{bmatrix}i\\ d\end{bmatrix} b_{i}\times X^i\times X^{d-i}\begin{bmatrix}i\\ d\end{bmatrix} désigne le bimôme de Newton

Parameters:
_degree - d, dans la formule définissant le polynome de Bernstein
bernsteinCoefficients - bernsteinCoefficients[i] = b_{i}, dans la formule définissant le polynome définissant le polynome
Returns:
this
Since:
jPicEdt 1.6

toString

public String toString()
Convertit le polynôme this en une chaîne de caractère à des fin de débogage.

Overrides:
toString in class Object
Returns:
une chaîne de caractères représentant le polynôme this.
Since:
jPicEdt 1.6

findZeroInInterval

public double[] findZeroInInterval(double min,
                                   double max,
                                   double tol,
                                   int sign)
trouve un zéro dans l'intervalle [min, max]. Cette méthode est se base sur l'hypothèse que le polynome est monotone dans cet intervalle.

Parameters:
tol - = tolérance sur le résultat, abs(eval(zéro)) < tol
sign - si zéro, pas d'exigence sur eval(zéro), si sign=+1, la méthode assure que eval(zéro) >= 0, si sign=-1, la méthode assure que eval(zéro) <=0.
Returns:
null si pas touvé, {zero_trouvé} sinon
Since:
jPicEdt 1.6

findZerosInInterval

public ArrayList<PolynomialRealRoot> findZerosInInterval(double min,
                                                         double max,
                                                         double tol)
trouve tous les zéros réels entre min et max inclus. min et max peuvent être infinis

Returns:
liste de PolynomialRealRoot
Since:
jPicEdt 1.6

refreshDegree

public int refreshDegree()
teste les monômes de degrés les plus élevés et réduit ci-possible de degrés jusqu'à ce que degree soit le plus faible possible

Returns:
le degré du polynôme this, après cette opération.
Since:
jPicEdt 1.6

divide

public Polynomial[] divide(Polynomial divisor)
divise this par divisor en division Euclidienne

Returns:
{ dividende, reste} si divisor et non nul, null sinon
Since:
jPicEdt 1.6

http://www.jpicedt.org

Submit a bug : syd@jpicedt.org