Inscription / Connexion Nouveau Sujet
Niveau terminale
Partager :

Programme par dichotomie et balayage

Posté par
mcclure
14-12-14 à 18:38

Bonsoir,

en classe nous avons fait 2 séances en salle info mais seulement je ne pense pas avoir totalement saisi la manière d'effectuer un programme pour trouver la solution d'une fonction par dichotomie et par balayage, de plus j'ai très peu de notions en algorithmique donc j'aurais besoin de quelques bases.

J'ai seulement compris que par dichotomie, dans le cas d'une fonction continue dans un intervalle [a;b] où on souhaite trouver x tel que f(x)=0, il faut calculer f(a)*f(b) et selon le signe on en déduit que la solution est dans l'intervalle puis on fait f(a)*f((a+b)/2) et f((a+b)/2)*f(b), puis on fait de même pour le résultat négatif si j'ai bien compris ?

Comment faut-il écrire l'algorithme dans ce cas ?

J'ai fait un programme qui ressemble à peu près à ça, néanmoins il ne marche pas, peut-être parce qu'on ne peut pas mettre de "Si" sous une commande "Si" ou "Sinon" (de même que sous une boucle "tant que" je suppose ?)

Variables : a, b

Lire a,b
Si f(a)*f(b)>0 :
|Afficher "pas de sol"
Sinon :
|Si que f(a)*f((a+b)/2)<=0 :
|| b prend la valeur (a+b)/2
|Sinon :
|| a prend la valeur (a+b)/2


(Il y a-t-il moyen de faire une boucle tant que pour a ou b prend la valeur (a+b)/2 selon le signe de f(a)*f((a+b)/2) par exemple ?


Ensuite, concernant le balayage, le prof a utiliser un pas h (qu'on attribue par exemple 0,1 ou 0,01), là je n'ai pas compris comment il faut faire et il n'a pas donné de correction ...

De même, je souhaiterais également savoir comment écrire un programme pour faire un balayage avec une suite ? (j'ai entendu mes camarades dire qu'il faut utiliser une variable de type "liste" je crois)

Merci d'avance, désolé je sais que je demande beaucoup de choses

Posté par
Glapion Moderateur
re : Programme par dichotomie et balayage 14-12-14 à 18:57

oui, il faut pouvoir continuer l'itération tant que a et b ne sont pas assez proches. Donc une petite boucle tantQue s'impose. si on veut une précision de 1/100 par exemple :

tantQue (b-a) > 1/100
m prend la valeur (a+b)/2
si f(m)*f(b) < = 0 alors
a = m
sinon
b = m
finTantQue
afficher a
afficher b

Balayage ? là aussi une boucle Tantque la fonction ne change pas de signe on continue
donc essaye quelque chose dans le genre :

h prend la valeur 0.01
Lire a
Lire b
x prend la valeur a
Tant que x < b ET f(x)*f(a) >0 Faire
x prend la valeur x + h
fin Tantque
afficher x

évidemment si on voit que x a dépassé b c'est qu'il n'a pas trouvé de racine

Posté par
mcclure
re : Programme par dichotomie et balayage 14-12-14 à 19:45

D'accord merci beaucoup, je reviendrais ici si j'ai encore quelques doutes

Posté par
mcclure
re : Programme par dichotomie et balayage 14-12-14 à 23:14

Bon j'ai plus le sujet de l'algo sur la suite

Mais le sujet est inspiré à partir du sujet du bac S métropole de septembre 2012 http://www.apmep.fr/IMG/pdf/MetropoleSsept2012-2.pdf (l'exo 3)

Par contre c'est pas le même algo que dans l'exo qui est demandé ...



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1760 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !