Difference between revisions of "Polynomial evaluation/fr"

From Free Pascal 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
Line 49: Line 49:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>
 +
 +
=Voir aussi=
 +
[[https://fr.wikipedia.org/wiki/M%C3%A9thode_de_Ruffini-Horner| Méthode de Horner]]

Revision as of 08:34, 23 November 2016

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.

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]