Newton Raphson

sofy2006 Messages postés 15 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 15 avril 2006 - 14 avril 2006 à 18:35
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 - 17 avril 2006 à 16:08
salut tt le monde,
j'ai besoin de résoudre une équation pour trouver le taux de rendemnt actuariel voila le code que j 'ai utilisé sur vb6 mais l'appel de la fonction ne fonctionne pas


Fonction





Dim ValPres As Double


Dim ValPresDerivee As Double


Dim v As Double


Dim ErreurMaximale As Double





Function NewtonRaphson(CashFlow() As Double, i As Double) As Double





ErreurMaximale = 0.0000001


ValPres = 1


While Abs(ValPres) > ErreurMaximale


ValPres = 0


ValPresDerivee = 0


v = 1 / (1 + i)


For t = LBound(CashFlow(), 1) To UBound(CashFlow(), 1)


ValPres = ValPres + CashFlow(t) * v ^ t


ValPresDerivee = ValPresDerivee - t * CashFlow(t) * v ^ (t + 1)


Next t


i = i - ValPres / ValPresDerivee


Wend


NewtonRaphson = i


End Function








Appel





n = DTPicker3.Year - DTPicker1.Year


For j = 1 To n - 1


CashFlow(j) = Val(tx_facial.Text) * nominal.Text


Next j


CashFlow(n) = Val(tx_facial.Text) * nominal.Text + nominal.Text


rdt.Text = NewtonRaphson(CashFlow(j), i, prix.Text)

merci

5 réponses

cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
14 avril 2006 à 18:49
C'est pas étonnant...
Function NewtonRaphson(CashFlow() As Double, i As Double) As Double<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />
rdt.Text = NewtonRaphson(CashFlow(j), i, prix.Text)

Lorsque tu appelles ta fonction, tu dois lui passer un tableau de Double puis un Double.
Mais dans ton code, tu lui passes 2 Double et un String...

sans doute vaudrait-il mieux écrire rdt.Text = NewtonRaphson(CashFlow, i)
Essaie déjà comme ça...
0
sofy2006 Messages postés 15 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 15 avril 2006
15 avril 2006 à 00:19
salut, j'ai mis ce que vous m'avez proposé mais ca ne marche pas encore ,il me donne erreur de compilation function non définie.
0
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
15 avril 2006 à 10:17
Salut;
À quelle ligne se produit l'erreur?
0
sofy2006 Messages postés 15 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 15 avril 2006
15 avril 2006 à 18:07
salut
l'erreur se produit à cette ligne

rdt.Text = NewtonRaphson(CashFlow(j), i, prix.Text)

merci bcp pour votre aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
17 avril 2006 à 16:08
Manque la déclaration du CashFlow(), déjà répondu, mais pas à Sofy2006, à Carpe_Diem,
merci de lire les réponses, voire d'y répondre!


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais... mais jamais avant la page 4
</SUP>
0
Rejoignez-nous