Précédent   Forum du club des développeurs et IT Pro > Logiciels > Microsoft Office
Microsoft Office Forum d'entraide sur Microsoft Office
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 22/10/2012, 21h17   #1
Luiza
Invité de passage
 
Femme
Étudiant
Inscription : octobre 2012
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : octobre 2012
Messages : 3
Points : 0
Points : 0
Par défaut Itération Newton -Raphson pour trouver le taux d'accroissement

Bonsoir,

Là-dessous je vous mets ma fonction Newton qui devrait me permettre de trouver le "g", taux d'accroissement sachant le Cours d'une action(hypothèse :le cours de l’action reflète un amortissement de l’investissement en 10 ans), le dernier dividende et les taux d'actualisation(TZC),cvd.:

C=∑_(i=1)^10(D∙〖(1+g)〗^(i-1))/〖(1+〖TZC〗_i)〗^i
Donc la fonction serait:
f(x)=∑_(i=1)^10(D∙〖(1+x)〗^(i-1))/〖(1+〖TZC〗_i)〗^i

J'ai regardé sur l'internet l'emploi de cette fonction, mais je n'arrive pas à trouver la logique dans les étapes.
Quelqu'un pourrait me donner un coup de main?
par ex.C=22,Div=1,5 et les taux TZC ,je les prends d'une plage(on les suppose connus).
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Function newton(val_soc1 As Double, div_initial As Double)
 
Dim ddiv As Double, epsilon As Double
Dim cours_1 As Double, cours_2 As Double
Dim div_1 As Double, div_2 As Double, iter As Integer, dx As Double, maxiter As Integer
 
 
ddiv = 1e-05
epsilon = 1e-05
div_1 = div_initial
maxiter = 50
iter = 1
 
Do
cours_1 = val_soc(div_1)
div_2 = div_1 + ddiv 
cours_2 = val_soc(div_2)
dx = (cours_2 - cours_1) / ddiv 
iter = iter + 1
Loop While Abs(val_soc1 - cours_1) > epsilon And (iter <= maxiter) 
newton = dx
End Function
A priori j'ai fait une fonction qui calcule le cours d'une action,qui correspond à la fonction C :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Function val_soc(div0 As Double) As Double
Dim val As Double
Dim i As Integer
 
val = 0
Sheets("TZC").Activate
 
For i = 1 To 10
val = val + (Range("F4") * (1 + div0) ^ (i - 1)) / (1 + Range("B" & i + 1)) ^ i
Next
val_soc = val
 
End Function
D'avance merci pour vos éclaircissements
Luiza est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2012, 21h59   #2
bilou_12
Membre du Club
 
Inscription : janvier 2012
Messages : 233
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 233
Points : 63
Points : 63
Salut Luiza,

Peux-tu mettre en pj ton fichier ou détailler ta question? A quel moment tu te perds?

Est-ce que tu connais le principe de l'algo de Newton Raphson?
bilou_12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2012, 00h25   #3
Luiza
Invité de passage
 
Femme
Étudiant
Inscription : octobre 2012
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : octobre 2012
Messages : 3
Points : 0
Points : 0
Bonsoir,

Ci-joint le fichier.Je bloque lors de l'itération.
Je sais le principe ( je crois, j'ai regardé sur l'internet et dpdv mathématique , j'ai compris ,mais lors de le mettre sous VBA, je sais pas comment prendre la valeur initial du cours pour lequel je peux trouver un g0 arbitraire..
Si tu peux regarder ma fonction,j'ai qd même un résultat, mais je sais pas trop qu'est-ce qu'il représente..

D'avance merci
Fichiers attachés
Type de fichier : xls Evaluation_soc_div.xls (54,5 Ko, 3 affichages)
Luiza est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2012, 22h16   #4
bilou_12
Membre du Club
 
Inscription : janvier 2012
Messages : 233
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 233
Points : 63
Points : 63
Je peux complètement me planter mais je dirais que comme ta fonction est convexe, peu importe ton g0 du moment que le maxiter est assez grand!

Tu es sûre de ta fonction Newton? Je croyais que Newton minimisait une fonction par itération en prenant à chaque fois l'abscisse de la dérivée du point précédent en ordonnée 0.

Bonne chance!
bilou_12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 14h13.


 
 
 
 
Partenaires

Hébergement Web