dickann
Messages postés1Date d'inscriptionlundi 18 avril 2005StatutMembreDernière intervention18 avril 2005
-
18 avril 2005 à 17:32
WhiteHippo
Messages postés1154Date d'inscriptionsamedi 14 août 2004StatutMembreDernière intervention 5 avril 2012
-
20 avril 2005 à 23:03
bjr...g un probleme pour résoudre cet exercice...
donc si qq pourrai me donné la solution,ca m aiderai bcp...
merci...
Exercice 5-7 <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />
Demandez à l’utilisateur les coefficients d’un polynôme de degré 5. Calculez les coefficients de la dérivée de ce polynôme. Demandez à l’utilisateur une valeur réelle pour évaluer le polynôme ainsi que sa dérivée en utilisant le schéma de Horner.
WhiteHippo
Messages postés1154Date d'inscriptionsamedi 14 août 2004StatutMembreDernière intervention 5 avril 20123 20 avril 2005 à 22:56
La fonction "poly" de l'unité math.pas qui "Evalue une polynomiale uniforme d'une variable à la valeur X" utilise la méthode de Horner.
function Poly(const X: Extended; const Coefficients: array of Double): Extended;
{ Horner's method }
var
I: Integer;
begin
Result := Coefficients[High(Coefficients)];
for I := High(Coefficients)-1 downto Low(Coefficients) do
Result := Result * X + Coefficients[I];
end;
Et pour la dérivée, on l'obtient avec peu de modifications de la fonction "poly" :
function PolyDerivee(const X: Extended; const Coefficients: array of Double): Extended;
var
I: Integer;
PolyX : Extended ;
begin
Result := 0.0 ;
PolyX := Coefficients[High(Coefficients)];
for I := High(Coefficients)-1 downto Low(Coefficients) do
begin
Result := Result * X + PolyX ;
PolyX := PolyX * X + Coefficients[I];
end ;
end;
BlouMan
Messages postés93Date d'inscriptionmardi 15 mars 2005StatutMembreDernière intervention 2 juillet 2007 19 avril 2005 à 12:29
je ne connais pas le "schéma de Horner" mais pour une dérivée, le nouveau coefficient de x^n est égal à l'ancien coefficient de x^(n+1) multiplié par n+1...
cs_Kenavo
Messages postés702Date d'inscriptionvendredi 21 mars 2003StatutMembreDernière intervention 1 octobre 20095 19 avril 2005 à 13:27
Et le schéma de Horner consiste à écrire le polynome ak*xk+Ak-1*xk-1+...+a1*x+a0 sous la forme :((... ((ak*x+ak-1)*x+ak-2)*x+....)*x+a1)*x+a0, ce qui évite d'avoir à calculer toutes les puissances de x.
WhiteHippo
Messages postés1154Date d'inscriptionsamedi 14 août 2004StatutMembreDernière intervention 5 avril 20123 20 avril 2005 à 23:03
Oups, j'ai oublié de retirer la variable "Valeur" de la procédure.
procedure MethodeHorner(const X: Extended; const Coefficients: array of Double; var ValeurReelle, Derivee : Extended );
var
I: Integer;
begin
Derivee := 0.0 ;
ValeurReelle := Coefficients[High(Coefficients)];
for I := High(Coefficients)-1 downto Low(Coefficients) do
begin
Derivee := Derivee * X + ValeurReelle ;
ValeurReelle := ValeurReelle * X + Coefficients[I];
end ;
end;