GIL
je viens de trouver une formule mais ce n'est que de l'approchant
PMT = (PV + FV * (1+Rate)^-NPer) * (1+x*Rate) * Rate / (1 - (1+Rate)^-NPer))
VPM = (VA + VC * (1+Taux)^-NPer) * (1+x*Taux) * Taux / (1 - (1+Taux)^-Nper))
ou x est le type de la fonction VPM 0 ou 1 pour fin de période ou début de période
merci beaucoup pour une aide pour résoudre l'approchant
pour ceux que ça intéresse voici la formule exacte de VPM ou PMT en anglais
PMT = (rate*(FV+PV*(1+ rate)^NPER))/((1+rate*type)*(1-(1+ rate)^NPER))
VPM = (taux*(VC+VA*(1+taux)^NPER))/(1+taux*type)*(1-(1+taux)^NPER))
bon courage à ceux qui l'utilise
/**
* Calcule et retourne le Versement p
/**
* Calcule et retourne le Versement périodique d'un remboursement ou d'un
loyer.
* @param $tx, Intérêt. Il est souvent donné annuellement (le diviser par 12
si l'on veut un calcul par mois).
* @param $npm, Nombre de périodes de capitalisation (souvent en mois)
* @param $va, Valeur actuelle (capital investi)
* @param $vc, Valeur capitalisée (capital acquis) facultative, c'est à dire
la valeur future (si omise la valeur est = 0)
* @param $typeRembt, 1 si paiement en début de période (généralement les
emprunts hypothécaires), 0 sinon (valeur par défaut)
* @return double < 0
*/
public static function VPM($tx, $npm, $va, $vc=0, $typeRembt=0){
if
(!is_numeric($tx)||!is_numeric($npm)||!is_numeric($va)||!is_numeric($vc)||!is_numeric($typeRembt))
return false;
if ($typeRembt>1||$typeRembt<0) return false;
$txActuariel = pow(1+$tx, -$npm);
if ((1-$txActuariel)==0) return 0;
$vpm = ( ($va + $vc * $txActuariel) * $tx / (1 - $txActuariel) ) / (1 + $tx *
$typeRembt);
return -$vpm;//Attention : on retourne une valeur négative !
}