[PDF] Travaux Pratiques de programmation no7





Previous PDF Next PDF



Lalgorithme de Hörner

1 mai 2010 a mod c si le bit A[i]=1 et dans ce cas on a une élévation au carré suivie d'une multiplication. 4 Considération des bits de bas en haut. Dans l ...



Analyse et implantation dalgorithmes rapides pour lévaluation

10 déc. 2006 la même borne d'erreur que l'algorithme de Horner. ... En notant C(p) le coût d'évaluation d'un polynôme de degré n = 2p ?1 ...



Travaux Pratiques de programmation no7

Implémentez l'algorithme de Horner. (c) La méthode de Horner possède un autre avantage. Construisez le polynôme X10 ?99X9 et évaluez-le pour X = 100 avec 



Analyse Numérique

2.3.1.2 Evaluation d'un polynôme : algorithme de Hörner . . . 35 C'est donc un souci qui nous accompagnera tout au long de ce cours. 9 ...



livre-algorithmes EXo7.pdf

(c) Écrire une fonction qui calcule P(?) par l'algorithme de Horner. 2. On formalise le calcul précédent en définissant la suite : bn = an puis pour.



I Méthode Horner

Appliquer cet algorithme avec les polynômes suivants. Algorithme 1 : Algorithme de Horner ... n:=size(C)-1; // Le degré du polynome P. Q:=C[0];.



Introduction à lalgorithmique et la complexité (et un peu de CAML

Évaluation de Polynômes Méthode de Horner. Exponentiation rapide Lorsqu'on demande : “Mais c'est quoi un algorithme efficace ???"



Licence de Mathématiques Fondamentales Calcul Scientifique

de Lagrange associés à E. On munit C([a b]



Notes de programmation (C) et dalgorithmique

3 jan. 2022 1.2 Structure et interprétation d'un programme C . . ... La r`egle de Horner est un autre algorithme pour évaluer un polynôme de degré n ...



Analyse et implantation dalgorithmes rapides pour lévaluation

la même borne d'erreur que l'algorithme de Horner. En notant C(p) le coût d'évaluation d'un polynôme de degré n = 2p ?1 sachant que l'on conna?t.



Méthode Horner - Free

Ouvrer xcas et dans un environnement de programme (Alt+p) taper : Horner(Cx):={local Qkn; //les variables locales n:=size(C)-1; // Le degré du polynome P Q:=C[0]; pour k de 1 jusque n faire Q:=(Q*x)+C[k]; fpour; retourne(Q)} Compiler ce programme (F9) et dans une autre entrée tester le avec : L:=[3-2725-3] Horner(L2) Horner(L10000



Searches related to algorithme de horner en c PDF

Algorithme de Horner compensé en précision ?nie et applications Stef Graillat LIP6/PEQUAN - Université Pierre et Marie Curie (Paris 6) Séminaire SPIRAl/SALSA 1 juin 2007 Paris S Graillat (Univ Paris 6) Algorithme de Horner compensé 1 / 40

Comment fonctionne l’algorithme de Hörner ?

Dans l’algorithme de Hörner donné précédemment, on a traitéles bits de la “puissance” en com-mençant par ceux de poids forts. Peut on décrire un algorithme fondé sur un principe analogue quitraiterait d’abord les bits de poids faible ?

Comment calculer la méthode de Horner ?

Une présentation de la méthode de Horner dans un tableau montre la simplicité de l'algorithme : chaque coefficient de Q s'obtient en multipliant le coefficient de la case de gauche par a et en lui ajoutant le coefficient de la case du dessus.

Comment fonctionne l’algorithme d’apprentissage ?

La machine peut automatiser les tâches en fonction des situations. En fonction des données d’expérimentation que prendra l’algorithme d’apprentissage en entrée, il déduira par lui-même une hypothèse de fonctionnement. Il utilisera cette dernière pour de nouveaux cas, et affinera son expérience au fil du temps.

Comment calculer l’algorithme de Hörner binaire ?

Par exemple, si l’opération?est l’addition des entiers avec son élément neutre0, et sia= 1, l’al-gorithme est exactement l’algorithme de Hörner binaire, dereconstitution de l’entiernà partir de sesbits, que nous avons décrit précédemment. qui ae= 1pour élément neutre, l’algorithme calculeanmodc.

Travaux Pratiques de programmation n

o7Cours de programmation impérative-Licence MPI L1 S2 - Info 121-Exemple d"utilisation d"un type abstrait : les polynômes

Dans cette séance de travaux pratiques, nous utilisons une implantation du type abstrait Polynôme, défini par les fonctions ci-dessous :

1voidP olynomeNul(Polynome& p);

2voidm odifierCoeffPoly(Polynome& p,i ntd ,f loatc o);

3intd egrePoly(Polynomep );

4floatc oeffPoly(Polynomep ,i ntd );

5boole stNulPoly(Polynomep );

6boole galPoly(Polynomep ,P olynomeq );

L"implantation est fournie dans deux fichiersPolyAbstr.hppetPolyAbstr.cpp. Il n"est pas utile que vous compreniez le contenu de ces deux fichiers qui utilisent la programmation orientée objet.1 Conventions de nommage Quand on commence à écrire des programmes avec quelques dizaines de fonctions, pour éviter

d"avoir en permanence à se poser des questions comme " Quel est le nom de la fonction qui ... » ou

bien " Dans quel ordre dois-je passer les paramètres à la fonction ... », il est utile de suivre quelques

conventions. Toutes les entreprises de développement de logiciels, tous les projets de logiciels sérieux

fixent ainsi un certain nombre de règles concernant l"indentation du code, le choix des noms des fonctions et l"ordre des paramètres.

Les choix faits dans la convention suivante sont pour la plupart arbitraires, ils sont là seulement

pour éviter des hésitations comme par exemple : dois-je écrire "EstVide» ou bien "estVide» où

encore "est_vide»? Rien ne vous interdit de vous en écarter si elles ne vous plaisent pas, mais ne

pas suivre de conventions est un bon moyen de perdre bêtement du temps. Les noms des types commencent par une majuscule (par exemplePolynome). On utilise la convention ditecamelCasepour les noms de fonctions (les mots accolés et com- mençant par une majuscule). Lesconstructeurs d"un type abstraitcommencent par le nom du type (par exemple PolynomeNul); le premier paramètre est l"objet à construire. Les procédures et fonctions qui manipulent un type abstrait ont leurnom qui se termine par le type (ou une abréviation, iciPoly).

Quand une procédure fait un calcul, il y a souvent deux manières de transmettre le résultat :

1. soit on modifiel"un des paramètres passé en mode Donnée-Résultat; dans ce cas le nom de la fonction sera unverbe conjugué qui décrit l"actionque l"on fait sur le paramètre; ce paramètre sera toujoursle premier paramètre. Par exempleajoutePoly(p, q)ajouteqau paramètrep. 2. soit on retourne le résultatdans un paramètre passé en mode Résultat; dans ce cas le nom de la fonction sera unnom qui décrit le résultat de l"action. Le paramètre recevant le résultat sera alors toujoursle dernier paramètre. Par exemplesommePoly(a, b, c)place danscla sommea+b. 1

2 Mise en place

Les quatre fichiersmain.cpp,PolyAbstr.hpp,PolyAbstr.cppetMakefilesont à extraire depuis l"archive comme dans les précédents T.P. 1. Ouvrir le fic hierd"en-tête PolyAbstr.hppet lire la partie de ce fichier contenant la documen- tation des fonctions, en cherchant à bien comprendre ce que fait chaque fonction. 2. Ouvrir le fic hiermain.cppet deviner ce qu"il va afficher à l"exécution (sans le compiler ni l"exécuter pour l"instant). 3. Comme le co deest comp oséde plusieurs fic hiers,il faut normalemen ttap erplusieurs c om- mandes pour le compiler. Il est plus pratique d"écrire une bonne fois pour toutes les commandes

à taper et de laisser la machine lancer les commandes nécessaires à la compilation. Pour ceci,

on utilise l"outilmake. Avec cet outil, on décrit la configuration du projet dans un fichier appelé

Makefile. Ensuite, pour compiler projet il suffit de taper dans le terminal la commande make L"outil va lancer tout seul les appels au compilateur nécessaires comme si vous les aviez tapé au clavier. Il faut donc comme d"habitude se trouver dans le dossier où se trouvent vos fichiers pour que la commande fonctionne. On peut ensuite faire le ménage en tapant make clean 4. Après a voircompilé en utilisan tmake, lancez le programmemain. Vous devriez normalement voir apparaître :

Le polynome p est : 4X^5 - 5X^2 + X - 1

Le polynome 3*p est : 12X^5 - 15X^2 + 3X - 3

La derivee de p est : 20X^4 - 10X + 1

Ainsi, nous pouvons créer, afficher, multiplier par une constante, et dériver un polynôme.

On remarque que pour pouvoir les utiliser, vous n"avez pas besoin de savoir comment sont implantés

les polynômes. (Pour les curieux : nous utilisons ici des tables associatives qui sont usuellement elles-

mêmes un type abstrait implanté avec des arbres auto-équilibrants dits rouge-noir.) Attention :Dans la suite de ce TP, on ne modifiera que le fichiermain.cpp. On considère en effet

que le travail d"implantation du type abstrait est effectué par une autre équipe de développement.

La semaine prochaine, nous ferons le contraire : on ne modifiera pas le programme principal, mais on implantera nous-même les 5 fonctions du type abstrait.

3 Calcul avec les polynômes

En s"inspirant des fonctions déjà écrites, on demande d"écrire et de tester dans lemainles fonctions

suivantes (en prenant soin de procéder à chaque étape à des tests de validation) :

1.void polynomeCoeffEgaux(Polynome &p, int degree, float coeff)qui construit un po-

lynômepde degrédegreepour lequel tous les coefficients sont égaux àcoeff. Ainsi, l"appel polynomeCoeffEgaux(p, 3, 2)a comme résultat le polynôme2X3+ 2X2+ 2X+ 2.

2.float evalPoly(Polynome p, float x)qui calcule la valeur du polynômepau pointx. Par

exemple, pour le polynômeX4+ 2X25, on s"attend à ce que la fonctionevalPolyrenvoie

19si elle est évaluée pourX= 2. Vous utiliserez pour cela la fonctionpuissance(float x,

int k), qui renvoiexket qui est déjà fournie (voirPolyAbstr.hpp). Puis (une fois la fonctionevalPolycodée et testée) : 2 (a)À l"aide de la fonction polynomeCoeffEgaux, construisez un polynôme de degré10000dont

tous les coefficients sont égaux à 1.0001. Évaluez le polynôme construit à l"aide de la fonction

EvalPolyau pointX= 1:0001.

(b) On p euten fait aller b eaucoupplus vite p ourl"exécution de evalPoly. Afin d"accélérer l"évaluation d"un polynôme, nous allons implémenter une seconde fonction evalHornerPoly(Polynome p, float x). Cette méthode permet de calculer la valeur d"un polynôme de degrénen ne faisant quenadditions etnmultiplications au lieu den(n+1)2

La méthode consiste à multiplier le coefficient de plus haut degré parx, puis à lui ajouter le

second coefficient. On multiplie le résultat parx, auquel on ajoute le troisième coefficient, etc. Considérons l"exemple du polynôme2X3+3X25X+6, pourX= 3. On l"écrit sous la forme(((2)X+ 3)X5)X+ 6. On effectue donc le calcul de la manière suivante : Le premier co efficient(celui de plus haut degré), v aut2. Je le m ultiplepar Xet j"ajoute le deuxième coefficient soit3, et j"obtiens3, qui est la valeur de(2)X+ 3. Je m ultipleà nouv eaupar Xet j"ajoute le troisième coefficient5, je passe donc à14, qui est la valeur de((2)X+ 3)X5. Je m ultipleune nouv ellefois par Xpuis j"ajoute le dernier coefficient,6. J"obtiens le résultat final de36(valeur de(((2)X+ 3)X5)X+ 6soit le résultat voulu).

Implémentez l"algorithme de Horner.

(c) La métho dede Horner p ossèdeun autre a vantage.Construisez le p olynômeX1099X9, et évaluez-le pourX= 100avec la méthode normale et la méthode de Horner. Que constatez- vous?

3.void ajoutePoly(Polynome &p, Polynome q)qui ajouteqau polynômep.

4.void produitPolyXn(Polynome p, int n, Polynome &res)qui place dansresle produit

du polynôme p parXn. Par exemple, si P est défini parP= 4X55X2+X1, alorsPX2 est le polynômeP= 4X75X4+X3X2

5.void produitPoly(Polynome p, Polynome q, Polynome &res)qui place dansresle pro-

duit de deux polynômes. Par exemple siPest toujours défini par

P= 4X55X2+X1;

on calculeP(X3+ 2X1)par

P(X3+ 2X1) = 1(PX3) + 2(PX1) + (1)P(X0)

= (4X85X5+X4X3) + 2(4X65X3+X2X) + (4X5+ 5X2X+ 1) = 4X8+ 8X69X5+X411X3+ 7X23X+ 1

6.void puissancePoly(Polynome p, int n, Polynome &res)qui place dansresla puissance

n-ième du polynômep. On peut alors afficher les puissances successives du polynôme(X+ 1) 3 et voir apparaître le triangle de Pascal : 1 X+ 1 X

2+ 2X+ 1

X

3+ 3X2+ 3X+ 1

X

4+ 4X3+ 6X2+ 4X+ 1

X

5+ 5X4+ 10X3+ 10X2+ 5X+ 1

X

6+ 6X5+ 15X4+ 20X3+ 15X2+ 6X+ 1

X

7+ 7X6+ 21X5+ 35X4+ 35X3+ 21X2+ 7X+ 1

4quotesdbs_dbs27.pdfusesText_33
[PDF] module 1 rencontres 1ére année

[PDF] exposé sur le film intouchable

[PDF] texte au hasard d une rencontre 1ére année

[PDF] objet et methode de lanthropologie

[PDF] analyse anthropologique définition

[PDF] intouchables résumé

[PDF] démarche anthropologique définition

[PDF] enquête de terrain anthropologie

[PDF] enquête anthropologique

[PDF] observation participante anthropologie

[PDF] écrire des dialogues scénario

[PDF] méthode de la sécante exemple

[PDF] méthode de dichotomie exercices corrigés

[PDF] mots argot jeunes

[PDF] méthode de la sécante matlab