kekeking Posté(e) le 3 mars 2021 Signaler Posté(e) le 3 mars 2021 (modifié) J'ai besoin d'aide pour un devoir-maison. Voici ce que l'on nous demande: 1) Créer un programme en python calculant la racine carrée d’un entier n. (en python racine s’écrit sqrt (). 2) a) Ecrire un algorithme permettant de trouver une approximation de √n (racine de n) avec une précision p à l’aide de la suite (un). b) Programmer cet algorithme. c) Combien de valeurs successives sont nécessaires pour obtenir une valeur approchée de 5 avec une précision p = 10-8 . Modifié le 3 mars 2021 par Denis CAMUS Changement de titre Citer
E-Bahut Denis CAMUS Posté(e) le 3 mars 2021 E-Bahut Signaler Posté(e) le 3 mars 2021 il y a 52 minutes, kekeking a dit : 2) a) Ecrire un algorithme permettant de trouver une approximation de √n (racine de n) avec une précision p à l’aide de la suite (un). Bonjour, (non, c'est pas un gros mot) Quelle suite ? De rien. Citer
E-Bahut pzorba75 Posté(e) le 3 mars 2021 E-Bahut Signaler Posté(e) le 3 mars 2021 Algorithme de Héron, de mémoire. Internet foisonne d'exemples complets de cet algorithme. Fouine un peu et sans trop d'efforts tu auras la réponse. Citer
kekeking Posté(e) le 3 mars 2021 Auteur Signaler Posté(e) le 3 mars 2021 Il y a 4 heures, Denis CAMUS a dit : Bonjour, (non, c'est pas un gros mot) Quelle suite ? De rien. Citer
E-Bahut julesx Posté(e) le 4 mars 2021 E-Bahut Signaler Posté(e) le 4 mars 2021 Bonjour, Qu'as-tu fait jusqu'à présent ? Citer
kekeking Posté(e) le 5 mars 2021 Auteur Signaler Posté(e) le 5 mars 2021 (modifié) Bonjour, pour l'instant j'ai juste fait le 1) 2) et le 3) a, b et c je ne comprends pas cependant le 3 d donc par conséquent incapable de répondre à la e et je ne comprends pas également tout le 4) Modifié le 7 mars 2021 par Denis CAMUS Suppression de la citation inutile Citer
E-Bahut julesx Posté(e) le 5 mars 2021 E-Bahut Signaler Posté(e) le 5 mars 2021 Bonjour, La suite concerne la programmation en Python. Je suppose que tu as quelques notions de ce logiciel puisque tu as su faire le 3)c). En particulier qu'as-tu obtenu au 3)c) par exemple pour n=2 ? Citer
kekeking Posté(e) le 5 mars 2021 Auteur Signaler Posté(e) le 5 mars 2021 (modifié) Pour n= 2, j'ai obtenu les résultats suivants: 2; 1,5; 1,416; 1,414; 1,414; 1,414; 5; 1,414; 1,414; 1,414; 1,414 Modifié le 7 mars 2021 par Denis CAMUS Suppression de la citation inutile Citer
E-Bahut julesx Posté(e) le 6 mars 2021 E-Bahut Signaler Posté(e) le 6 mars 2021 Bonjour, Avec seulement 3 décimales ? Tu as géré l'affichage ou tu n'as recopié que celles-là ? Par contre, le 5 au beau milieu est bizarre. 2; 1,5; 1,416; 1,414; 1,414; 1,414; 5; 1,414; 1,414; 1,414; 1,4 Donc, tu sais faire. Pour le d), il suffit d'un tout petit script from math import sqrt # car sqrt ne fait pas partir du langage de base, il faut donc importer le module math n=int(input("Valeur de n")) print(sqrt(n)) Tu dois constater que ce script retourne la dernière valeur de chacune des listes précédentes. Pour l'algorithme de la partie 4, réfléchis et essaie de poster un élément de réponse. Citer
kekeking Posté(e) le 6 mars 2021 Auteur Signaler Posté(e) le 6 mars 2021 (modifié) Pour l'algorithme de la partie 4, j'ai vu qu'on pouvait utiliser l'algorithme de Héron car ce dernier permet de déterminer des valeurs approchées de √𝑛 pour n entier naturel. Pour déterminer une valeur approchée de √𝑛, on peut calculer les valeurs successives de 𝑢2,𝑢3,𝑢4,... avec : 𝑢1 = 𝑛 𝑢2 = 0,5(𝑢1 + 𝑛/𝑢1) 𝑢3 = 0,5(𝑢2 + 𝑛/𝑢2) 𝑢4 = 0,5(𝑢3 + 𝑛/𝑢3) et ainsi de suite En poussant un peu plus mes recherches sur Internet, j'ai pu trouver un algorithme écrit en langage naturel permettant de calculer √𝑛 avec une précision p (ici en pièce jointe): j'ai essayé de le traduire en langage python mais je n'y arrive pas, il y a toujours une erreur de syntaxe... Modifié le 7 mars 2021 par Denis CAMUS Suppression de la citation inutile Citer
E-Bahut julesx Posté(e) le 6 mars 2021 E-Bahut Signaler Posté(e) le 6 mars 2021 Cet algorithme est correct, la seule chose qu'on peut lui reprocher, c'est qu'il suppose qu'on dispose effectivement de la fonction racine. Si on doit s'en passer, il faut tester la différence un-un-1 par rapport à p, donc travailler sur deux variables. Pour le moment, travaille avec l'algorithme que tu as trouvé. Poste ton script, ce n'est pas difficile à faire, c'est du texte, il suffit de faire un copier-coller. Je te dirai où ça ne va pas. Regarde aussi le message d'erreur, sur quel élément il porte. Citer
kekeking Posté(e) le 6 mars 2021 Auteur Signaler Posté(e) le 6 mars 2021 (modifié) Voici le script que j'ai fait: Modifié le 6 mars 2021 par Denis CAMUS Suppression de la citation inutile Citer
E-Bahut julesx Posté(e) le 7 mars 2021 E-Bahut Signaler Posté(e) le 7 mars 2021 Bonjour, En supposant que les indentations sont correctes, il y a deux choses qui ne vont pas : * u=0,5*(u+(n/u)) la virgule, pour Python, comme pour la plupart des logiciels de programmation, le séparateur décimal est le point. * return u and p Je ne sais pas comment Python interprète ce and dans ce contexte, en tout cas, pas correctement. La bonne syntaxe est return u,p Mais, de toute façon, le retour de p ne sert à rien, il vaut mieux retourner i, nombre de calculs successifs. J'ai testé ce script, qui fonctionne, from math import* def k(n,p): u=n i=0 while(u-sqrt(n))>p: u=0.5*(u+n/u) i=i+1 return u,i print(k(2,0.001)) Citer
kekeking Posté(e) le 7 mars 2021 Auteur Signaler Posté(e) le 7 mars 2021 (modifié) D'accord merci beaucoup pour ton aide. Grâce à toi, je pense avoir réussi Modifié le 7 mars 2021 par Denis CAMUS Suppression de la citation inutile Citer
E-Bahut Denis CAMUS Posté(e) le 7 mars 2021 E-Bahut Signaler Posté(e) le 7 mars 2021 Bonjour, Lorsque tu veux répondre au dernier message (juste au-dessus) il est inutile de cliquer sur "Citer". Cela recopie ce message inutilement et n'apporte rien de plus, sinon alourdir le fil et parfois le rendre difficilement compréhensible. Il vaut mieux taper le texte directement dans le cadre du bas, celui où il y a écrit : "Répondre à ce sujet". Citer
E-Bahut julesx Posté(e) le 7 mars 2021 E-Bahut Signaler Posté(e) le 7 mars 2021 @kekeking Juste un petit complément. Si on ne veut pas utiliser la fonction sqrt, on peut procéder comme indiqué dans le script ci-dessous (évidemment testé) n=int(input("Valeur de n ?")) p=float(input("Précision ?")) u0=n u1=1/2*(u0+n/u0) nb=1 while u0-u1>p: u0=u1 u1=1/2*(u0+n/u0) nb=nb+1 print(str(u1)+" < racine("+str(n)+") < "+str(u0)) print("Nombre de valeurs successives : "+str(nb)) L'idée est de travailler sur deux valeurs successives de un et de comparer l'écart à la précision souhaitée. Sur Internet, tu trouves aussi une méthode utilisant deux suites Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.