Discussion:
comment établir une fonction d'après des données
(trop ancien pour répondre)
boxv
2011-12-13 09:39:28 UTC
Permalink
bonjour,

quelle méthode utiliser pour ce problème (j'ai oublié mes math)
il s'agit d'un jeu de stratégie multijoueurs. On peut exprimer le
problème, comme ceci :
j'ai des territoires qui produisent du commerce. Ce commerce va en
augmentant au fil du temps, au plus je place d'habitants sur ce
territoire, au plus le commerce augmente vite.

je peux avoir une série du style (les chiffres sont pour l'illustration,
ce ne sont pas des valeurs constatées)

pour 100 habitants
temps.....: 0 1 2 3 4 5 6 7 8 9 .....
commerce..: 1 2 2 2 3 3 3 3 3 3 .....

ou pour 50 habitants
temps.....: 0 1 2 3 4 5 6 7 8 9 .....
commerce..: 1 2 2 2 2 2 2 2 3 3 .....

quelle approche utiliser pour dégager la fonction qui donnera
l'augmentation du commerce selon le nombre d'habitants pour une unité de
temps
Patrice Rabiller
2011-12-13 10:05:56 UTC
Permalink
Post by boxv
bonjour,
quelle méthode utiliser pour ce problème (j'ai oublié mes math)
il s'agit d'un jeu de stratégie multijoueurs. On peut exprimer le
j'ai des territoires qui produisent du commerce. Ce commerce va en
augmentant au fil du temps, au plus je place d'habitants sur ce
territoire, au plus le commerce augmente vite.
je peux avoir une série du style (les chiffres sont pour l'illustration,
ce ne sont pas des valeurs constatées)
pour 100 habitants
temps.....: 0 1 2 3 4 5 6 7 8 9 .....
commerce..: 1 2 2 2 3 3 3 3 3 3 .....
ou pour 50 habitants
temps.....: 0 1 2 3 4 5 6 7 8 9 .....
commerce..: 1 2 2 2 2 2 2 2 3 3 .....
quelle approche utiliser pour dégager la fonction qui donnera
l'augmentation du commerce selon le nombre d'habitants pour une unité de
temps
Bonjour,

Tout dépend du type de fonction cherchée. Il faut rechercher du côté des
logiciels de statistiques qui proposent des ajustements (par la méthode des
moindres carrés notamment). En général plusieurs modèles sont proposés
(linéaire, exponentiel, logarithmique, polynomial etc...). Il est possible
également de faire ça avec un tableur.

En gros, il faut saisir les données numériques pour créer le nuage de points
puis essayer les ajustements proposés...
boxv
2011-12-13 11:22:18 UTC
Permalink
Post by Patrice Rabiller
Bonjour,
Tout dépend du type de fonction cherchée. Il faut rechercher du côté des
logiciels de statistiques qui proposent des ajustements (par la méthode
des moindres carrés notamment). En général plusieurs modèles sont
proposés (linéaire, exponentiel, logarithmique, polynomial etc...). Il
est possible également de faire ça avec un tableur.
En gros, il faut saisir les données numériques pour créer le nuage de
points puis essayer les ajustements proposés...
j'ai trouvé qtiplot et sciDAVis qui semble faire cela

merci beaucoup
Lotre
2011-12-13 11:31:23 UTC
Permalink
Bonjour,

Attention : Il a trois variables.
il faudrait donc une "surface d'ajustement" ...
Les modèles sont donc bien plus compliqués
puisque les paramètres entrés
ne sont pas forcément "indépendants"...

HB
Post by boxv
Post by Patrice Rabiller
Bonjour,
Tout dépend du type de fonction cherchée. Il faut rechercher du côté des
logiciels de statistiques qui proposent des ajustements (par la méthode
des moindres carrés notamment). En général plusieurs modèles sont
proposés (linéaire, exponentiel, logarithmique, polynomial etc...). Il
est possible également de faire ça avec un tableur.
En gros, il faut saisir les données numériques pour créer le nuage de
points puis essayer les ajustements proposés...
j'ai trouvé qtiplot et sciDAVis qui semble faire cela
merci beaucoup
Lotre
2011-12-13 11:27:43 UTC
Permalink
Bonjour,

Si les bornes des variables "temps" et "population" sont bien connues
et les valeurs de "commerce" associées aussi, il n'est pas forcément
rentable, en terme de programmation, de pondre une formule usine à gaz
avec des log ou autres...
La fonction associée à la méthode de régression choisie sera peut-être
très compliquée (et avec deux variables)
(En plus il faudra arrondir le résultat à l'entier le plus proche... )
Pire : rien ne prouve qu'elle donnera toujours la valeur initialement
choisie.

Pour la population, la bonne variable sera sans doute du type
p = { Partie entière de [population/K] }
où K est un entier à choisir en fonction des caractéristiques du
jeu...
Pour optimiser les calculs, le choix de K dépendra aussi
du langage utilisé pour programmer :
(puissance de 10) ou puissance de 2 (décalage de bits) ...

Il ne restera plus qu'à compléter
une fois pour toutes une bonne vieille table de valeurs.

C (t ; p) où t correspond aux temps possibles
et p correspond à la variable déduite de la population

Même avec un gros tableau, ce sera bien plus rapide qu'avec une
formule artificielle...

HB
Post by boxv
bonjour,
quelle méthode utiliser pour ce problème (j'ai oublié mes math)
il s'agit d'un jeu de stratégie multijoueurs. On peut exprimer le
j'ai des territoires qui produisent du commerce. Ce commerce va en
augmentant au fil du temps, au plus je place d'habitants sur ce
territoire, au plus le commerce augmente vite.
je peux avoir une série du style (les chiffres sont pour
l'illustration,
ce ne sont pas des valeurs constatées)
pour 100 habitants
temps.....: 0 1 2 3 4 5 6 7 8 9 .....
commerce..: 1 2 2 2 3 3 3 3 3 3 .....
ou pour 50 habitants
temps.....: 0 1 2 3 4 5 6 7 8 9 .....
commerce..: 1 2 2 2 2 2 2 2 3 3 .....
quelle approche utiliser pour dégager la fonction qui donnera
l'augmentation du commerce selon le nombre d'habitants pour une unité de
temps
boxv
2011-12-13 13:50:37 UTC
Permalink
Post by Lotre
C (t ; p) où t correspond aux temps possibles
et p correspond à la variable déduite de la population
Même avec un gros tableau, ce sera bien plus rapide qu'avec une formule
artificielle...
HB
Bonjour,

cette idée de table de valeurs est intéressante mais vu la configuration
du jeu je n'aurai que très peu de données disponibles.

c'est vrai qu'il y a 3 variables et que ça risque de faire quelque chose
de compliqué alors que j'ai "l'intuition" que l'algorithme
sous-jacent est simple. Je vais voir si je ne peux pas trouver une
formulation du problème plus simple.

merci de votre réponse

Loading...