calcul par itération ?

  • Initiateur de la discussion Initiateur de la discussion lao31
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

lao31

XLDnaute Occasionnel
Bonjour a tous,

pour m'eviter de rentrer chaque fois des valeurs a la main, je suis intimement convaincu qu'il y a un moyen de trouver la valeur que je cherche. Probablement un calcul par iteration, mais en fait je n'en sais rien.
j'ai cherché des posts sensiblement equivalent, mais je rame.
cela serai pour anticiper un renversement de tendance.
Je vous joint un petit fichier qui j'espere pourra vous aider plus que mes explications qui sont toujours a la limite de la comprehension.
merci par avance
Michel
 
Dernière édition:
Re : calcul par itération ?

Bonjour le forum,

Dois je passer par le solveur, une formule dans une cellule ne serait pas possible ? il y a aussi la possibilité d'une boucle, mais cela devrait etre trop long car j'ai enormement de ligne dans mon fichier.
Une formule avec un copier vers le bas serait ideale. Merci pour votre aide ou conseil.
cordialement

Michel
 
Re : calcul par itération ?

Bonjour le forum, JJ1

Pour la boucle je vois, mais c'est bien trop long meme si je mets des bornes from to avec des step etc etc, ce n'est pas ce que je recherche.
Pour moi l'ideal serai une formule une cellule voisine de An me donnerai la valeur de An qui me donnerai la difference de Fn-fn-1 a 0.
Je ne sais pas si je suis bien clair. en fait, les valeurs de la colonne A se mettent a jour quand je lance une macro donc c'est la valeur An+1 que nous pourrions mettre dans une colonne Gn+1 ouf je m'emmele les pinceaux.
merci pour la boucle
Michel
 
Re : calcul par itération ?

Bonjour lao31, hello JJ1,

Il n'y a nul besoin de calcul itératif ni du solveur.

Pour y arriver il faut avoir avec grand soin transformé les formules d'origine en B26 C26 D26 E26 F26.

Ensuite on n'a plus qu'à résoudre une équation linéaire du 1er degré pour calculer l'inconnue A26.

On obtient donc cette formule en A26 :

Code:
=(F25-B25*(1-2/(B$1+1))*(1-2/(E$1+1))-C25*(2/(C$1+1)-1)*(1-2/(E$1+1))+E25*(1-2/(E$1+1)))/((2/(B$1+1)-2/(C$1+1))*(1-2/(E$1+1)))
Une fois cela fait on peut rétablir les formules d'origine en tirant la plage B25:F25 sur B26:F26.

Fichier joint.

Nota : j'ai mis les valeurs avec 17 décimales en G25 et G26.

On voit qu'il y a une différence sur la dernière décimale.

Ce n'est pas étonnant et tout à fait classique sur Excel.

A+
 

Pièces jointes

Re : calcul par itération ?

Bonjour Job75 , JJ1

Alors la, super c exactement ce dont j'ai besoin, de plus cela fonctionne sur mon fichier réel.
en fait je recopie les formules de tes cellules vers le bas et ensuite de recopie vers le bas -1 les autres formules initiales.
Je ne suis surement pas clair, mais j'ai compris c'est tres commode pour mon fichier.
Merci a vous deux et bravo a Job75.
Cordialement
Michel
 
Re : calcul par itération ?

Re,

En divisant le numérateur et le dénominateur par (1-2/(E$1+1)) la formule en A26 se simplifie :

Code:
=(F25/(1-2/(E$1+1))-B25*(1-2/(B$1+1))-C25*(2/(C$1+1)-1)+E25)/(2/(B$1+1)-2/(C$1+1))
Fichier (2).

A+
 

Pièces jointes

Re : calcul par itération ?

Re,

Je crois avoir compris ce que vous faites au post #9.

Mais notez qu'il n'y a aucun intérêt à conserver les formules transformées des cellules C26 à F26.

Utilisez les formules d'origine qui sont plus simples.

Seule la formule que j'ai indiquée doit bien sûr être conservée en colonne A.

A+
 
Re : calcul par itération ?

Bonjour Job JJ,

Encore mieux donc je n'ai qu'a conserver la colonne A faire un copier vers le bas de la formule, et garder mes formules des autres colonnes.
Bien compris et bravo car j'avais l'impression d'être un peu flou, et la le travail est vraiment simplifié.
Merci a vous deux pour le temps passé et une nouvelle fois chapeau bas Job.
Cordialement
Michel
 
Re : calcul par itération ?

Bonjour mikeo, le fil,

Très bien mikeo, mais tant qu'à faire une macro autant utiliser celle-ci :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row < 4 Or Target.Column > 1 Then Exit Sub
Cancel = True
Target(0).Resize(, 6).Copy Target
Target = "=(R[-1]C6/(1-2/(R1C5+1))-R[-1]C2*(1-2/(R1C2+1))-R[-1]C3*(2/(R1C3+1)-1)+R[-1]C5)/(2/(R1C2+1)-2/(R1C3+1))"
Target = Target.Value 'supprime la formule
End Sub
Le double-clic en colonne A copie la ligne du dessus et entre ma formule.

Fichier (3).

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

J
Réponses
7
Affichages
2 K
Josselin
J
E
  • Question Question
Réponses
13
Affichages
1 K
erudess
E
A
  • Question Question
Réponses
12
Affichages
1 K
alicebaudry
A
P
  • Question Question
Réponses
4
Affichages
1 K
L
Réponses
4
Affichages
23 K
L
C
  • Question Question
Réponses
1
Affichages
854
E
C
  • Question Question
Réponses
1
Affichages
790
E
Retour