Poster une réponse 
TP6 : Méthode par balayage (boucles tant que)
11-10-2019, 05:13 PM
Message : #1
TP6 : Méthode par balayage (boucles tant que)
Soit f la fonction définie par f(x) = x² + x
On cherche l'antécédent de 3 par la fonction f

Cela revient à chercher les valeurs de x qui ont pour image f(x) = 3
[Image: balayage1.png]
Cela revient à résoudre l'équation f(x) = 3

c'est-à-dire l'équation x² + x = 3
Or, on ne sait pas résoudre cette équation hum



Une calculatrice graphique nous montre qu'une valeur de x cherchée est comprise entre 1 et 2
[Image: balayage2.png]

Nous allons essayer de trouver un encadrement d'amplitude 10-3 (c'est-à-dire 0,001)
de cette solution



flecherouge Avec le tableau de valeurs de la calculatrice, observer quand f(x) dépasse 3
car on "voit" que la fonction f est croissante sur l'intervalle [ 1 ; 2 ]

L'écran de la calculatrice doit montrer ceci :
[Image: balayage3.png]
La calculatrice nous montre que 1,302 < solution < 1,303

[Image: 118.gif]
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur
Citer ce message dans une réponse Return to top
31-10-2019, 03:08 PM
Message : #2
TP6 : Méthode par balayage (boucles tant que)
Si on devait faire cette recherche "à la main",
il faudrait calculer les images des nombres de 0,001 en 0,001 à partir de 1

On calcule f(1)
Si f(1) < 3 alors on continue, sinon on arrête
On calcule f(1,001)
Si f(1,001) < 3 alors on continue, sinon on arrête
On calcule f(1,002)
Si f(1,002) < 3 alors on continue, sinon on arrête
On calcule f(1,003)
Si f(1,003) < 3 alors on continue, sinon on arrête
etc...



Cette méthode s'appelle méthode par balayage
car on "balaye" successivement toutes les valeurs de x pour trouver celle qui nous intéresse...

Lancer le balayage dans le fichier suivant fi_lone_ranger





Reprenons notre algorithme :
On calcule f(1)
Si f(1) < 3 alors on continue, sinon on arrête
On calcule f(1,001)
Si f(1,001) < 3 alors on continue, sinon on arrête
On calcule f(1,002)
Si f(1,002) < 3 alors on continue, sinon on arrête
On calcule f(1,003)
Si f(1,003) < 3 alors on continue, sinon on arrête
etc...


Pour ne pas avoir à écrire "etc...", on pourrait écrire

on commence avec x qui a la valeur 1
on calcule f(x)

tant que f(x) < 3
on ajoute 0,001 à la valeur de x
on calcule f(x)
fin du tant que


Bien sûr, cela risque d'être un petit peu long pour nous...
mais comme un ordinateur est capable de faire des millions d'opérations par seconde
nous allons lui demander de faire ce travail à notre place..! roll



Nous allons utiliser 2 variables :
• la variable x, dans laquelle sera rangée la valeur de x
• la variable y, dans laquelle sera rangée la valeur de f(x)

L'algorithme s'écrit alors :

on commence avec x qui a la valeur 1
on calcule f(x)

tant que f(x) < 3
on ajoute 0,001 à la valeur de x
on calcule f(x)
fin du tant que
x 1
y x² + x
tantque y < 3
x x + 0,001
y x² + x
fin tantque

flecherouge lire le message #1 du tutoriel 6

flecherouge Ecrire une fonction Python f qui renvoie l'image d'un nombre par la fonction donnée (f(x) = x² + x)

flecherouge Ecrire une fonction Python balayage
qui renvoie les deux bornes de l'encadrement de la solution de l'équation f(x) = 3
en commençant à 1
flecherouge Appeler cette fonction dans la console
Python affiche les résultats avec 16 chiffres après la virgule
Pour afficher les résultats avec 3 chiffres après la virgule (1,302 et 1,303),
il faut arrondir en utilisant l'instruction round
round (nombre, 3) arrondi le nombre à 3 chiffres après la virgule

flecherouge Ecrire une fonction Python balayagecroissant
qui renvoie les deux bornes de l'encadrement de la solution de l'équation f(x) = k (n'importe quel nombre réel) avec une fonction croissante f
en commençant à xdébut (n'importe quel nombre réel)
avec un pas égal à p (n'importe quel nombre de la forme 10 -n, n étant un nombre entier naturel)
flecherouge Appeler cette fonction dans la console :
• pour trouver un encadrement d'amplitude 10-4 de la solution de l'équation x² + x = 3 en commençant à 1,2
• pour trouver un encadrement d'amplitude 10-5 de la solution de l'équation x² + x = 1 en commençant à 0,5

[Image: 118.gif]
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur
Citer ce message dans une réponse Return to top
13-06-2021, 01:55 PM
Message : #3
TP6 : Méthode par balayage (boucles tant que)
Mais, en observant la courbe sur une calculatrice, on s'aperçoit que
l'équation f(x) = 3 a une autre solution comprise entre -3 et -2
[Image: balayage4.png]


flecherouge Ecrire une fonction Python balayagedécroissant
qui renvoie les deux bornes de l'encadrement de la solution de l'équation f(x) = k (n'importe quel nombre réel) avec une fonction décroissante f
en commençant à xdébut (n'importe quel nombre réel)
avec un pas égal à p (n'importe quel nombre entier négatif)
flecherouge Tester cette fonction dans la console :
• pour trouver un encadrement d'amplitude 10-2 de l'autre solution de l'équation x² + x = 3 en commençant à -3
• pour trouver un encadrement d'amplitude 10-6 de l'autre solution de l'équation x² + x = 1 en commençant à -1,8

[Image: 118.gif]
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur
Citer ce message dans une réponse Return to top
22-03-2022, 09:32 AM
Message : #4
TP6 : Méthode par balayage (boucles tant que)
Voici un fichier qui montre la méthode de balayage roll

Pour que la recherche aboutisse, il faut que :
• l'équation ait une solution "visible"
• xdépart doit être inférieur à la solution cherchée
• le point noir doit parcourir une portion toujours montante (ou toujours descendante) de la courbe


[Image: 118.gif]
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur
Citer ce message dans une réponse Return to top
Poster une réponse