Dichotomie, un coup de main

Discutez d'informatique ici !
Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

Dichotomie, un coup de main

par Dlzlogic » 16 Juin 2013, 18:41

Bonjour.
Je cherche une valeur par dichotomie.
Je sais que la valeur Val à trouver est comprise entre une grande valeur Mn, inférieure à Lim et une valeur limite Lim.
Par exemple si Lim = 100 alors Mn sera comprise entre Mn0 (par exemple -1000) et 100.
Pour chaque essai, j'ai une valeur Res, qui comparée à la valeur Res0, précédente m'informe si elle est satisfaisant ou pas.
Donc, l'opération de base, tant que tout va bien est
Val= Val0/2;
Val0=Val;

Si le résultat n'est pas satisfaisant, alors
Val = Val0 * 3/2;
Val0 = val;

Donc, je n'arrive pas à bien converger.
Si quelqu'un a une idée, merci d'avance.



Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 16 Juin 2013, 18:48

salut,

on ne sait pas comment est initialisée val par rapport à res, lim et Mn0.
Idem pour val0.
On ne sait pas non plus ce que tu appeles "si le résultat est satisfaisant"

(et s'il s'agit d'une dichotomie classique, l'algorithme est détaillé, et expliqué sur wikipedia)
la vie est une fête :)

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 16 Juin 2013, 19:09

Val est initialisé par une opération arithmétique simple, qui ne pose pas de problème, mais qui n'est pas intéressante à réutiliser dans le calcul.
Lim est initialisé tel que lim - Res est strictement positif, pour Res=0. Donc Lim est fixe et connu.
Je ne me suis pas très bien expliqué. A l'initialisation, c'est à dire avant la boucle. Res = Mn.
Lorsque j'ai défini une valeur Val, j'appelle une fonction qui calcule des paramètres selon uns logique stricte, et renvoie Res. C'est satisfaisant si Res est inférieur au meilleur Res, non satisfaisant dans le cas contraire.
En fait je devrais calculer l'intervalle qui me reste à explorer et prendre la première ou seconde partie.
Peut-être parce que c'est dimanche soir, mais j'arrive pas à bien le visualiser.
Il est vrai que ce n'est pas une dichotomie classique, puisque cette notion d'intervalle moitié est fausse.
J'ai pensé aussi à profiter de résultats précédents pour faire une extrapolation, lais c'est un peu compliqué.

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 17 Juin 2013, 13:27

Bonjour,
Je suis arrivé à ce que je voulais.
Je faisais fausse route, parce que je considérait la condition "inférieur ==> satisfaisant", alors que la question à se poser est "à droite ou à gauche".
Par ailleurs, il se trouve que dans mon cas, la fonction n'est pas monotone, c'est à dire que je passe par un minimum, la valeur recherchée, ce qui complique un peu la chose.

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 7 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite