Probleme... [Résolu]

Signaler
Messages postés
1
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
18 avril 2005
-
Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
-
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.

8 réponses

Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
2
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;

Pour l'intégration de tout ça, y'a plus qu'à

Cordialement.
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
3
Ca n'a pas l'air bien compliqué !


Ken@vo


<hr size="2" width="100%">
Code, Code, Codec !

http://www.pourflorenceethussein.org/
Messages postés
93
Date d'inscription
mardi 15 mars 2005
Statut
Membre
Dernière intervention
2 juillet 2007

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...


<HR>
BLOU BLOU POWAA
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
3
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.



Ken@vo


<hr size="2" width="100%">
Code, Code, Codec !

http://www.pourflorenceethussein.org/
Messages postés
65
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
18 novembre 2008
1
A moins qu'il s'agisse du schéma de Yvette Horner, auquel cas ce n'est plus bon

hendrix
Messages postés
1725
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
11 avril 2021
8
Ah non, ah non...



Jolie môme, c'est Juliette Gréco, pas Yvette Horner !



Mais je crois pas qu'il y ait de produits dérivés...



Bonne prog'
Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
2
Euh, et si on regroupait les deux :

procedure MethodeHorner(const X: Extended; const Coefficients: array of Double; var ValeurReelle, Derivee : Extended );
var
I: Integer;
Valeur : Extended ;
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;

Cordialement.
Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
2
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;

Cordialement.