résoudre une équation avec VBA dans excel

  • Initiateur de la discussion mlt
  • Date de début
M

mlt

Guest
bonjour à tous, en particulier à pmfontaine et Michel_M qui ont dialogué au sujet d'un problème m'interessant.

je cherche à résoudre un équation du type f(x)=0 en faisant varier X naturellement. j'ai bien conscience de l'existence d'un solveur excel pour réaliser ce type de problème.
Cependant, ma fonction f est definie dans ma programmation selon une longue formule que je ne souhaite pas faire apparaitre dans mes cellules excel. seule X apparait. et comme vous le savez, l'uitilisation du solveur nécessite de faire appel (setcell) à une formule contenue dans une cellule du classeur, autrement dit, ma formule decrivant f doit apparaitre dans une cellule.

j'ai essayé avec une boucle while wend comme PMF mais même problème. mon calcul est trop gros.

quelqu'un pourrait-il me venir en aide c'est urgent!

cordialement,

mlt.
 
S

Sylvain

Guest
bonjour,

pourquoi ne pas faire un compromis. Si ta fonction est définie comme :
function toto(x) as double
par exemple et qu'elle n'a aucun autre paramètre en dehors de x, il suffit de choisir une cellule (a10) où il y aura x
et une autre où tu mets =toto(a10)
et tu te sers du solveur à partir de ces deux cellules.
Comme ça tu n'as pas à écrire ta formule en entier dans une cellule mais tu peux utiliser le solveur.

A+
 
P

PhiBou

Guest
Bonjour mlt, Sylvain, le Forum

Ci-joint un programme que je t'ai concocté et qui résoud les systèmes

f(x) = 0. Il détermine les racines d'une fonction dans une plage

d'étude d'après la méthode de Newton .

La fonction est entrée en fin de programme (dans le gosub).

Tu peux modifier les variables suivantes :

Xmin : minimum gamme étude

Xmax : maximum gamme étude

Pas : incrément gamme étude

Precision : la précision de ton résultat

Le nombre de solutions a été limité à 10 mais tu peux l'augmenter.

Attention toutefois aux fonctions cycliques (trigo) qui apportent de

nombreux résultats.

Il va de soi que le temps de calcul est fonction de Xmin, Xmax, Pas

et il est donc primordial de bien choisir ces variables.

Bonne journée

PhiBou
 

Pièces jointes

  • ResolutionEquation.zip
    10 KB · Affichages: 428
  • ResolutionEquation.zip
    10 KB · Affichages: 415
  • ResolutionEquation.zip
    10 KB · Affichages: 441
M

Michel_M

Guest
bonjour

tu as écrit:
b^4-6b^3-36b^2+216b-324=0

si au lieu de 324 tu as la valeur 241 (????) l'équation est vérifiée pour b=1,68331 avec un écart à Zéro de 0,001 (avec 324 il est d'environ 83)
mais comme c'est au 4° degré, n'y a t il pas plusieurs réponses possibles? (les maths et moi...)

Comment faire?
tu écris dans B2 ou autre la valeur de b
=-(B2^4-6*B2^3-36*B2^2-241)/(216)
quand tu valides, Excel n'est pas content et le fait savoir...

donc
outils|options|calcul
tu coches itération et tu demandes le nombre d'itérations (ici, pas grande différence entre 100 et 100)

Vu le post que tu as repris, je ne crois pas que c'est un pb de solveur (je vais essayé qd m^me)

Michel
 

Discussions similaires

Statistiques des forums

Discussions
312 391
Messages
2 087 948
Membres
103 682
dernier inscrit
Thomas23