[Catégorie modifiée VB6 --> VBA] Formule de Simpson en VBA

CerberusPau Messages postés 377 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 22 août 2018 - 26 juin 2010 à 13:20
CerberusPau Messages postés 377 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 22 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...

Quelqu'un pourrait-il me guider SVP

Merci d'avance


Rataxes64

2 réponses

cs_akzo Messages postés 133 Date d'inscription dimanche 23 juin 2002 Statut Membre Dernière intervention 3 janvier 2015 3
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

Voila bonne continuation
0
CerberusPau Messages postés 377 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 22 août 2018 1
28 juin 2010 à 20:32
Bonjour,

Merci beaucoup pour l'info.

Mais je ne suis pas arrivé à l'exploiter, essentiellement pour 2 raisons:

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"

=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!

Merci d'avance
Rataxes64
0
Rejoignez-nous