apero a ceux qui prendront le tps de comprendre

  • Initiateur de la discussion petrolman
  • Date de début
P

petrolman

Guest
Salut a tous,

un probleme existenciel me pose des difficultes et je pense que l'on peut le resoudre par excel (et par fortran) mais comme je suis ''debutant''.....
Le but final est de trouver du petrole dans le sous-sol...avis aux scientifiques et aux curieux, et je sais qu'il y en a ds ce forum:
Je pose le probleme assez difficile et qqe peu long ds l'explication...

Imaginons 5 couches (5 lignes d'une colonne A avec des vitesses Vi correspondant a des profondeurs Zi inscrits ds une colonne B). Je mets un puits droit (abcsisse=0, ordonne=0,la normale) a travers ces 5 couches.
Probleme direct:
Je balance un rayon avec un angle theta5 (cad depuis le fond du sos-sol, ce theta5 est le seul que je peux fixer et je le mets en C5) depuis cette ordonne x=0. Si je calcule bien (et si je connais mes formules trigo), le rayon arrivera sur la couche 4 avec un decalage (depuis la normale) de x5 (colonne D5)=profondeur entre couche 5 et 4 (Z5) *tan(theta5)=Z5*tan(theta5). (Excel: D5=B5*tan(C5)).
Mon but est de connaitre x1!!!
Pour cela, je connais une relation:sin (theta5)/V5=sin(theta4)/V4 et plus generalement sin(theta Z+1)/(V+1)=sin(theta Z)/V donc si je remplace, je trouve dans la couche 4, x4=Z4*tan[asin(V4*sin(theta5)/V5] et ainsi de suite jusqu'a obtenir x1.TB

Mon but : Probleme inverse : Me fixant X1 (et en utilisant les relations precedentes), je desire connaitre theta5!!! Ligne par ligne je sais le faire en utilisant le solver, D5=SOMME((TAN(ASIN(SIN($C$5*PI()/180)*($A$1:$A5)/$A5)))*$B$1:$B5) ce qui me donne x1 (c inverse evidemment), je le passe dans le solver en affichant valeur a atteindre 2000(par ex) et il me change mon C5 (theta5). Je suis ensuite obliger de retourner en D1 pour changer $C$5 en $C$4 et ainsi de suite...). Comment puis je le generer directement sans retourner par le case de depart (D1) et abaisser constamment mon angle de reference (cad C5 puis C4 puis C3) surtout que j'ai bcp plus de 5 couches!!!!

Je paye l'apero (Paris ou Pau) a tous ce qui auront lu mon message en entier et l'auront assez compris (cad auront essayer de comprendre) pour me donner des semblants d'explications ou des pistes.
Merci et a+ au bar je l'espere
 

Ti_

Nous a quitté
Repose en paix
bon, ben je le remets quand même une dernière fois : quelques variables dont je n'avais pas déclaré le type dans la précipitation ! [file name=lancer_rayonsTi_20050502113602.zip size=17482]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/lancer_rayonsTi_20050502113602.zip[/file]
 

Pièces jointes

  • lancer_rayonsTi_20050502113602.zip
    17.1 KB · Affichages: 7

Ti_

Nous a quitté
Repose en paix
Bon, décidément, ça va mal, alors le voilà. Attention à ne bien charger que cette dernière version ! [file name=lancer_rayonsTi_20050502114021.zip size=18730]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/lancer_rayonsTi_20050502114021.zip[/file]
 

Pièces jointes

  • lancer_rayonsTi_20050502114021.zip
    18.3 KB · Affichages: 8
P

petrolman

Guest
Re Ti_,

Ton code pour 5 couches est assez bluffant, je dois bien le dire...
Tu as compris le systeme cependant si je l'etends a plus de couches, there is a pb!!
Quelques couches en plus et ca marche mais des que j'applique mon modele....
Pour te rendre compte de mon nbre de couches, je t'envoie mon modele (tu comprendras pourquoi il m'est necessaire de trouver une astuce quand tu verras les solutions que j'ai trouve 1 par 1 avec le solver (surtout descends bien bas, je suis oblige de commencer par le plus profond)).
C'est peut etre une histoire de dimension...de plus, est-ce que les colonnes A et B, en plus d'etre appliquable a n couches, peuvent etre variables?
On ne doit plus etre tres loin, en tout cas chapeau bas pour ce que tu as fait jusqu'a maintenant (c Qwerty qui va etre vert)... [file name=modele.zip size=20941]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/modele.zip[/file]
 

Pièces jointes

  • modele.zip
    26.9 KB · Affichages: 12
  • modele.zip
    26.9 KB · Affichages: 15
  • modele.zip
    26.9 KB · Affichages: 10

Ti_

Nous a quitté
Repose en paix
oui, effectivement, c'était la fonction Arcsinus qui renâclait quand je lui faisais tester des angles hors limites. Bon, j'ai corrigé ça et vu le nombre de valeurs, j'ai un peu accéléré le processus.
Pour info, ton jeu de valeur est maintenant calculé en un peu moins de 45 sec. sur ma machine. Les valeurs sont les mêmes que celles renvoyées par le solveur. [file name=LancerRayonsTi2.zip size=28468]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/LancerRayonsTi2.zip[/file]
 

Pièces jointes

  • LancerRayonsTi2.zip
    27.8 KB · Affichages: 16
P

petrolman

Guest
Ti_,

Tu es un champion, c SUPERBE!!!
Je suis scie en deux, tu viens de reduire mon temps de travail de 6h (et encore) à 45s. Faut etre fou pour tout faire a la main mais quand on a pas le choix et quand on connait pas VBA....
J'espere que ca pourra marcher avec n'importe quelle modele (je m'en fais pas trop pour ca!).
J'te dois un pot et meme la cuite si tu veux.
A titre indicatif: tu viens de realiser un code de lancer de rayons inverse, tres utile pour les petroliers afin de connaitre avec precision quelle angle donne au canon a ondes pour viser aux mieux l'objectif gaz ou huile.
Au fait, faut-il adapter le code si j'ai plus ou moins de colonnes ou si je change les donnees des colonnes A et B?
 

Ti_

Nous a quitté
Repose en paix
eh oui, c'est le problème du VBA, faute de connaître la structure exacte de tes fichiers, il m'est impossible de te donner une macro plus versatile et en l'occurence, tu es condamné à respecter l'ordre des colonnes du fichier démo : vitesse, en colonne A, épaisseur en colonne B.

Eventuellement, montre-nous ta feuille originale pour voir comment adapter ça, et surtout en disant ce que tu entends quand tu parles de changer le nombre de colonnes...
 
P

petrolman

Guest
Bien sur, respecter l'ordre des colonnes n'est en aucun cas un souci!
Ce que je veux dire,(sans changer le nombre de colonnes mais de lignes) c que ici j'ai 1193 lignes dans mon modele qui doit faire 3000m de profondeur.
Si j'utilise un autre modele qui fait 5000m et donc 2500 lignes ou 1000m (500 lignes), dois-je rentrer dans le code pour marquer le max ou min de lignes ou alors le voit-il directement (je peux essayer avec un autre modele mais je n'aurai aucune valeur de reference pour comparer a moins de refaire les calculs a la main par le solver)? faut il initialiser le code a chaque changement de modele? (toujours en respectant l'ordre des colonnes...)
En fait, c le meme code qu'avec 5 couches donc qu'il y en ait 30 ou 3000 ca marchera toujours sans changer le code, n'est ce pas?
 

Ti_

Nous a quitté
Repose en paix
ah oui d'accord, ah ben alors c'est tout simple. Tu peux mettre entre 2 et 65535 lignes (si tu es patient !) sans rien changer.
De plus, si tu ne changes pas le nombre de valeurs ou les valeurs elles-mêmes, tu peux lancer deux calculs successifs sans devoir effacer les colonnes C et D, ça se fera tout seul en début de calcul, et de toute façon les nouvelles valeurs calculées prendront la place des anciennes.
 
P

petrolman

Guest
Ok, c parfait!! Et si j'ai 65536 lignes, ca ne marche pas? (je rigole :) )
Eh bien ce fut un plaisir d'avoir eu a traiter avec toi Ti_...
Je voudrai remercier ma mere, mes sponsors sans qui rien de cela ne serait arriver... :woohoo: :woohoo:
Fini de rire, merci beaucoup Ti_ (tu es impressionnant) et aussi a tous ceux qui ont essaye de comprendre (y a eu du monde!!!) et si j'ai d'autres problemes, petrolman sera de retour!
A bientot pour de nouvelles aventures

PS: un gros bisou a Ti_ (de la part de ma femme)
 

Ti_

Nous a quitté
Repose en paix
bon alors finalement je décline l'offre de l'apéro, (mon pauvre crâne souffre encore des séquelles de ce week-end).
En compensation, j'accepte un gallon de pétrole brut, vu l'état des cours actuels, il suffira que je le stocke quelque temps au garage pour m'offrir à terme une caisse de champagne, arf ! :eek:
 
P

petrolman

Guest
Re,

eh oui, tout content de rentrer chez moi avec ce magnifique code sur ma clef USB, je le reesaye a nouveau et pof, voila qu'il me mets que les macros ne sont pas actives et que donc je ne peux effectuer le calcul...comment les reactiver?, ou comment faire pour qu'il soit utilisable sur n'importe quel ordinateur (comme je me deplace souvent)? quelle bouton dois-je cliquer?

desole....................... :sick:
 

Ti_

Nous a quitté
Repose en paix
ça tient aux paramètres de sécurité d'Excel. Alors, si tu es dans Excel XP, tu vas dans le menu Outils...Macros...Sécurité et tu coches l'option 'Faire confiance au projet Visual Basic'.
Si tu es dans Excel 2003, tu dois en plus te mettre en niveau de sécurité Moyen.
Et voilà, maintenant toutes tes macros fonctionneront.
 

Ti_

Nous a quitté
Repose en paix
après vérification sur un Excel XP, il y a aussi l'option niveau de sécurité moyen, donc tu coches cette option aussi. Mais le plus important c'est de cocher 'Faire confiance au projet Visual Basic'
 
P

petrolman

Guest
Oui merci Ti_, je viens de verifier aussi, y a aucun probleme...
Ton code de solveur 'generalise' si je puis l'appeler comme cela est tres pratique et je viens de me rendre compte que je pourrai l'utiliser a d'autres fins mais d'une maniere un peu detournee, toujours avec un meme jeu de donnees...
plus de precisions cet aprem ou je ferai un nouveau post afin d'essayer d'adapter ton code a un autre probleme un peu moins tordu je pense...
bonne app
 

Statistiques des forums

Discussions
312 219
Messages
2 086 369
Membres
103 198
dernier inscrit
CACCIATORE