Calcul de VPM avec VC

Signaler
Messages postés
137
Date d'inscription
jeudi 8 septembre 2005
Statut
Membre
Dernière intervention
7 mars 2008
-
 Hugo -
Bonjour tout le monde.
J'ai une question très très difficile !!! Avis aux amateurs de mathématiques !!

Je cherche à reproduire la fonction VPM d'Excel en php, mais avec une VC (ou valeur résiduelle) soit :

SI(Montantfinancé"";"";VPM(TEG/12;nbrprelevement;montantfinancé;-VC))

Merci a tous ceux qui vont se casser la tete !!
chris tuckers, l'as de coeur

9 réponses

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
21
Hello,

je ne suis ni doué en math, ni avec Excel...donc, si tu pouvais expliquer ce que fait cette fonction, on pourrait toujours essayer de coder l'algo en php :-)
Messages postés
137
Date d'inscription
jeudi 8 septembre 2005
Statut
Membre
Dernière intervention
7 mars 2008

Alors attention c'est compliquer quand même .

Je souhaite calculer un loyer, j'ai donc un montant financé, que l'on va appelé MF
Une durée : on va l'appelé D
un taux, on va l'appelé T
une valeur capitalisé que l'on appelle VC. La VC signifie qu'une fois que je revendrais mon materiel, il sera au prix de VC.
et le montant du loyer que l'on appellera L

en fait j'arrive a calculer mais sans la VC ce qui ferait : (MF*(T/100))/D=L

En gros ce que je veux c'est que le montant total des loyers + VC = montant financé.

Vous avez compris ????
chris tuckers, l'as de coeur
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
21
Oula, j'ai cherché sur internet...l'algo est très complexe!
Je me pencherai peut-être dessus plus tard, mais pour le moment, pas le temps, désolé!
Messages postés
137
Date d'inscription
jeudi 8 septembre 2005
Statut
Membre
Dernière intervention
7 mars 2008

ok tu as réussi a trouver des algo ??? moi j'en ai trouvé aucun !! a chaque la VC n'est pas dans le calcul, pourrais tu m'indiquer tes sources s'il te plait ?

chris tuckers, l'as de coeur
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
21
Messages postés
137
Date d'inscription
jeudi 8 septembre 2005
Statut
Membre
Dernière intervention
7 mars 2008

ok merci je vais continuer a reflechir mais bon, ca a pas l'air d'etre facile !!

chris tuckers, l'as de coeur
Messages postés
75
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
26 mars 2010

Pour info : fonction VPM simple en terme echu :

<?php
function CalculVPM($mensualite, $pourcent_annuel, $prix) {
$t_mensuel=($pourcent_annuel/12)/100;
$R=(1-pow((1+$t_mensuel),-$mensualite))/$t_mensuel;
$VPM=(($prix)/$R);
return $VPM;
}
function Calcul2VPM($mensualite2, $pourcent_annuel2, $prix2) {
$tmensuel2=$prix2*(($pourcent_annuel2/12)/100)/(1-pow((1+$pourcent_annuel2/12),-($mensualite2)));
}
$mensualite=48; //exemple
$pourcent_annuel=5.45;//exemple
$prix=93600;//exemple
$mensualite2=48;//exemple
$pourcent_annuel2=5.45;//exemple
$prix2=93600;//exemple

$cout_mensuel=sprintf ("%.2f",CalculVPM($mensualite,$pourcent_annuel,$prix));

print ("pour $prix € au tx annuel de $pourcent_annuel %, sur $mensualite mois, vous rembourserez par mois $cout_mensuel € pour un montant total de ".$cout_mensuel * $mensualite.")");
echo "
";
$cout_mensuel2=sprintf ("%.2f",Calcul2VPM($mensualite2,$pourcent_annuel2,$prix2));

print ("pour $prix2 € au tx annuel de $pourcent_annuel2 %, sur $mensualite2 mois, vous rembourserez par mois $cout_mensuel2 € pour un montant total de ".$cout_mensuel2 * $mensualite2.")");

?>
function vpm($taux, $npm, $va, $vc = 0, $type = 0){
if(!is_numeric($taux) || !is_numeric($npm) || !is_numeric($va) || !is_numeric($vc) || !is_numeric($type)):
return false;
endif;

if($type > 1|| $type < 0):
return false;
endif;

$tauxAct = pow(1 + $taux, -$npm);

if((1 - $tauxAct) == 0):
return 0;
endif;

$vpm = ( ($va + $vc * $tauxAct) * $taux / (1 - $tauxAct) ) / (1 + $taux * $type);
return -$vpm;
}
Bonjour ici. j’ai travaillé sur un projet qui nécessitait du calcul de VPM, j’ai utilisé la méthode de calcul de la VPM en php décrite plus haut.
Constat : les valeurs trouvées étaient inférieures aux valeurs trouvées lorsqu’on fait directement le calcul avec mes paramètres dans excel. Alors après des recherches je suis tombé sur un une librairie Javascript reprenant un ensemble de fonctions financières utilisées dans le cadre d’emprunt ou de de placement.

Voici le lien
https://github.com/vinnyroundfoot/Hypo-js

J’ai du traduire le code javascript en php

Voici l’exemple

private function arrondi($m, $dec)
{
$montantArrondi = $m;
if (ctype_digit ($dec) && intval($dec, 10))
{
$r = pow(10, $dec);
$montantArrondi = round($m * $r)/$r;
}
return $montantArrondi;

}

private function VPM($Kd, $n, $t, $dec)
{

if ($n == 0) {
return 0;
}

if ($t == 0) {
return $this ->arrondi($Kd / $n, $dec);
}
return $this ->arrondi($Kd * $t / (1 – pow(1 + $t, -$n)), $dec);
}

Kd = Capital en début de période
n = Nombre de période
t = taux
dec représente le nombre de chiffre après la virgule