Le but de ce projet est de réaliser un logiciel de gestion de patrimoine, sous le logiciel scientifique Scilab, et de le mettre en libre accès sur Internet. L’intérêt de cette démarche réside dans la possibilté de modifier le code Scilab si besoin. Celui-ci consiste en quelques fonctions type, qui pourront être ensuite exploitées et modifiées selon les placements à modéliser, et sera disponible sur la page Internet.
Les différents types de placements ici traités sont principalement :
Ces divers placements diffèrent essentiellement par le système de capitalisation des intérêts. Dans tous les cas, le calcul des intérêts s’effectue au mois, mais ils sont capitalisés soit en fin d’année, soit à la fin du mois. Ainsi, nous avons distingué, dans la structure même de ce projet, ces deux systèmes de capitalisation des intérêts.
Dans un placement financier à capitalisation annuelle, les intérêts sont bien calculés chaque mois, mais ne sont capitalisés qu’en fin d’année, de sorte qu’il n’y a pas d’intérêts sur les intérêts. On peut en revanche ajouter régulièrement de l’argent, ce qui a été pris en compte dans le programme associé à ce placement. Nous examinerons ensuite les cas du livret A et de l’assurance-vie.
Dans cette partie, on donne en Code Scilab 1 un programme définissant une fonction de nom annuel qui prend en arguments :
et qui renvoie le capital final ainsi que les intérêts agrégés.
Cette fonction sera utilisée pour simuler des placements sur le livret A ainsi que sur l’assurance-vie.
Code Scilab 1.
//
function [capital,total_interets]=annuel(...
tableau_taux,capital_initial,tableau_mensualites,... mois_debut,annee_debut,mois_fin,annee_fin) // CAPITALISATION À LA FIN DE CHAQUE ANNÉE //error('Attention : mettre 4.5 pour un taux de 4,5 pourcent') //disp('Attention : mettre 4.5 pour un taux de 4,5 pourcent') capital=capital_initial; // vecteur des capitaux mois par mois total_interets=0; //interets cumules sur la duree du placement theta=tableau_taux/100/12; //taux mensuels avec 0 <= teta <= 1 // ------------------------------------------------------------ // Première année // ------------------------------------------------------------ interets=0; // interets cumulés sur l'année if annee_fin>annee_debut nb_mois_d=12-mois_debut; // placement sur plus d'une année else nb_mois_d=mois_fin-mois_debut; // placement au sein d'une même année end for j=1:nb_mois_d capital=[capital,capital($)+tableau_mensualites(j)]; interets=interets+theta(j)*capital($); end // un montant placé le mois j est considéré comme rapportant // à partir du mois j+1 // par exemple, un placement en décembre (mois_debut=12) // rapporte à partir de janvier de l'année suivante capital($)=capital($)+interets; total_interets=interets; // ------------------------------------------------------------ // années intermédiaires // ------------------------------------------------------------ if annee_fin>annee_debut+1 nb_annees=annee_fin-annee_debut-1; else nb_annees=0; end for i=1:nb_annees interets=0; // variable locale remise à zero à chaque début d'année for j=1:12 ind_mois=(i-1)*12+j+12-mois_debut ; // indice du mois en cours capital=[capital,capital($) + tableau_mensualites(ind_mois)]; interets=interets+theta(ind_mois)*capital($); end capital($)=capital($)+interets; total_interets=total_interets+interets; end // ------------------------------------------------------------ // dernière année // ------------------------------------------------------------ if annee_fin>annee_debut // nb_mois_f=mois_fin-1; //placement sur plus d'une année nb_mois_f=mois_fin ; // else nb_mois_f=0; else nb_mois_f=0; end interets=0; for j=1:nb_mois_f ind_mois=nb_mois_d+nb_annees*12+j ; // indice du mois en cours capital=[capital,capital($) + tableau_mensualites(ind_mois)]; interets=interets+theta(ind_mois)*capital($); end capital($)=capital($)+interets; total_interets=total_interets+interets; endfunction //
|
Il s’agit ici de modéliser l’évolution d’un capital placé sur livret A, qu’on alimente tous les mois. On utilise dans ce but la fonction annuel définie plus haut. En effet, les intérêts ne sont capitalisés, dans le cas du livret A, qu’à la fin de chaque année. Toutefois, en toute rigueur, sur le livret A les intérêts sont calculés par quinzaines, et le livret A est plafonné : le code correspondant est donné en Annexe A.
Un exemple d’application au livret A avec les données du Tableau 2.2 est donné en Code Scilab 2. On y traite simultanément le cas de taux stationnaire et de taux instationnaires. Les résultats sont présentés en Figure 2.2.
Code Scilab 2.
//
getf('annuel.sci');
// ----------------------------------------------------------- // Données communes // ----------------------------------------------------------- mois_debut=05; annee_debut=1987; mois_fin=04; annee_fin=2007; mois=0:((12-mois_debut) + (annee_fin - annee_debut-1)*12 +... mois_fin); nb_mois=length(mois); capital_initial=1000; tableau_mensualite=100*ones(1,nb_mois); // ------------------------------------------------------------ // Livret A // ------------------------------------------------------------ taux_A=2.75; tableau_taux=taux_A*ones(1,nb_mois); [capital_A,total_interets_A]=annuel(... tableau_taux,capital_initial,tableau_mensualite,... mois_debut,annee_debut,mois_fin,annee_fin) // ------------------------------------------------------------ // Graphiques // ------------------------------------------------------------ xset('window',1); xbasc(); plot2d2(mois,capital_A); xtitle('Livret A : Capital initial de' +... string(capital_initial) +' euros'+' et placements reguliers de '+... string(tableau_mensualite(1)) +' euros', 'Mois' ,'Capital'); legends(['Livret A '+string(taux_A)+'%'],[1],'ul'); //
|