Résolution équation nr 3

Fermé
qataror Messages postés 35 Date d'inscription mardi 12 mai 2015 Statut Membre Dernière intervention 4 juin 2015 - 23 mai 2015 à 17:20
qataror Messages postés 35 Date d'inscription mardi 12 mai 2015 Statut Membre Dernière intervention 4 juin 2015 - 29 mai 2015 à 12:25
Bonjour,

Toujours sur le même fichier, j'ai une troisième équation à une inconnue à développer.
Après G560=G559 et J560=J559
Cette fois-ci, c'est calculer la valeur en B560 que fera que la valeur en K560 soit égale à K559.

Raymond a trouvé cette solution
QUOTE..................................................................................................
Je ne sais pas si c'est toujours d'actualité ou si tu t'en es déjà sorti, mais pour le fun j'ai recommencé mes calculs et fait une vérification chiffrée :

B560=(K559 - G560 - 0,75*J559 + 25)*H560/6,25 - 3*D559

Avec K559=104 ; G560=25 ; J559=22 ; H560=4 et D559=18 par exemple on trouve 2 comme solution.
https://www.cjoint.com/c/EEuhiP7feyC

Cordialement (je me suis bien amusé !).
UNQUOTE...................................................................................................

Malheureusement, lorsque je rentre la formule dans mon fichier telle quelle, je trouve des résultats différents.

Voici le lien pour le fichier complet ( résultats précédents inclus )
https://www.cjoint.com/c/EExrsPm6XRf

Merci en core pour votre aide précieuse.
Cordialement

A voir également:

7 réponses

Raymond PENTIER Messages postés 56839 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 novembre 2022 17 181
24 mai 2015 à 00:51
Cette fois-ci je ne pourrai pas t'aider, car J560 est fonction de J559, qui est fonction de J558, elle-même fonction de J557 et ceci 540 fois !
Pour corser le tout, I560 est fonction de D560 et de H560, qui présentent chacune la même problématique ...
Je crois que ta procédure par tâtonnements est la plus facile !
0
Raymond PENTIER Messages postés 56839 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 novembre 2022 17 181
24 mai 2015 à 01:17
Et je comprends pourquoi tu ne trouveras jamais le bon résultat avec ma formule :

Tu avais omis de préciser, dans tes premiers messages, que par exemple G560 et H560 étaient fonction de D560 ! Cette condition n'a donc pas été prise en compte dans mes développements ... Ma formule ne correspond plus à rien du tout !
0
qataror Messages postés 35 Date d'inscription mardi 12 mai 2015 Statut Membre Dernière intervention 4 juin 2015
24 mai 2015 à 14:45
Bonjour Raymond,
Désolé pour m'être mal exprimé au départ.
Effectivement, ce sont des équations à une inconnue suite à une fichier
Excel. Comme les solutions proposées par ccm81 et JvDo, elles intègrent
cette problématique. Cette solution existe car le solveur les résout.
Amicalement
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 851
24 mai 2015 à 16:02
Bonjour,

En fait, tu as 2 solutions pour B560 : -306.563405500034 et 16.0232590592985.
Normal, vu que tu aboutis à une équation du second degré (c'est dû aux dénominateurs en F560 et H560).
voilà ta formule, un peu longue quand même.
J'ai abandonné la simplification, c'est trop prise de tête.

=4*(-((5625-3*(K559-J559*0.75))*H559+(2937.5-2.5*(K559-J559*0.75))*D559-(25+K559-J559*0.75)*SOMME(D541:D558))+RACINE((((5625-3*(K559-J559*0.75))*H559+(2937.5-2.5*(K559-J559*0.75))*D559-(25+K559-J559*0.75)*SOMME(D541:D558)))^2-4*(2100-(K559+125-J559*0.75))*((1500*D559)*(3*H559+0.75*D559)-(K559+125-J559*0.75)*(SOMME(D541:D558)+1.75*D559)*(3*H559+0.75*D559)+(75*D559)*(SOMME(D541:D558)+1.75*D559))))/(2*(1975-K559+J559*0.75))


cordialement
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 851
Modifié par JvDo le 24/05/2015 à 16:52
en détail :

Point de départ :

K560=K559
On remplace K560 :
G560+J560=K559
On remplace G560 :
D560/F560*100-100+J559*.75+I560*0.25=K559
On remplace I560 :
D560/F560*100-100+J559*.75+(100*D560/H560-100)*0.25=K559
On remplace F560 :
D560/(SOMME(D541:D559)/20+D560/20)*100-100+J559*.75+(100*D560/H560-100)*0.25=K559
On remplace H560 :
D560/(SOMME(D541:D559)/20+D560/20)*100-100+J559*.75+(100*D560/(.75*H559+.25*D560)-100)*0.25=K559
On remplace D560 :
(.75*D559+.25*B560)/(SOMME(D541:D559)/20+(.75*D559+.25*B560)/20)*100-100+J559*.75+(100*(.75*D559+.25*B560)/(.75*H559+.25*(.75*D559+.25*B560))-100)*0.25=K559
et on réorganise :
(1500*D559+500*B560)/(SOMME(D541:D559)+.75*D559+.25*B560)-100+J559*.75+(100*(.75*D559+.25*B560)/(.75*H559+.25*(.75*D559+.25*B560))-100)*0.25=K559

(1500*D559+500*B560)/(SOMME(D541:D558)+1.75*D559+.25*B560)-100+J559*.75+(100*(.75*D559+.25*B560)/(.75*H559+.25*(.75*D559+.25*B560))-100)*0.25=K559

(1500*D559+500*B560)/(SOMME(D541:D558)+1.75*D559+.25*B560)+((75*D559+25*B560)/(.75*H559+.25*(.75*D559+.25*B560))-100)*0.25=K559+100-J559*.75

(1500*D559+2000*.25*B560)/(SOMME(D541:D558)+1.75*D559+0.25*B560)+(75*D559+100*.25*B560)/(3*H559+0.75*D559+0.25*B560)=K559+125-J559*.75
On simplifie l'écriture :
a_ correspond à : (1500*D559)
b_ correspond à : (SOMME(D541:D558)+1.75*D559)
c_ correspond à : (75*D559)
d_ correspond à : (3*H559+0.75*D559)
x_ correspond à : (.25*B560)
e_ correspond à : (K559+125-J559*.75)
l'équation devient :
(a_+2000*x_)/(b_+x_)+(c_+100*x_)/(d_+x_)=e_

(a_+2000*x_)*(d_+x_)+(c_+100*x_)*(b_+x_)=e_*(d_+x_)*(b_+x_)

a_*d_+x_*(2000*d_+a_)+2000*x_^2+c_*b_+x_*(c_+100*b_)+10*x_^2=e_*b_*d_+e_*x_*(b_+d_)+e_*x_^2

a_*d_-e_*b_*d_+c_*b_+x_*(2000*d_+a_+c_+100*b_-e_*(b_+d_))+(2100-e_)*x_^2=0
On simplifie à nouveau l'écriture :
aa correspond à : (2100-e_)
bb correspond à : (2000*d_+a_+c_+100*b_-e_*(b_+d_))
cc correspond à : (a_*d_-e_*b_*d_+c_*b_)
On obtient l'équation du second degré :
aa*x_^2+bb*x_+cc=0

Dont les solutions sont :
x1 = (-(2000*d_+a_+c_+100*b_-e_*(b_+d_))+racine((2000*d_+a_+c_+100*b_-e_*(b_+d_))^2-4*(2100-e_)*(a_*d_-e_*b_*d_+c_*b_)))/(2*(2100-e_))

x2 = (-(2000*d_+a_+c_+100*b_-e_*(b_+d_))-racine((2000*d_+a_+c_+100*b_-e_*(b_+d_))^2-4*(2100-e_)*(a_*d_-e_*b_*d_+c_*b_)))/(2*(2100-e_))

On remonte les simplifications à l'envers et on obtient :
x1=(-(2000*(3*H559+0.75*D559)+(1500*D559)+(75*D559)+100*(SOMME(D541:D558)+1.75*D559)-(K559+125-J559*.75)*((SOMME(D541:D558)+1.75*D559)+(3*H559+0.75*D559)))+racine((2000*(3*H559+0.75*D559)+(1500*D559)+(75*D559)+100*(SOMME(D541:D558)+1.75*D559)-(K559+125-J559*.75)*((SOMME(D541:D558)+1.75*D559)+(3*H559+0.75*D559)))^2-4*(2100-(K559+125-J559*.75))*((1500*D559)*(3*H559+0.75*D559)-(K559+125-J559*.75)*(SOMME(D541:D558)+1.75*D559)*(3*H559+0.75*D559)+(75*D559)*(SOMME(D541:D558)+1.75*D559))))/(2*(2100-(K559+125-J559*.75)))

même chose pour x2 avec un moins devant racine.

B560 s'obtient en multipliant x1 et x2 par 4 et après quelques simplifications, on obtient la formule du post précédent.

cdlt
0
qataror Messages postés 35 Date d'inscription mardi 12 mai 2015 Statut Membre Dernière intervention 4 juin 2015 > JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020
25 mai 2015 à 18:38
JvDo
Je vois que je ne t'avais pas remercié pour cette performance.
Cela doit être pour çà que j'ai un problème.
En effet, lorsque je colle ta formule (JvDo 24 mai 2015 à 16:02) dans mon fichier test MT3 , je trouve le résultat positif et correct.
Par contre, lorsque je colle la même formule dans mon fichier réel, je trouve un résultat négatif et qui ne correspond pas à une valeur boursière.
Y a-t-il une solution ?
Merci
Cdlt
0
qataror Messages postés 35 Date d'inscription mardi 12 mai 2015 Statut Membre Dernière intervention 4 juin 2015
25 mai 2015 à 18:55
Désolé, mais depuis que je t'ai remercié pour la résolution de cette équation, et bien cela remarche !!!!!
Cdlt
0
eriiic Messages postés 24463 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 novembre 2022 7 141
24 mai 2015 à 18:24
Bonjour,

Comme tu ne redonnes pas toutes les explications pas facile pour ceux qui n'ont pas l'historique.
Je suis peut-être à coté de la plaque...

Donc une autre approche. Vu que ton problème est linéaire on peut approcher la solution rapidement en vba (un peu comme le solveur) qq soient le nombre d'antécédents et sans remonter la chaine.
Pour l'instant un simple double-clic dans la colonne B (B560 par exemple) t'affiche l'évaluation et la met en N.
C'est juste pour que tu vois le principe et que tu testes, après on peut envisager un autre fonctionnement. Calcul d'une plage sur ordre (j'ai l'impression que le calcul dépend des calculs précédents), ou maj sur une saisie ou autre chose.
https://www.cjoint.com/c/EEysxCnk04L

eric
0
qataror Messages postés 35 Date d'inscription mardi 12 mai 2015 Statut Membre Dernière intervention 4 juin 2015
24 mai 2015 à 19:00
Bonjour Eric,
Merci pour t'intéresser à la résolution d'équation pour mon fichier excel.
Dans l'onglet donCAC, si tu remontes la colonne M jusqu'à la ligne 1, tu auras
quelques explications concernant la fonction des onglets.
Je vais regarder attentivement le fichier que tu as joint à ton message.
Merci et bonne soirée.
Cordialement
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 851
24 mai 2015 à 19:23
Bonsoir eriiic,

Je crois que tu t'es croisé les doigts dans tes offsets et ton delta.
Les offsets ne pointent pas sur les bonnes cellules, ton delta est du mauvais signe et tu retournes la cellule de la colonne M alors que tu modifies celle de la colonne N.
J'ai modifié les lignes en gras :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim CellSav As Variant
Dim delta As Double, i As Long
If Target.Column <> 2 Then Exit Sub
Cancel = True
CellSav = Target.Formula
'delta = Target.Offset(, 8) - Target.Offset(, 7)
delta = -Target.Offset(, 9) + Target.Offset(-1, 9)
Do While (Abs(delta) > 0.001 And i < 1000)
Target = Target + delta
'delta = Target.Offset(, 8) - Target.Offset(, 7)
delta = -Target.Offset(, 9) + Target.Offset(-1, 9)
i = i + 1
Loop
Target.Offset(, 12) = Target
Target.Formula = CellSav
MsgBox Target.Offset(, 12)
End Sub

Sinon, dans sa version 3 (ce post donc), le problème n'est plus linéaire mais quadratique tout en restant bien sur à une inconnue : B560.
Il est possible d'expliciter B560 par une formule directe.

cordialement
0
eriiic Messages postés 24463 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 novembre 2022 7 141
24 mai 2015 à 19:39
Ah, possible que je n'ai pas lu assez attentivement et comme j'ai raté le départ... :-)
Je rendais égales I et J ce qui avait l'air de correspondre à ce qui est demandé. Je m'appuyais peut-être sur des cellules temporaires de contrôle.
Je te fais confiance, tu as l'air plus imprégné du fichier que moi :-)
Pour la formule je vois bien que je retourne la même chose que toi. Disons que ça permet d'économiser du papier pour ressortir l'équation;-)
Par linéaire je voulais dire continue et sans points d'inflexion. Ca a l'air d'aller.
eric
0

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

Posez votre question
qataror Messages postés 35 Date d'inscription mardi 12 mai 2015 Statut Membre Dernière intervention 4 juin 2015
24 mai 2015 à 21:53
Bonsoir,
Il me reste une équation à résoudre :
Calculer la valeur en B560 qui fera que la valeur en I560=0
Pour exemple, I560 est égale à 0 avec B560 = 16,84 ( solveur )
Merci par avance pour la résolution de cette dernière équation
Tres cordialement
0
eriiic Messages postés 24463 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 novembre 2022 7 141
25 mai 2015 à 00:39
En modifiant un peu mon code si ça t'intéresse :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim CellSav As Variant
Dim delta As Double, i As Long
If Target.Column <> 2 Then Exit Sub
Cancel = True
CellSav = Target.Formula
delta = Target.Offset(, 7)
Do While (Abs(delta) > 0.001 And i < 1000)
Target = Target - delta
delta = Target.Offset(, 7)
i = i + 1
Loop
Target.Offset(, 12) = Target
Target.Formula = CellSav
MsgBox Target.Offset(, 12)
End Sub

eric
0
qataror Messages postés 35 Date d'inscription mardi 12 mai 2015 Statut Membre Dernière intervention 4 juin 2015 > eriiic Messages postés 24463 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 novembre 2022
25 mai 2015 à 14:49
Bonjour Eric,
Merci Eric pour la vba et c'est très bluffant.
Seulement l'onglet donCAC est, pour réduire le nombre de fenêtre, caché.
Je rentre les valeurs ( indices ou valeurs ) dans la base et mes résultats ( copier coller) sont dans l'onglet Bilan Simu ( je fais un copier coller des résultats les plus intéréssant de l'onglet donCAC vers Bilan Simu )
Très cordialement
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 851
Modifié par JvDo le 25/05/2015 à 02:14
Bonsoir à tous,

Là, qataror, tu aurais pu le faire tout seul.
L'équation est
=4*H559-3*D559


à eriiic : pour le coup j'ai amélioré l'empreinte carbone de ma formule.

Cordialement
0
qataror Messages postés 35 Date d'inscription mardi 12 mai 2015 Statut Membre Dernière intervention 4 juin 2015 > JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020
25 mai 2015 à 14:59
Bonjour JvDo,
Encore merci pour cette nouvelle résolution.
Bien sur, j'ai essayé mais dès qu'il faut isoler B560 les soucis commencent.
Très cordialement
je finalise la construction du fichier et je vous fais suivre les résultats
Bonne journée à tous
0
qataror Messages postés 35 Date d'inscription mardi 12 mai 2015 Statut Membre Dernière intervention 4 juin 2015 > JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020
26 mai 2015 à 19:44
Bonsoir JvDo, ccm81 et eriiic
Mon fichier est pour ainsi dire terminé.
Il pèse 5,54 Mo. Il concerne le CAC TCT ( cad horaire ) mais bien sûr en remplaçant
les valeurs dans la base, on peut faire du CT, MT ou LT ainsi que tous les indices ou valeurs.
Comment puis je vous le faire parvenir ?
Je l'ai mis sur Dropbox.
Bonne soirée
Cordialement
0
Raymond PENTIER Messages postés 56839 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 novembre 2022 17 181
25 mai 2015 à 00:07
Salut qataror.

Contrairement à ce que tu penses, il ne s'agit pas d'équations à une inconnue, mais de calculs itératifs.
Et lorsque tu écris "Cette solution existe car le solveur les résout", tu ne fais en réalité que confirmer mes dires, puisque le solveur fonctionne par calculs successifs, donc par approximations de plus en plus fines, c'est-à-dire par tatonnements ; il ne résout pas d'équation.
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 851
25 mai 2015 à 02:07
Bonsoir Raymond PENTIER,

Contrairement à ce que tu penses, il s'agit d'une équation à une inconnue.
L'équation de la première partie de ce post fait intervenir une inconnue : B560, 22 données : J559, K559, H559 et D541 à D559 et elle est quadratique.
La dernière équation de ce post est beaucoup plus simple, elle ne fait intervenir que 2 données : H559 et D559, toujours la même inconnue bien sûr et elle est linéaire.

Une précision : ce n'est pas parce que le solver trouve une solution à un problème que l'on peut affirmer quoi que ce soit sur l'existence ou l'inexistence d'une équation explicitant l'inconnue à trouver.

Cordialement
0
qataror Messages postés 35 Date d'inscription mardi 12 mai 2015 Statut Membre Dernière intervention 4 juin 2015
25 mai 2015 à 14:44
Bonjour Raymond,
Merci pour tes explications
0
qataror Messages postés 35 Date d'inscription mardi 12 mai 2015 Statut Membre Dernière intervention 4 juin 2015
27 mai 2015 à 10:09
Bonjour,
Suite à mon message nr 21, je me suis aperçu d'une erreur dans ma demande de résolution d'équation égale à 0 .
Je vous joins le lien du fichier test
https://www.cjoint.com/c/EEBkhSHj60U
L'équation est Y560 = 0
Merci
Très cordialement
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 851 > qataror Messages postés 35 Date d'inscription mardi 12 mai 2015 Statut Membre Dernière intervention 4 juin 2015
27 mai 2015 à 11:15
Bonjour,

la formule :
B560=2*X559-W559


cordialement

PS : je ne connais pas bien le partage de documents sur dropbox mais je suppose qu'il faut partager le dossier, fournir un lien et un mot de passe.
Sinon, ça ne passe pas sur cjoint ?
0
qataror Messages postés 35 Date d'inscription mardi 12 mai 2015 Statut Membre Dernière intervention 4 juin 2015 > JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020
27 mai 2015 à 14:53
Bonjour JvDo,
Merci pour la résolution de l'équation.
Finalement, le fichier entier passe sur Cjoint. Donc voici le lien
https://www.cjoint.com/?3EBoW5a2IxE
cela concerne le CAC40 et le TCT ( cad qu'il faut le renseigner toutes les heures.
Dites moi si vous arrivez à l'ouvrir correctement et le prochain message sera: comment l'utiliser ?
Cordialement
0
qataror Messages postés 35 Date d'inscription mardi 12 mai 2015 Statut Membre Dernière intervention 4 juin 2015
29 mai 2015 à 12:25
bonjour JvDo,
As-tu réussi à mettre à jour le fichier CAC TCT ?
Visualisez l'onglet SYNTHESE et vérifiez la pertinence du début des signaux hausse et baisse ?
Cordialement
0