guikk
Messages postés9Date d'inscriptionmercredi 13 juin 2007StatutMembreDernière intervention18 juin 2007
-
13 juin 2007 à 18:35
marinmarais
Messages postés104Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention16 juillet 2010
-
15 juin 2007 à 15:42
Bonjour à tous,
je suis étudiant en finance et je dois créer un logiciel de valorisation d'actifs (de type obligation convertibles).
le code doit être écrit en VB 6.0
Je me trouve bloqué puisque que je ne sais pas quel code utiliser pour déterminer les différentes composantes d'une suite géométrique de degré n....et notamment la raison Q de cette suite.
cs_Nicko11
Messages postés1141Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention19 septembre 20073 14 juin 2007 à 12:00
Salut,
je vois que personne ne te reponds donc je vais le faire.
C'est un pb de maths ou de programmation car dans le premier cas, il faudrait voir deja la méthode mathematique car la transcription en code ne doit pas etre des plus durs.
Tu as une formule sous la main car j'ai la fleme de cherche.
OU sinon, il est possible que j'ai mal compris une chose. Tu as une suite et tu desires extraire la raison et de cette suite.
Mais pour ce cas, c'est pareil, les maths sont essentiels avant la prog.
Si tu as un algo ou un truc sous la main, expliques quel est ton pb précisment.
guikk
Messages postés9Date d'inscriptionmercredi 13 juin 2007StatutMembreDernière intervention18 juin 2007 14 juin 2007 à 14:22
salut,
merci d'avoir répondu.
en fait, je sais résoudre le problème par tatonnements (ce qui ressemble à des itérations successives) sous excel.
je vais essayer de résoudre le pb avec un systeme d'itérations avec VB, avec une simple boucle Do while...Loop.
je ne sais pas comment lui indiquer qu'il doit s'arréter lorsqu'il est proche de la solution (une marge d'erreur telle qu'on atteint le résultat à 0.1% près, par exemple)
c'est une solution de contournement, mais elle peut sans doute m'éviter quelques lignes de codes complexes..
Pour tout n, entier superieur ou egal a no, on a une suite de nombre U(n) defini comme suis :
Il existe q tel que U(n+1)=q.U(n)
Si on prend comme point de depart un point U(no), on obtient :
quelque soit n superieur ou egal a no, U(n)=U(no).q^(n-no)
c'est a dire, si no=0
Un=Uo.q^n
J'en reviens a ton probleme.
Si j'ai bien saisi, tu disposes d'une serie de nombre qui, selon toute vraisemblance, reponde a une suite geometrique de raison q et de terme initial Uo inconnus. N'est-ce pas ?
Il faut donc, a partir des donnees dont tu disposes, effectuer un calcul d'ajustement des parametres inconnus Uo et q.
Tu peux utiliser pour ce faire un ajustement par la methode des moindres carres. Ca se programme tres bien en vb6 mais matlab serait peut etre plus approprie.
Tu disposes de n observations, les Un.
les observations sont :
U(n)=Uo*q^n
Pour resoudre ca, c'est impossible comme tel car ce n'est pas lineaire.
Mais le logarithme donne :
ln(un)=n*ln(q)+ln(uo)
Un systeme matriciel de la forme
B=A*X avec B, les observations et X les inconnues.
B=[ln(Un)] Matrice colonne
X=[ln(q)
ln(Uo)] Matrice colonne
A=[n 1
n+1 1]
Le resultat est X=N^-1 * C avec N=t(A)*A et C=t(A)*B t(A) : transposee de A
Suite a cela tu peux faire tous les calculs statistiques que tu veux (test du khi2, etc...)