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).
A priori j'ai fait une fonction qui calcule le cours d'une action,qui correspond à la fonction C :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
D'avance merci pour vos éclaircissements
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager