Difference between revisions of "Polynomial evaluation/fr"

From Lazarus wiki
Jump to navigationJump to search
(Created page with " =Introduction= Il est souvent utile de pouvoir évaluer un polynôme pour un x donné. La méthode ci-dessous permet de calculer la valeur du polynôme en un point )à l'aide...")
 
m (Fixed syntax highlighting)
 
(4 intermediate revisions by one other user not shown)
Line 1: Line 1:
 +
{{Polynomial_evaluation}}
  
 
=Introduction=
 
=Introduction=
Il est souvent utile de pouvoir évaluer un polynôme pour un x donné. La méthode ci-dessous permet de calculer la valeur du polynôme en un point )à l'aide de multiplication et d'addition sans utiliser de calcul de puissance.
+
 
 +
Il est souvent utile de pouvoir évaluer un polynôme pour un x donné. La méthode ci-dessous permet ce calcul à l'aide de multiplication et d'addition sans utiliser de calcul de puissance.
  
 
=Méthode de Horner=
 
=Méthode de Horner=
 
Ne sont évalués que des polynômes de degré 1. Par exemple, 3.x^2 + 2.x + 1, est calculé avec une factorisation astucieuse, en effet on peut aussi l'écrire ((3.x +2).x + 1).
 
Ne sont évalués que des polynômes de degré 1. Par exemple, 3.x^2 + 2.x + 1, est calculé avec une factorisation astucieuse, en effet on peut aussi l'écrire ((3.x +2).x + 1).
  
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
program PolyTest;
 
program PolyTest;
  
Line 48: Line 50:
 
End
 
End
 
</syntaxhighlight>
 
</syntaxhighlight>
<br>
+
 
 +
=Voir aussi=
 +
 
 +
[https://fr.wikipedia.org/wiki/M%C3%A9thode_de_Ruffini-Horner| Méthode de Horner (wiki)]

Latest revision as of 08:37, 23 February 2020

English (en) français (fr)

Introduction

Il est souvent utile de pouvoir évaluer un polynôme pour un x donné. La méthode ci-dessous permet ce calcul à l'aide de multiplication et d'addition sans utiliser de calcul de puissance.

Méthode de Horner

Ne sont évalués que des polynômes de degré 1. Par exemple, 3.x^2 + 2.x + 1, est calculé avec une factorisation astucieuse, en effet on peut aussi l'écrire ((3.x +2).x + 1).

program PolyTest;

type 
  // le rang du coefficient dans le tableau est égal à son degré
  TDegres = 0..10; 
  TPolynome = record 
    Deg: TDegres; 
    Coefs: array[TDegres] of Double; 
  end;

function PolyEval(const aPoly: TPolynome; X: Double): Double; 
var 
  i: TDegres; 
begin 
  with aPoly do 
  begin 
    Result := 0; 
    for i := Deg downto Low(Coefs) do 
      Result := Result * X + Coefs[i]; 
  end; 
End; 
  
(* Exemples *) 
var 
  P: TPolynome; 
begin 
  P.Deg := 2; 
  P.Coefs[2] := 3; 
  P.Coefs[1] := 2; 
  P.Coefs[0] := 1;   
  (* l'idéal est d initialiser  les autres coeffs avec des 0 *) 
  WriteLn('P(',7,') = ', PolyEval(7):10:2);  
  
  P.Deg := 0; 
  P.Coefs[2] := 0; 
  P.Coefs[1] := 0; 
  P.Coefs[0] := 1;   
  (* l'idéal est d initialiser  les autres coeffs avec des 0 *) 
  WriteLn('P(',7,') = ', PolyEval(7):10:2);  
End

Voir aussi

Méthode de Horner (wiki)