Bonjour à tous, j'espère que vous passer de bonne vacances, j'ai un dm de mathématiques pour la rentrer. Sur cinq exercice, il n'y a que celui-ci qui me pose problème. malheuresement malgré de nombreuses recherches, je n'arrive pas à le résoudre. pouvez-vous m'aidez svp ?
On considère la suite (un) définie par u0 = 0 et un+1 = un +3n(n +1)+1 pour tout entier n > 0.
1. À l'aide d'une calculatrice, conjecturer une expression explicite de un.
2. Démontrer cette égalité en utilisant une démonstration par récurrence.
3. Écrire un programme en Python qui demande un entier naturel n et qui affiche le terme de
rang n de la suite (u).
4. Écrire un programme en Python qui demande un entier naturel n et qui affiche tous les
termes de rang inférieur ou égal à n de la suite (u).
bonjour, non je ne l'est pas faite. je ne comprends pas ce qu'il veut dire par expression explicite.
Par expression explicite, on entend une fonction de n. On aurait ainsi directement le calcul de un sous la forme un=f(n).
Pour conjecturer cette fonction, encore faut-il avoir calculé les 5 ou 6 premiers termes pour se faire une idée...
Je trouve la même chose.
Donc f(n)=n3.
Il s'agit maintenant de démontrer cette conjecture par récurrence.
c'est la où je bloque j'ai fait l'initialisation en montrant que la propriété était vraie au rang 1. mais je n'arrives pas à faire l'hérédité.
Soit un entier n tel que un=n3
On en déduit que un+1=un+3n(n+1)+1
donc : un=n3+3n(n+1)+1
Or (n+1)3= ...
il ne passe pas de la 3e à la 4e justement, il aimerait bien
d'où l'idée
mais que vaut (n+1)³=(n+1)²*(n+1)=....
et tu verras bien
....
Pour que l'hérédité soit démontrée, il faut que, partant d'un entier n tel que un=n3, on puisse en déduire que un+1=(n+1)3
Prenons un entier n tel que un=n3 (on sait qu'il en existe car cette égalité est vraie pour n=0, n=1, n=2). Cette égalité est ce qu'on appelle l'hypothèse de récurrence.
On déduit : un+1=un+3n(n+1)+1 par définition
Donc : un+1=n3+3n(n+1)+1 d'après l'hypothèse de récurrence
Or (a+b)3=a3+3a2b+3ab2+b3
Donc (n+1)3=n3+...
On peut alors conclure.
je te croyais parti patrice rabiller, je te laisse...
vaness62, pour travailler des exos sur la récurrence, Le raisonnement par récurrence : principe et exemples rédigés
(n+1)² on est de la forme (a+b)²=a²+2ab+b²
(n+1)²=n²+2*n*1+1²
(n+1)²=n²+2n+1
(n²+2n+1)*(n+1)
n²*n +n²*1+2n*n+2n*1+1*n+1*1
n3+n²+2n²+2n+n+1
n3+3n²+3n+1
merci Malou, j'irais voir car je n'y arrive vraiment pas. est -ce que la deuxième manière dont j'ai résolu l'opération est correcte ?
d'accord merci donc si je résume,
Initialisation:
Vérifions si la propriété est vraie au rang 1
u1=13=1
u0+1= 0+3*0(0+1)+1= 1
1=1
Donc la propriété est vraie au rang 1
Hérédité: Supposons que pour n fixé, n>0
Formulons une hypothèse de récurrence
Soit n un entier tel que un=n3
On en déduit que un+1= n3+3n(n+1)+1
Nous devons démontrer que un+1=n3+3n(n+1)+1
Or (a+b)3=a3+3a2b+3ab2+b3
Donc (n+1)²*(n+1)=(n+1)²=n²+2*n*1+1²
(n+1)²=n²+2n+1
(n²+2n+1)*(n+1)
n²*n +n²*1+2n*n+2n*1+1*n+1*1
n3+n²+2n²+2n+n+1
n3+3n²+3n+1
Conclusion: l'hypothèse de récurrence est vraie, la propriété est vraie au rang n+1, elle est donc vraie pour tout n
est -ce que si j'écris cela sur ma copie, c'est bon ?
De plus, pouvez vous m'aidez pour les deux dernières questions car je n'arrives pas à écrire en python ni a faire les algorithme.
Sachant que je vais au sport, je serais de retour sur le forum soit ce soir vers 22 heures ou demain matin.
Je remercie Malou et Patrice rabiller pour l'aide que vous m'avez déjà apporter.
Bel effort de rédaction, même s'il y a quelques fautes (j'en fait aussi).
Globalement ton raisonnement se tient, même si le déroulé de la démonstration pourrait être amélioré. Pour ma part, j'accepterais ce texte d'un élève.
Avant d'écrire le programme en Python, il faut rédiger l'algorithme en français. Une fois que ce sera fait, la traduction en Python (ou dans un langage quelconque) sera facile.
J'imagine que l'algorithme doit être basé sur la définition de départ et non pas sur la formule explicite démontrée par récurrence...
C'est toujours la même démarche :
1) choisir les variables,
2) les initialiser (soit par programme, soit par saisie en entrée)
3) écrire la structure itérative globale (la boucle)
4) préciser ce qui doit être affiché en sortie
Re Bonjour, après une bonne nuit de sommeil me revoilà
donc si j'ai bien compris pour la question 3,
variables: u et n sont des nombres
Initialisation: Affecter la valeur superieur a 1 a n
Affecter la valeur 0 à u
Traitement : calculer un+1 = un +3n(n +1)+1
n prend la valeur n+1
u prend la valeur un+1
Sortie: Afficher n
Est- ce que celui ci est correct ?
Un autre exercice de mon dm, me pose quelques problème, je croyais réussir à le faire mais malheureusement je n'y arrive pas. Est- ce que je dois refaire un nouveau post ou est ce que je peux le mettre à la suite de celui ?
pour la question 3,
variables: u et n sont des nombres
Initialisation: Affecter la valeur superieur a 1 a n
Affecter la valeur 0 à u
Traitement : calculer un+1 = un +3n(n +1)+1
n prend la valeur n+1
u prend la valeur un+1
Sortie: Afficher n
Est- ce que celui ci est correct ?
D'accord mais du coup avant l'initialisation, est - ce que je peux rajouter
variables: u, n et k sont des nombres ?
Désolé, je ne maîtrise pas ce langage. Je peux te l'écrire, en Basic, en Pascal, en Java, en langage Ti ou Casio, en langage Scratch et même en Processing. Revois ton cours sur Python, ce n'est certainement pas le plus difficile à faire
le problème est que je n'ai pas fait de cours sur celui -ci. Je vais essayer de faire l'algorithme de la question 4 et je vous le mettrais
Dans la question 3, on demande d'afficher le terme de rang n. L'algorithme calcule tous les termes à l'aide de la relation de récurrence, puis, après la boucle tant que (après le "fin tant que") on affiche u en sortie
Dans la question 4, on demande d'afficher tous les termes de la suite jusqu'au rang n (et pas seulement le dernier). Il faut donc faire l'affichage de u à l'intérieur même de la boucle tant que, au fur et à mesure des calculs. La valeur de u change à chaque passage dans la boucle et elle est affichée à chaque fois.
Initialisation :
Affecter 0 à u et à k
Lire n
Traitement :
Tant que k<n faire
Affecter à u la valeur u+3k(k+1)+1
Affecter à k la valeur k+1
Afficher u
Fin tant que
Sortie :
Afficher n
c'est cela ?
Il n'est pas nécessaire d'afficher n en sortie. La sortie des résultats se fait à l'intérieur du traitement. Sinon, ton algorithme est correct.
Pour Python, tu n'as peut être pas eu de cours, mais tu as eu sûrement des exemples de programmes écrit en Python. Il suffit de lire les exemples pour voir :
-> comment on déclare les variables (dans certains langages la déclaration n'est pas obligatoire)
-> comment on initialise une variable (parfois on peut le faire au moment de la déclaration)
-> comment se fait une affectation (souvent avec l'horrible signe = très mal choisi à mon avis mais on n'y peut rien et c'est une autre histoire)
-> comment on fait une boucle tant que avec une condition (test de sortie de boucle)
-> comment on affiche un résultat sur l'écran
oui c'est bon merci j'ai trouvé pour python grâce à cette fiche. je n'arrives juste pas à trouvé comment faire fin tant que:
http://download.tuxfamily.org/edupython/Bases.pdf
du coup, pour l'algorithme je n'affiche rien en sortie ?
La fin d'une boucle se fait peut-être avec l'accolade fermante (je dis ça de mémoire)
Quelque chose comme ça :
While (condition){
...
}
Non, il n'y a rien à afficher en sortie après la boucle. Les affichages se font à l'intérieur de la boucle.
Je trouve d'ailleurs désolant qu'on demande aux élèves de décrire un algorithme avec 4 phases :
1) déclaration des variables
2) initialisation
3) traitement
4 )sortie
Ce type de structure n'est pas adapté à notre exemple. Personnellement je ne présente pas les algorithmes de cette manière. Je montre à mes élèves cette manière de faire, mais je leur montre d'autres présentations aussi.
La condition est une expression logique ou booléenne (qui ne peut prendre que 2 valeurs possibles : vrai/faux). Ici, la condition est "k<n" . Lorsque la condition est remplie (résultat vrai) la boucle continue. Lorsque la condition n'est plus remplie, la boucle s'arrête (et le programme aussi).
donc pour le programme pyhon de l'algorithme de la ques 3
u==0
k==0
while k<n faire
u==u+3k (k+1)+1
k==k+1
while( true) {
...
}
Print('u")
il y a juste le faire que je ne suis pas sûr et le lire n que je n'est pas mit. est ce que lire n on peut l'interpréter comme demander la valeur de n ?
Plusieurs erreurs :
le double signe == ne sert pas pour l'affectation mais pour l'égalité. Si a=b alors ... s'écrit probablement en Python (comme en C ou Java) If (a==b) ...
Pour l'affectation je crois que c'est le simple signe =
La boucle while (true) doit être enlevée sinon ton programme ne se terminera jamais
La saisie en entrée : je ne sais pas comment elle se fait en Python. Il faudrait qu'un autre correcteur prenne le relai.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :