Visual Basic sur Excel, besoin d'aide

Fermé
gabbe2 Messages postés 14 Date d'inscription dimanche 10 avril 2011 Statut Membre Dernière intervention 20 mars 2014 - Modifié par gabbe2 le 5/12/2011 à 02:07
gabbe2 Messages postés 14 Date d'inscription dimanche 10 avril 2011 Statut Membre Dernière intervention 20 mars 2014 - 10 déc. 2011 à 01:47
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...
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:

1 réponse

gabbe2 Messages postés 14 Date d'inscription dimanche 10 avril 2011 Statut Membre Dernière intervention 20 mars 2014
10 déc. 2011 à 01:47
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
-1