Je cherche le zero d'une fonction qui met en jeu plusieurs fonctions excels
personnelles que j'ai créé sous VBA. Je voudrais utiliser pour cela le
solveur excel dans mes programmes VBA qui peut remplir cette fonction.
Y-a-t-il un moyen de faire cela et comment.Au pire y-a t-il des algotithmes
de recherche de zero de fonctions que je puisse trouver sous excel via
internet ou autre ?(genre méthode de dichotomie, newton raphson etc...)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Yvan
Bonjour
Pour la dichotomie, j'ai çà:
Option Explicit Public Function Dichotom(dblMin As Double, dblMax As Double, dblEpsilon As Double) As Variant ' ' Résolution par dichotomie de l'équation Fonc_Dichotom(x) = 0 ' ' La fonction est à renseigner. ' ' Les conditions d'application de la dichotomie doivent être vérifiées au préalable. ' - Monotonie de la fonction sur l'intervalle ' - Images des bornes de l'intervalle par la fonction de signe opposé ' Si ces conditions ne sont pas respectées, il est possible qu'une solution soit trouvée 'mais elle ne peut être garantie unique. ' ' Si la procédure échoue, il n'y a pas de solutions ou les conditions d'application de la 'méthode par dichotomie ne sont pas vérifiées ' ' ' Const strErreur As String = "Echec Dichotomie" Dim dblVar As Double, y As Double If dblEpsilon < 0.000000000000001 Then dblEpsilon = 0.000000000000001 If dblMax < dblMin Then dblVar = dblMin dblMin = dblMax dblMax = dblVar End If dblVar = (dblMin + dblMax) / 2 y = Fonc_Dichotom(dblVar) If (dblMax - dblMin < dblEpsilon) Then Dichotom = strErreur If y < dblEpsilon Then Dichotom = dblVar Exit Function End If If Fonc_Dichotom(dblMin) * Fonc_Dichotom(dblMax) > 0 Then Dichotom = strErreur Exit Function End If If Fonc_Dichotom(dblMin) * y > 0 Then dblMin = dblVar Else dblMax = dblVar Dichotom = Dichotom(dblMin, dblMax, dblEpsilon) End Function
Public Function Fonc_Dichotom(dblX As Double) As Double ' a renseigner End Function
Bien sûr, il reste à vérifier que la dichotomie est toujours applicable dans ton cas ou adapter cette procédure.
Mais enfin, si çà peut te dépanner!
@+
Yvan
"fulgar" a écrit dans le message de news: % | Bonjour, | | Je cherche le zero d'une fonction qui met en jeu plusieurs fonctions excels | personnelles que j'ai créé sous VBA. Je voudrais utiliser pour cela le | solveur excel dans mes programmes VBA qui peut remplir cette fonction. | Y-a-t-il un moyen de faire cela et comment.Au pire y-a t-il des algotithmes | de recherche de zero de fonctions que je puisse trouver sous excel via | internet ou autre ?(genre méthode de dichotomie, newton raphson etc...) | | merci pour votre aide | | |
Bonjour
Pour la dichotomie, j'ai çà:
Option Explicit
Public Function Dichotom(dblMin As Double, dblMax As Double, dblEpsilon As Double) As
Variant
'
' Résolution par dichotomie de l'équation Fonc_Dichotom(x) = 0
'
' La fonction est à renseigner.
'
' Les conditions d'application de la dichotomie doivent être vérifiées au préalable.
' - Monotonie de la fonction sur l'intervalle
' - Images des bornes de l'intervalle par la fonction de signe opposé
' Si ces conditions ne sont pas respectées, il est possible qu'une solution soit
trouvée
'mais elle ne peut être garantie unique.
'
' Si la procédure échoue, il n'y a pas de solutions ou les conditions d'application
de la
'méthode par dichotomie ne sont pas vérifiées
'
'
'
Const strErreur As String = "Echec Dichotomie"
Dim dblVar As Double, y As Double
If dblEpsilon < 0.000000000000001 Then dblEpsilon = 0.000000000000001
If dblMax < dblMin Then
dblVar = dblMin
dblMin = dblMax
dblMax = dblVar
End If
dblVar = (dblMin + dblMax) / 2
y = Fonc_Dichotom(dblVar)
If (dblMax - dblMin < dblEpsilon) Then
Dichotom = strErreur
If y < dblEpsilon Then Dichotom = dblVar
Exit Function
End If
If Fonc_Dichotom(dblMin) * Fonc_Dichotom(dblMax) > 0 Then
Dichotom = strErreur
Exit Function
End If
If Fonc_Dichotom(dblMin) * y > 0 Then dblMin = dblVar Else dblMax = dblVar
Dichotom = Dichotom(dblMin, dblMax, dblEpsilon)
End Function
Public Function Fonc_Dichotom(dblX As Double) As Double
' a renseigner
End Function
Bien sûr, il reste à vérifier que la dichotomie est toujours applicable dans ton cas
ou adapter cette procédure.
Mais enfin, si çà peut te dépanner!
@+
Yvan
"fulgar" <fulgar@free.fr> a écrit dans le message de news:
%238msLobmFHA.2852@TK2MSFTNGP15.phx.gbl...
| Bonjour,
|
| Je cherche le zero d'une fonction qui met en jeu plusieurs fonctions excels
| personnelles que j'ai créé sous VBA. Je voudrais utiliser pour cela le
| solveur excel dans mes programmes VBA qui peut remplir cette fonction.
| Y-a-t-il un moyen de faire cela et comment.Au pire y-a t-il des algotithmes
| de recherche de zero de fonctions que je puisse trouver sous excel via
| internet ou autre ?(genre méthode de dichotomie, newton raphson etc...)
|
| merci pour votre aide
|
|
|
Option Explicit Public Function Dichotom(dblMin As Double, dblMax As Double, dblEpsilon As Double) As Variant ' ' Résolution par dichotomie de l'équation Fonc_Dichotom(x) = 0 ' ' La fonction est à renseigner. ' ' Les conditions d'application de la dichotomie doivent être vérifiées au préalable. ' - Monotonie de la fonction sur l'intervalle ' - Images des bornes de l'intervalle par la fonction de signe opposé ' Si ces conditions ne sont pas respectées, il est possible qu'une solution soit trouvée 'mais elle ne peut être garantie unique. ' ' Si la procédure échoue, il n'y a pas de solutions ou les conditions d'application de la 'méthode par dichotomie ne sont pas vérifiées ' ' ' Const strErreur As String = "Echec Dichotomie" Dim dblVar As Double, y As Double If dblEpsilon < 0.000000000000001 Then dblEpsilon = 0.000000000000001 If dblMax < dblMin Then dblVar = dblMin dblMin = dblMax dblMax = dblVar End If dblVar = (dblMin + dblMax) / 2 y = Fonc_Dichotom(dblVar) If (dblMax - dblMin < dblEpsilon) Then Dichotom = strErreur If y < dblEpsilon Then Dichotom = dblVar Exit Function End If If Fonc_Dichotom(dblMin) * Fonc_Dichotom(dblMax) > 0 Then Dichotom = strErreur Exit Function End If If Fonc_Dichotom(dblMin) * y > 0 Then dblMin = dblVar Else dblMax = dblVar Dichotom = Dichotom(dblMin, dblMax, dblEpsilon) End Function
Public Function Fonc_Dichotom(dblX As Double) As Double ' a renseigner End Function
Bien sûr, il reste à vérifier que la dichotomie est toujours applicable dans ton cas ou adapter cette procédure.
Mais enfin, si çà peut te dépanner!
@+
Yvan
"fulgar" a écrit dans le message de news: % | Bonjour, | | Je cherche le zero d'une fonction qui met en jeu plusieurs fonctions excels | personnelles que j'ai créé sous VBA. Je voudrais utiliser pour cela le | solveur excel dans mes programmes VBA qui peut remplir cette fonction. | Y-a-t-il un moyen de faire cela et comment.Au pire y-a t-il des algotithmes | de recherche de zero de fonctions que je puisse trouver sous excel via | internet ou autre ?(genre méthode de dichotomie, newton raphson etc...) | | merci pour votre aide | | |
fulgar
merci c'est meiux que rien ;-)
"Yvan" <yvan.echanges(enlever ceci)@free.fr> a écrit dans le message de news: eGgGc#
Bonjour
Pour la dichotomie, j'ai çà:
Option Explicit Public Function Dichotom(dblMin As Double, dblMax As Double, dblEpsilon As Double) As
Variant ' ' Résolution par dichotomie de l'équation Fonc_Dichotom(x) = 0 ' ' La fonction est à renseigner. ' ' Les conditions d'application de la dichotomie doivent être vérifiées au préalable.
' - Monotonie de la fonction sur l'intervalle ' - Images des bornes de l'intervalle par la fonction de signe opposé
' Si ces conditions ne sont pas respectées, il est possible qu'une solution soit
trouvée 'mais elle ne peut être garantie unique. ' ' Si la procédure échoue, il n'y a pas de solutions ou les conditions d'application
de la 'méthode par dichotomie ne sont pas vérifiées ' ' ' Const strErreur As String = "Echec Dichotomie" Dim dblVar As Double, y As Double If dblEpsilon < 0.000000000000001 Then dblEpsilon = 0.000000000000001 If dblMax < dblMin Then dblVar = dblMin dblMin = dblMax dblMax = dblVar End If dblVar = (dblMin + dblMax) / 2 y = Fonc_Dichotom(dblVar) If (dblMax - dblMin < dblEpsilon) Then Dichotom = strErreur If y < dblEpsilon Then Dichotom = dblVar Exit Function End If If Fonc_Dichotom(dblMin) * Fonc_Dichotom(dblMax) > 0 Then Dichotom = strErreur Exit Function End If If Fonc_Dichotom(dblMin) * y > 0 Then dblMin = dblVar Else dblMax dblVar Dichotom = Dichotom(dblMin, dblMax, dblEpsilon) End Function
Public Function Fonc_Dichotom(dblX As Double) As Double ' a renseigner End Function
Bien sûr, il reste à vérifier que la dichotomie est toujours applicable dans ton cas
ou adapter cette procédure.
Mais enfin, si çà peut te dépanner!
@+
Yvan
"fulgar" a écrit dans le message de news: % | Bonjour, | | Je cherche le zero d'une fonction qui met en jeu plusieurs fonctions excels
| personnelles que j'ai créé sous VBA. Je voudrais utiliser pour cela le | solveur excel dans mes programmes VBA qui peut remplir cette fonction. | Y-a-t-il un moyen de faire cela et comment.Au pire y-a t-il des algotithmes
| de recherche de zero de fonctions que je puisse trouver sous excel via | internet ou autre ?(genre méthode de dichotomie, newton raphson etc...) | | merci pour votre aide | | |
merci c'est meiux que rien
;-)
"Yvan" <yvan.echanges(enlever ceci)@free.fr> a écrit dans le message de
news: eGgGc#cmFHA.3648@TK2MSFTNGP10.phx.gbl...
Bonjour
Pour la dichotomie, j'ai çà:
Option Explicit
Public Function Dichotom(dblMin As Double, dblMax As Double, dblEpsilon As
Double) As
Variant
'
' Résolution par dichotomie de l'équation Fonc_Dichotom(x) = 0
'
' La fonction est à renseigner.
'
' Les conditions d'application de la dichotomie doivent être vérifiées au
préalable.
' - Monotonie de la fonction sur l'intervalle
' - Images des bornes de l'intervalle par la fonction de signe
opposé
' Si ces conditions ne sont pas respectées, il est possible qu'une
solution soit
trouvée
'mais elle ne peut être garantie unique.
'
' Si la procédure échoue, il n'y a pas de solutions ou les conditions
d'application
de la
'méthode par dichotomie ne sont pas vérifiées
'
'
'
Const strErreur As String = "Echec Dichotomie"
Dim dblVar As Double, y As Double
If dblEpsilon < 0.000000000000001 Then dblEpsilon = 0.000000000000001
If dblMax < dblMin Then
dblVar = dblMin
dblMin = dblMax
dblMax = dblVar
End If
dblVar = (dblMin + dblMax) / 2
y = Fonc_Dichotom(dblVar)
If (dblMax - dblMin < dblEpsilon) Then
Dichotom = strErreur
If y < dblEpsilon Then Dichotom = dblVar
Exit Function
End If
If Fonc_Dichotom(dblMin) * Fonc_Dichotom(dblMax) > 0 Then
Dichotom = strErreur
Exit Function
End If
If Fonc_Dichotom(dblMin) * y > 0 Then dblMin = dblVar Else dblMax dblVar
Dichotom = Dichotom(dblMin, dblMax, dblEpsilon)
End Function
Public Function Fonc_Dichotom(dblX As Double) As Double
' a renseigner
End Function
Bien sûr, il reste à vérifier que la dichotomie est toujours applicable
dans ton cas
ou adapter cette procédure.
Mais enfin, si çà peut te dépanner!
@+
Yvan
"fulgar" <fulgar@free.fr> a écrit dans le message de news:
%238msLobmFHA.2852@TK2MSFTNGP15.phx.gbl...
| Bonjour,
|
| Je cherche le zero d'une fonction qui met en jeu plusieurs fonctions
excels
| personnelles que j'ai créé sous VBA. Je voudrais utiliser pour cela le
| solveur excel dans mes programmes VBA qui peut remplir cette fonction.
| Y-a-t-il un moyen de faire cela et comment.Au pire y-a t-il des
algotithmes
| de recherche de zero de fonctions que je puisse trouver sous excel via
| internet ou autre ?(genre méthode de dichotomie, newton raphson etc...)
|
| merci pour votre aide
|
|
|
"Yvan" <yvan.echanges(enlever ceci)@free.fr> a écrit dans le message de news: eGgGc#
Bonjour
Pour la dichotomie, j'ai çà:
Option Explicit Public Function Dichotom(dblMin As Double, dblMax As Double, dblEpsilon As Double) As
Variant ' ' Résolution par dichotomie de l'équation Fonc_Dichotom(x) = 0 ' ' La fonction est à renseigner. ' ' Les conditions d'application de la dichotomie doivent être vérifiées au préalable.
' - Monotonie de la fonction sur l'intervalle ' - Images des bornes de l'intervalle par la fonction de signe opposé
' Si ces conditions ne sont pas respectées, il est possible qu'une solution soit
trouvée 'mais elle ne peut être garantie unique. ' ' Si la procédure échoue, il n'y a pas de solutions ou les conditions d'application
de la 'méthode par dichotomie ne sont pas vérifiées ' ' ' Const strErreur As String = "Echec Dichotomie" Dim dblVar As Double, y As Double If dblEpsilon < 0.000000000000001 Then dblEpsilon = 0.000000000000001 If dblMax < dblMin Then dblVar = dblMin dblMin = dblMax dblMax = dblVar End If dblVar = (dblMin + dblMax) / 2 y = Fonc_Dichotom(dblVar) If (dblMax - dblMin < dblEpsilon) Then Dichotom = strErreur If y < dblEpsilon Then Dichotom = dblVar Exit Function End If If Fonc_Dichotom(dblMin) * Fonc_Dichotom(dblMax) > 0 Then Dichotom = strErreur Exit Function End If If Fonc_Dichotom(dblMin) * y > 0 Then dblMin = dblVar Else dblMax dblVar Dichotom = Dichotom(dblMin, dblMax, dblEpsilon) End Function
Public Function Fonc_Dichotom(dblX As Double) As Double ' a renseigner End Function
Bien sûr, il reste à vérifier que la dichotomie est toujours applicable dans ton cas
ou adapter cette procédure.
Mais enfin, si çà peut te dépanner!
@+
Yvan
"fulgar" a écrit dans le message de news: % | Bonjour, | | Je cherche le zero d'une fonction qui met en jeu plusieurs fonctions excels
| personnelles que j'ai créé sous VBA. Je voudrais utiliser pour cela le | solveur excel dans mes programmes VBA qui peut remplir cette fonction. | Y-a-t-il un moyen de faire cela et comment.Au pire y-a t-il des algotithmes
| de recherche de zero de fonctions que je puisse trouver sous excel via | internet ou autre ?(genre méthode de dichotomie, newton raphson etc...) | | merci pour votre aide | | |