Visual Basic sur Excel, besoin d'aide
gabbe2
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
gabbe2 Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
gabbe2 Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je suis dans une impasse... J'ai un travail de mathématiques/informatique à remettre dans deux semaines et un numéro porte sur la méthode de newton-Raphson à programmer sur visual basic.
Nous n'avons pas vu grand chose avec ce logiciel de programmation alors je ne crois pas que ce sera très complexe, mais je n'y arrive tout de même pas...
Je vous montre ce que j'ai pour l'instant...
En fait, si vous ne connaissez pas la méthode de newton-raphson, elle consiste à trouver le zéro d'une fonction, pas par tâtonnement mais presque. En fait, je demande à l'utilisateur d'entrer une valeur de x0 quelconque, qui par défaut sera de 1, et avec cette valeur de x0, je trouve la valeur de x1, qui est une valeur qui se rapproche de mon zéro de fonction. Je dois ensuite prendre cette valeur de x1 et l'utiliser comme valeur de x0 précédente, et ce 10 fois, sois de x0 à x9, je crois.
J'espère que j'ai été claire.. sinon vous me le direz, mais mon professeur a écrit sur le document que nous pouvions utiliser le pseudo-code suivant:
- Pour i de 1 à 10 fait
- variable = variable - f(variable)/f'(variable)
- arrête de faire
La fonction à utiliser est celle où il est écrit variable.
Xn+1=Xn-(f(x0)/f'(x0))
La fonction mathématique à utiliser est la suivante:
y = 0,0001x^5 - 0,0007675x4 + 0,008x3 - 0,0614x2 + 0,16x - 1,228
et sa dérivée est:
0.0005 x^ 4 - 0.00307x^ 3 + 0.024x^ 2 - 0.1228x+ 0.16
Merci d'Avance à ceux qui me répondront, si vous avez des question n'hésitez pas... (:
Je suis dans une impasse... J'ai un travail de mathématiques/informatique à remettre dans deux semaines et un numéro porte sur la méthode de newton-Raphson à programmer sur visual basic.
Nous n'avons pas vu grand chose avec ce logiciel de programmation alors je ne crois pas que ce sera très complexe, mais je n'y arrive tout de même pas...
Je vous montre ce que j'ai pour l'instant...
Sub ChoixDeX0() ' ' ChoixDeX0 Macro ' ' Range("A4").Select x0 = Application.InputBox("Choisissez la valeur de x0", "valeur de x0", 1) ActiveCell.FormulaR1C1 = x0 Range("B4").Select End Sub Function x_i(x0) For i = 1 To 10 x_i = x0 - ((0.0001 * (x0) ^ 5 - 0.0007675 * (x0) ^ 4 + 0.008 * (x0) ^ 3 - 0.0614 * (x0) ^ 2 + 0.16 * (x0) - 1.228) / (0.0005 * (x0) ^ 4 - 0.00307 * (x0) ^ 3 + 0.024 * (x0) ^ 2 - 0.1228 * (x0) + 0.16)) Next i End Function
En fait, si vous ne connaissez pas la méthode de newton-raphson, elle consiste à trouver le zéro d'une fonction, pas par tâtonnement mais presque. En fait, je demande à l'utilisateur d'entrer une valeur de x0 quelconque, qui par défaut sera de 1, et avec cette valeur de x0, je trouve la valeur de x1, qui est une valeur qui se rapproche de mon zéro de fonction. Je dois ensuite prendre cette valeur de x1 et l'utiliser comme valeur de x0 précédente, et ce 10 fois, sois de x0 à x9, je crois.
J'espère que j'ai été claire.. sinon vous me le direz, mais mon professeur a écrit sur le document que nous pouvions utiliser le pseudo-code suivant:
- Pour i de 1 à 10 fait
- variable = variable - f(variable)/f'(variable)
- arrête de faire
La fonction à utiliser est celle où il est écrit variable.
Xn+1=Xn-(f(x0)/f'(x0))
La fonction mathématique à utiliser est la suivante:
y = 0,0001x^5 - 0,0007675x4 + 0,008x3 - 0,0614x2 + 0,16x - 1,228
et sa dérivée est:
0.0005 x^ 4 - 0.00307x^ 3 + 0.024x^ 2 - 0.1228x+ 0.16
Merci d'Avance à ceux qui me répondront, si vous avez des question n'hésitez pas... (:
A voir également:
- Visual Basic sur Excel, besoin d'aide
- Visual basic - Télécharger - Langages
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Microsoft 365 basic - Accueil - Microsoft Office
- Comment trier par ordre alphabétique sur excel - Guide
1 réponse
J'ai finalement trouvé en demandant à mon professeur (: voici ce que j'ai au final..
Function zero(x0)
For i = 1 To 10
x0 = x0 - (f(x0)*f'(x0))
Next
zero = x0
End Function
donc on met la valeur de x0 au départ, la fonction le calcul, et elle reprend la valeur du xo trouvée et la remet dans la formule et la reprend 10 fois comme ça... Ensuite le zero=x0 affiche le résultat dans la cellule sélectionnée dans ma macro faite précédemment! (:
Si jamais quelqu'un a des question il peut les poser :P
Function zero(x0)
For i = 1 To 10
x0 = x0 - (f(x0)*f'(x0))
Next
zero = x0
End Function
donc on met la valeur de x0 au départ, la fonction le calcul, et elle reprend la valeur du xo trouvée et la remet dans la formule et la reprend 10 fois comme ça... Ensuite le zero=x0 affiche le résultat dans la cellule sélectionnée dans ma macro faite précédemment! (:
Si jamais quelqu'un a des question il peut les poser :P