Problème solution solveur

Résolu/Fermé
giiggz Messages postés 49 Date d'inscription vendredi 17 janvier 2014 Statut Membre Dernière intervention 11 août 2015 - 3 août 2015 à 11:03
giiggz Messages postés 49 Date d'inscription vendredi 17 janvier 2014 Statut Membre Dernière intervention 11 août 2015 - 5 août 2015 à 23:01
Bonjour,

Je dois faire un calcul itératif avec Excel pour calculer le montant des excédents nets de gestion pour une entreprise.

Pour cela, j'ai mis en place un tableau très rapide avec des formules basiques.
Par contre, pour la résolution de l'équation, j'utilise le solveur car l'équation est très complexe.
Dans l'exemple ci-joint, je veux que le solveur me permettre d'avoir B2 = 20% * B12 tout en maximisant la cellule B12.
https://www.cjoint.com/c/EHdjdPpU5jl

Le problème est que le solveur m'indique qu'il a trouvé une solution satisfaisant toutes les contraintes mais cela n'est pas le cas.

Bien sûr, je suis ouvert à toutes propositions qui pourraient me permettre de contourner l'utilisation du solveur.

En vous remerciant par avance,

Cordialement,

Guillaume.

17 réponses

JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
Modifié par JvDo le 3/08/2015 à 12:25
Bonjour,

avec la dépendance B2=20%*B12, on a B12=5/4,64*(2*B1/3+B3/3+B7/3-B5/3-B11)

si tu veux maximiser B12, il faut maximiser les termes positifs et minimiser les négatifs.

sans contraintes de max sur les variables positives et de min sur les négatives, il n'y a pas convergence.

au fait, quels sont les vraies variables? B1, B3, B5, B7, B11?
et quelles sont leurs contraintes.

cordialement
1
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
3 août 2015 à 11:34
Bonjour,

Comment veux-tu obtenir B2 = 20% * B12 avec une contrainte B2=0!!
Ou alors, il faut que B12=0.
Mais tu veux maximiser B12.....

Quelque chose ne va pas dans tes contraintes.
De plus si tu veux que B2=0, pourquoi le mettre en variable? B4 et B17 seront nulles et B6 vaudra =B1-B3+B5

Tu parlais d'une équation très complexe. Où est-elle?

cordialement
0
giiggz Messages postés 49 Date d'inscription vendredi 17 janvier 2014 Statut Membre Dernière intervention 11 août 2015
3 août 2015 à 11:59
Bonjour,

Les contraintes changent à chaque fois que je mets "résoudre" dans le solveur. Je ne sais pas pourquoi.
Il faut donc avant de lancer le solveur remettre la contrainte B2=20%*B12 ou alors charger les contraintes que j'ai mis de J1 à J6.
Malgré cela le solveur m'indique qu'il a trouvé une solution mais ce n'est pas le cas.

Le solveur m'évite d'avoir à créer cette équation qui est trop complexe pour moi.

Cordialement.
0
giiggz Messages postés 49 Date d'inscription vendredi 17 janvier 2014 Statut Membre Dernière intervention 11 août 2015
3 août 2015 à 12:41
Bonjour,

Merci de ton retour.

Je ne sais pas vraiment utiliser le solveur, c'est la première fois que je me lance là dessus.

Mes vrais variables sont seulement B2 et B3 mais le fait de faire varier ces deux là va faire varier toutes les autres cellules hormis les cellules fixes à savoir B1, B5, B7 et B11.

Mes seules contraintes sont les suivantes :
B2 + B3 + B19 = B12 car B12 doit être réparti entre ces trois critères.
Tous les nombres doivent être positifs

Mon but étant de savoir, par exemple, quelle valeur la seule B2 doit prendre si elle représente X % de B12. Sachant que B12 doit être maximisé et que B12 dépend aussi de la valeur de B2.

Cordialement.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
3 août 2015 à 13:04
bonjour,

tu mets en B2 : =B12*J10
en B12 : =5/4,64*(2*B1/3+B3/3+B7/3-B5/3-B11)

dans le solver, tu prends B2 en objectif, B3 en variable et B19>=0 en contrainte.
tu bascules en simplexe, tu laisses coché "rendre les variables........non négatives" et tu résous.

cdlt
0
giiggz Messages postés 49 Date d'inscription vendredi 17 janvier 2014 Statut Membre Dernière intervention 11 août 2015
3 août 2015 à 14:47
Bonjour,

Comment as-tu trouvé cette formule à mettre en B12, stp ?

Effectivement le solveur fonctionne mieux maintenant.
Par contre, avec tes informations, je ne peux que choisir le % à mettre en B2. Comment je peux faire pour choisir également le % à mettre en B3, stp ?

Je te remets le fichier sur cjoint car je me suis aperçu qu'il y avait une petite erreur de formule sur le calcul de B10 : https://www.cjoint.com/c/EHdmVt7NVWl

Cordialement.
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
3 août 2015 à 17:06
Bonjour,

tu pars de
B12=B10-B11
comme B10=B1-B9-B4
ça fait B12=B1-B9-B4-B11
Avec B4=8%*B2, B9=B8/3, ça fait
B12=B1-B8/3-8%*B2-B11
de même, B8=B6-B7 et B2=20%*B12 entraine
B12=B1-(B6-B7)/3-8%*20%*B12-B11
puis B6=B1-B2-B3+B5-B4 d'où :
B12=B1-(B1-B2-B3+B5-B4-B7)/3-8%*20%*B12-B11
on recommence avec B2 et B4 :
B12=B1-(B1-20%*B12-B3+B5-8%*B2-B7)/3-8%*20%*B12-B11
on recommence avec B2 :
B12=B1-(B1-20%*B12-B3+B5-8%*20%*B12-B7)/3-8%*20%*B12-B11
B12=2*B1/3+B3/3+B7/3-B5/3+1.08*B12*20%/3-3*8%*20%*B12/3-B11
B12=2*B1/3+B3/3+B7/3-B5/3+1.32*B12*20%/3-3*B11/3
3*B12-1.32*B12*20%=2*B1+B3+B7-B5-3*B11
2.736*B12=2*B1+B3+B7-B5-3*B11
B12=(2*B1+B3+B7-B5-3*B11)/2.736

pour ton % sur B3, je ne comprend pas. Tu veux mettre une contrainte?
tu vas finir par perdre la linéarité !!

cdlt
0
giiggz Messages postés 49 Date d'inscription vendredi 17 janvier 2014 Statut Membre Dernière intervention 11 août 2015
3 août 2015 à 19:21
Bonjour,

J'ai essayé la formule transmise.
En simplex, le solveur me dit que les conditions de linéarité ne sont pas remplies.
Quand je me mets en GRG, le résultat ne semble pas correct car au final B10-B11 est différent de B12.

Concrètement, dans mon fichier, je veux pouvoir indiqué un % de B12 pour B2 et B3. Le problème est que B12 est aussi fonction indirectement de B2 et B3.
L'idée du solveur m'est passé par la tête mais si une solution autre tel que du VBA ou une simple formule Excel suffit alors je suis preneur.

Merci encore de te pencher sur le sujet JvDo.

Cordialement.
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
3 août 2015 à 21:39
Bonsoir,

Ton problème de calcul itératif sur excel ne serait-il pas un exo sur les systèmes récurrents avec étude du comportement asymptotique?

En modélisant sous forme de matrice tes équations, et en réinjectant B2 et B3 calculées en fonction de B12, j'obtiens une matrice qui se stabilise à l'infini pour les composantes B1, B5, B11, B7 et qui s'annule (heureusement d'ailleurs) pour B2 et B3.

Le résultat est 141 685,31 pour B12 (j'ai choisi 20% pour B2 et 15% pour B3).

Cordialement
0
giiggz Messages postés 49 Date d'inscription vendredi 17 janvier 2014 Statut Membre Dernière intervention 11 août 2015
4 août 2015 à 09:19
Bonjour,

Il ne s'agit pas d'un exercice sur les systèmes récurrents.
Il s'agit d'un problème rencontré lors de l'application de règles fiscales et comptables. Cet outil doit me permettre de calculer la participation des salariés au résultat de l'entreprise.

J'ai pu tester le résultat de 141 685.31€ sur B12, je ne sais pas du tout comment tu as fait mais le résultat est bien le bon !
Si la méthode de calcul est exploitable, je viens bien en prendre connaissance !

Merci.

Cordialement.
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
4 août 2015 à 11:51
Bonjour,

J'ai été surpris que ton problème se modélise comme dans les livres.
Ce qu'on m'a appris serait donc utile !!!

Voilà une remise en forme de mes brouillons pour expliquer la démarche.



cordialement
0
giiggz Messages postés 49 Date d'inscription vendredi 17 janvier 2014 Statut Membre Dernière intervention 11 août 2015
4 août 2015 à 12:11
Bonjour,

Je suis loin de comprendre tout cela.
Faut-il que je reprenne toutes ces étapes sur Excel ?
A quoi correspondent les 1, 0 et -1, stp ?

Au vu de la complexité de l'établissement de ce calcul, je me demande si je vais continuer à vouloir calculer B12...

Cordialement
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
4 août 2015 à 12:56
Bonjour,

en cachant tous les calculs intermédiaires, ça donne ça : https://www.cjoint.com/c/EHekU7n3fgy

il faut savoir que si tu changes une formule, il faut recréer les matrices.

Pour les 1 et les -1, ça n'est ni plus ni moins la reprise des coefficients de tes formules mis sous forme matricielle.
B12=B10-B11 devient
                   (B10)
B12 = ( 1 -1 ) * (B11)


Mais si tu ne connais pas le calcul matriciel, c'est effectivement difficile à comprendre. (Pourtant, il n'y a que des additions et des multiplications mais la disposition est spécifique)

cordialement
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
Modifié par eriiic le 5/08/2015 à 22:04
Bonjour,

Rien compris non plus mais c'est beau :-)
eric

PS: giiggz tu as un post 17 à lire plus bas
0
giiggz Messages postés 49 Date d'inscription vendredi 17 janvier 2014 Statut Membre Dernière intervention 11 août 2015
4 août 2015 à 14:10
Bonjour,

C'est parfait tout cela. Il ne me reste plus qu'à me pencher dans les formules matricielles.

Effectivement, je dois continuer à modifier les formules parce que le fichier que je t'ai transmis n'était qu'un échantillon en pensant que j'allais pouvoir le modifier rapidement...
Si je complète le fichier, est-ce que tu pourras une dernière fois recréer les matrices, stp ?
En effet, j'ai un délai de 10 jours pour traiter ce point et en 10 jours, je n'aurais pas le temps de connaitre l'utilisation des matrices...

Pour la fois suivante, j'aurais 1 an devant moi pour recréer les matrices si je souhaite faire du changement donc je "maîtriserai", je l'espère, les matrices.

En tout cas, merci beaucoup pour ce très très bon travail.

Cordialement.
0
giiggz Messages postés 49 Date d'inscription vendredi 17 janvier 2014 Statut Membre Dernière intervention 11 août 2015
5 août 2015 à 00:09
Bonsoir JvDo,

Je viens de me pencher sur tes brouillons mis en forme et il faut dire que cela m'aide beaucoup !
J'ai pu comprendre toute la première étape consistant à mettre en place la matrice.
Bien sûr, je ne comprends pas le fonctionnement ni le calcul de la formule "produitmat" mais bon, ce sont des formules qu'il n'y a pas besoin de modifier.

Je vais donc essayer de modifier tout seul les matrices.
Par contre, si en B9, je mets la formule suivante : =SI(B8>38120;38120*15%+(B8-38120)/3;B8*15%)

Est-ce que il est possible de faire une matrice avec ce type de formule ou faut-il qu'il y ait seulement des additions, soustractions, multiplications et divisions ?

Merci pour ton aide.

Cordialement.
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
5 août 2015 à 19:13
Bonjour

Dans ce cas, on va se rabattre sur de l'itératif du fait des références circulaires.

Je regarde dès que j'ai un moment.

Cdlt
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
Modifié par JvDo le 5/08/2015 à 21:51
Bonsoir,

après les systèmes récurrents, tu vas laisser Excel bosser à ta place.

Tu saisis tes formules comme tu le faisais avant, tu mets ton si(B8.......) en B9 et tu vas dans les options d'excel (menu Fichier\options\formules) et tu coches "activer le calcul itératif".
Perso, j'ai mis 200 en nbre max d'itérations et j'ai laissé 0,001 comme "Ecart maximal".

Et c'est tout,....

C'est plus simple que les matrices non!!

cordialement
0
giiggz Messages postés 49 Date d'inscription vendredi 17 janvier 2014 Statut Membre Dernière intervention 11 août 2015
5 août 2015 à 23:01
Bonsoir,

Non mais tu es incroyable toi !
Tu me permets de découvrir des trucs hyper compliqués que sont les matrices et le lendemain, tu me dis : "on annule, tu coches une case, c'est plus facile !".

Bref, tu es un génie ! Mille merci.

Au passage, a quoi cela consiste de cocher calcul itératif ? 200 en nombre d'itération ?

Encore merci !!

Cordialement.
0