Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

Répondre

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le deuxième mot de cette phrase?

Retour

Résumé de la discussion (messages les plus récents en premier)

yoshi
29-10-2017 07:53:49

Bonjour,

Oui ?
Alors, c'est bien...
Cependant (sauf si tu avais aussi compris cela) :
- la condition donnée par l'énoncé c'est [tex]|u_n-1|<10^{-3}[/tex]
  Je t'ai proposé TANT QUE  [tex]|u_n-1|\geqslant 0.001[/tex]
  Parce que si la valeur absolue n'est pas supérieure ou égale c'est qu'elle est strictement inférieure
- on peut améliorer l'algorithme et demander l'affichage correct de N.
  il suffit de créer un compteur i et non plus N et d'affecter à N la valeur de i, puis d'augmenter i

Version AlgoBox :

VARIABLES
    i EST_DU_TYPE NOMBRE
    u EST_DU_TYPE NOMBRE
    N EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
    i PREND_LA_VALEUR 0
    u PREND_LA_VALEUR 0
    TANT_QUE (abs(u-1)>=0.001) FAIRE
         DEBUT_TANT_QUE
         N PREND_LA_VALEUR i
         i PREND_LA_VALEUR i+1
         u PREND_LA_VALEUR (2*u+1)/(u+2)
         FIN_TANT_QUE
    AFFICHER "N = "
    AFFICHER N
    AFFICHER "u = "
    AFFICHER u
FIN_ALGORITHME

Résultat :

***Algorithme lancé***
N = 6
u = 0.99908592
***Algorithme terminé***

- d'autres langages plus évolués comme Python (il y en a bien d'autres) dispose de la négation not, pas AlgoBox
  Version Python :

i,u=0,0
while not(abs(u-1)<0.001):
    N=i
    i+=1
    u=(2*u+1)/(u+2)

print("N =",N)
print("u =", u
print("|u-1| =", abs(u-1))

Tu constates
  * l'utilisation de not
  * l'affichage de la valeur abolue.
Pour not, ça n'existe pas avec AlgoBox
Pour l'affichage de la valeur absolue avec AlgoBox, j'aurais été obligé
    --> de créer une variable supplémentaire (par exemple V)
    --> d'affecter à V la valeur abosolue de u-1
    --> d'afficher le message "V = "
    --> d'afficher la variable V
Résultat Python :

N = 6
u = 0.9990859232175502
|u-1| = 0.000914076782449813

@+

ethukilop
28-10-2017 19:22:13

Oui merci beaucoup !!

yoshi
28-10-2017 18:20:59

Re,

[tex]u_{n+1}-u_{n}=\dfrac{1-u_{n}^2}{u_{n}+2}[/tex]

Si u0>1 la suite est décroissante
S u0 <1 la suite est croissante
D'accord pour [tex]l=1[/tex]
[tex]1-u^2_n=(1-u_n)(1+u_n)[/tex]
Le numérateur est positif entre -1  et  1, négatif en dehors

Pour les valeurs absolues, prends la barre avec AltGR + 6
les variables a définir sont N et U.
On  affecte la valeur 0 à N et à u
TANT QUE |u-1|>=0.001
       augmenter N de 1 : N=N+1
       calculer la nouvelle valeur de u = : u=(2*u+1)/(u+2)
FIN de TANT QUE
Afficher N-1
Afficher u
Le test d'arrêt est donné par l'énoncé...
A l'intérieur de ta boucle tu dois gérer un compteur N qui augmente de 1 à chaque tour...
A la sortie on a bien |u-1|<0.001.
Donc le N est trop grand puisque il est demandé le plus petit N tel que n>N vérifie la condition
Donc il faut diminuer N de 1 --> affichage 6, ainsi pour n>6, soit à partir de 7 la condition est vérifiée

Réponse N = 6
et donc [tex]u_7 \approx 0.9990859232175502[/tex]  et  [tex]|u_7-1|\approx  0.000914076782449813 <10^{-3}[/tex]

Pigé ?

@+

ethukilop
28-10-2017 17:25:50

L'exercice en entier est :
La suite [tex](u_{n})[/tex] est définie par :
[tex]u_{0}=0[/tex]
[tex]u_{n+1}=\frac{2\times u_{n}+1}{u_{n}+2}[/tex]

1) a) Démontrer par récurrence que pour tout n, 0=<un<1. --> OK
      b) Vérifier que [tex]u_{n+1}-u_{n}=\frac{1-u_{n}^2}{u_{n}+2}[/tex] puis montrer que la suite (un) est croissante. --> OK
2) En déduire que la suite (un) est convergente vers une limite [tex]l[/tex]. ->ok
3) On admet que cette limite [tex]l[/tex] vérifie [tex]f(l)=l[/tex] avec [tex]f[/tex] définie sur [0;1] par [tex]f(x)=\frac{2x+1}{x+2}[/tex]
a. Déterminer la valeur de [tex]l[/tex] --> OK
b. Proposer un algorithme pour déterminer la valeur de [tex]N[/tex] tel que pour tout [tex]n>N[/tex], |un−[tex]l[/tex]| < 10^-3.
Entrer cet algorithme sur votre calculatrice puis déterminer [tex]N[/tex].
Et j'ai trouvé [tex]l[/tex]= 1

yoshi
28-10-2017 17:07:15

Bonjour,

Par IUn-1I tu entends  [tex]|u_n-1|[/tex] ?  ;  [tex]|u_{n-1}|[/tex] ? Autre chose ?
Je penche pour  [tex]|u_n-1|[/tex], mais pourquoi ce -1 ?
En tous cas, si u =0 on a :
U1=0.5
U2=0.8
U3=0.9285714285714287
............................
u35 = 1
u36 = 1
Alors [tex]| u_{35}-1| =0[/tex] idem pour [tex]u_n \text{ avec }n\geqslant 35[/tex]

Alors tu ne sortiras jamais de ta boucle :
Tant que [tex]|U_n-1<10|[/tex]
puisque à partit de n=35 [tex]|u_n-1|=0[/tex].

C'est pourquoi tu pars de u0=5 ?

@+

ethukilop
28-10-2017 16:37:53

Bonjour,
J'ai un algorithme à faire mais je ne sais pas comment m'y prendre. Voici l'énoncé :
U0= 0
[tex]U_{n+1}= \frac{2\times U_{n}+1}{U_{n}+2}[/tex]
Proposer un algorithme pour déterminer la valeur de N tel que pour tout n > N,
IUn-1I < 10.

J'ai fait :
U prend la valeur de 5
Tant que lUn-1l < 10
...
Afficher N

Et je ne sais pas quoi faire d'autre...

Pied de page des forums