[Catégorie modifiée VB6 --> VBA] Formule de Simpson en VBA
CerberusPau
Messages postés377Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention22 août 2018
-
26 juin 2010 à 13:20
CerberusPau
Messages postés377Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention22 août 2018
-
28 juin 2010 à 20:32
Bonjour,
Jai besoin de résoudre une équation complexe au moyen d'un calcul d'aproximation par la méthode de Simpson dans Excel 2003 en VBA
Avant de poster les détails, je cherche des échanges sur le sujet, voire un tuto, ou encore mieux un Code Source.
Mes recherches sur le site étant restées infructueuses...
cs_akzo
Messages postés133Date d'inscriptiondimanche 23 juin 2002StatutMembreDernière intervention 3 janvier 20153 27 juin 2010 à 08:57
Bonjour,
j'ai trouver ceci sur le net donc à tester
=IntegraleSimpson(f;a;b;n)
f : Expression de la fonction de la variable x (sous forme de texte). Exemple : "SIN(x)".
a : Borne inférieure de l'intervalle.
b : Borne supérieure de l'intervalle.
n : Nombre de subdivisions de l'intervalle. Valeur conseillée : 100.
voici le code
Function IntegraleSimpson(f As String, a As Double, b As Double, n As Integer) As Double
Dim h As Double
Dim k As Integer
Dim ak0 As Double, ak1 As Double
Dim i As Double
Dim f0 As Double, f1 As Double, f2 As Double
h = (b - a) / n
ak0 = a
f0 = Evaluate("+" & Replace(Replace(f, "x", a), ",", "."))
For k = 1 To n
ak1 = a + k * h
f1 = Evaluate("+" & Replace(Replace(f, "x", Replace(ak0 + h / 2, ",", ".")), ",", "."))
f2 = Evaluate("+" & Replace(Replace(f, "x", Replace(ak1, ",", ".")), ",", "."))
i = i + f0 + 4 * f1 + f2
f0 = f2
ak0 = ak1
Next
IntegraleSimpson = i * h / 6
End Function
CerberusPau
Messages postés377Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention22 août 20181 28 juin 2010 à 20:32
Bonjour,
Merci beaucoup pour l'info.
Mais je ne suis pas arrivé à l'exploiter, essentiellement pour 2 raisons:
1°
f : Expression de la fonction de la variable x (sous forme de texte). Exemple : "SIN(x)".
Je ne vois pas du tout comment formuler mon équation sous une forme "texte"
2°
=IntegraleSimpson(f;a;b;n)
Je ne sais pas comment exploiter un telle ligne dans un code VBA (type d'argument ByRef incompatible)
J'ai procédé de façon beaucoup plus "lourde" en créant dans une feuille un tableau de valeurs sur 200 demi-intervalles établis sur la base de ma formule principale, puis en intégrant le polynôme de chaque paire de demi-intevalles (pair et impair)...
Bref, pas de macro, mes des formules "de base" dans des cellules : avec 4 équations à intégrer et 6 colonnes de 200 lignes par équation ; j'ai bien failli péter un plomb!
Si mon application "tourne", je reste quand même preneur pour une "vraie" macro (VBA)...
Si une bonne âme trouve un peu de son précieux temps à consacrer à ce pensum!