IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Transformer une formule de math en php


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut Transformer une formule de math en php
    Bonsoir a tous,

    J'ai cette formule de math a transformer en PHP :
    Nom : lissage.jpg
Affichages : 1504
Taille : 30,6 Ko

    Si j'ai bien compris
    on devrait avoir :


    $Mpp = 100 000€ (Montant Principal)
    $Tmpp= 2% (Taux Principal)
    $Dpp= 228mois (Durée Principal)
    -> pour info j'obtiens : $mens_pret_principal = 527 sur la base d'une autre équation : $Mpp= $Mpp*($Tmpp /100/12)/(1-pow((1+$Tmpp/100/12),(-$Dpp)));

    $Mpc= 300 (Mensualité Complémentaire)

    $fpc = 14? je pense que c'est la durée différée du crédit complémentaire + la durée aprés sa fin, et comme il commence au bout de 10ans, ne dure que 5ans, je presume que le resultat est 10 + 4ans, puisque il démarre au bout de 10ans, dure que 5ans (donc se termine a la 15eme année et comme le prêt principal va jusqu'a 19ans , il manque 4ans)

    $Dpc : 5 (Durée Complémentaire)

    Le problème est que je ne sais pas traduire le symbole somme (∑) en php, merci pour votre aide précieuse.

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 331
    Points : 15 674
    Points
    15 674
    Par défaut
    déjà faite attention aux unités. par exemple dans le texte, fpc est "une franchise en mois" et vous parlez de 14 années donc vous devrez certainement faire la conversion.
    pour calculer la somme, vous pouvez le faire dans une boucle :
    https://secure.php.net/manual/fr/con...es.foreach.php
    https://secure.php.net/manual/fr/con...ctures.for.php

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut
    Effectivement j'avais bien pris conscience de l'unité de mois plus qu'année.

    Cependant je ne comprends pas vraiment l’interprétation de foreach avec la ∑ .

    Comment interpreter la ∑ en php ?

  4. #4
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Je le comprends comme "la somme des mensualités du prêt complémentaire".
    Est-ce que les mensualités en question sont variables ou constantes ?
    Si elles sont variables, tu auras un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mpcs=array(250,250,250,300,300,300,350,350,350);
    Tandis que si elles sont constantes, ce sera un simple entier.
    L'idée étant que tu fasses une fonction sous cette forme :

    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
    23
    24
    /*
    $Mpp = 100 000€ (Montant Principal)
    $Tmpp= 2% (Taux Principal)
    $Dpp= 228mois (Durée Principal)
    -> pour info j'obtiens : $mens_pret_principal = 527 sur la base d'une autre équation : $Mpp= $Mpp*($Tmpp /100/12)/(1-pow((1+$Tmpp/100/12),(-$Dpp)));
     
    $Mpc= 300 (Mensualité Complémentaire)
     
    $fpc = 14? je pense que c'est la durée différée du crédit complémentaire + la durée aprés sa fin, et comme il commence au bout de 10ans, ne dure que 5ans, je presume que le resultat est 10 + 4ans, puisque il démarre au bout de 10ans, dure que 5ans (donc se termine a la 15eme année et comme le prêt principal va jusqu'a 19ans , il manque 4ans) 
     
    $Dpc : 5 (Durée Complémentaire)
    */
    //tu passes tes 6 variables en paramètres de fonction
    function calcul_mensualite_globale_lissee($mpp, $tmpp, $dpp, $mpcs, $fpc, $dpc){
       //pour $mpc, si tu décides que c'est un entier... le sigma sera plutôt le montant de mensualités comp * le nombre de mensualités comp
       //si c'est un array, tu passes $mpcs en param là haut
       foreach($mpcs as $mpc){
          //tu calcules ton sigma
       }
       //tu appliques la formule de ton premier message
     
     
       return $calcul;
    }

  5. #5
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Ah non, à y réfléchir, ça doit plutôt être :

    Tu as 1 prêt principal et de 1 à n prêt complémentaires (de type TPZ ou pas) que tu ne peux pas ou ne pourras pas rembourser ! On parle de gens surendettés après tout.
    Donc on calcule comment te faire payer un montant unique et stable sur toute la période, on étale ta dette quoi !
    C'est plus logique.

    Donc ça deviendrait pour tester :

    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
    $mpp = 100000;//euros
    $tmpp= 2;//%
    $dpp= 228;//mois
     
    $comps=array();
    //le premier prêt complémentaire
    $comps[0]['mpc']=300;//euros
    $comps[0]['fpc']=168;//mois
    $comps[0]['dpc']=60;//mois
     
    //un deuxième prêt complémentaire
    $comps[1]['mpc']=200;//euros
    $comps[1]['fpc']=30;//mois
    $comps[1]['dpc']=10;//mois
     
    //et faut que ça tourne que tu aies 2 ou 10 prêts complémentaires bien sûr !
     
    function calcul_mensualite_globale_lissee($mpp, $tmpp, $dpp, array $comps){
     
     
       return  $calcul;
    }

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut
    Merci de ton aide, mais je ne vois pas le rapport avec la transformation de mon equation ?

  7. #7
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,
    $Tmpp= 2% (Taux Principal)
    Tes 2% sont annuels, je présume.
    Or il est stipulé : Tmpp : taux mensuel du prêt principal
    Donc il faut déjà recalculer le taux au mois.
    Je regarde de mon côté pour la suite

    Le symbole Ʃ (sygma) correspond à la somme des valeurs qui suivent le symbole.
    Donc il faut calculer les différentes valeurs en faisant varier les paramètres et faire la somme courante.

  8. #8
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par kaolivier Voir le message
    Merci de ton aide, mais je ne vois pas le rapport avec la transformation de mon equation ?
    Je pensais qu'ensuite, tu récupérais des données de ta base et tu faisais passer ces données par ta fonction dans une boucle. Sorry...
    Pour la formule, je suis ce fil, la réponse m'intéresse beaucoup. J'aime bien les problématiques financières.
    Donc la formule ici, c'est pour lisser 2 emprunts seulement, 1 principal et 1 complémentaire (de type PTZ seulement car franchise et taux 0) ?

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut
    Merci a tous pour votre aide,

    Oui effectivement c'est pour lisser le pret principal et le PTZ.

    On peut aussi imaginer selectionner les prets a lisser mais normalement les principaux sont le principal et un complémentaire.

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut
    Bonjour,

    J'ai repris un peu mon code, et j'ai reussi a faire quelques choses qui tient la route, sur la base de la comprehension de l'equation en haut, sauf que j'ai 2 problemes

    Mon premier probleme : avec la mensualité principale qui ne contient pas les assurances.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $a= $ptz_mens*(1-pow((1+$plan_taux/100/12),(-$ptz_duree)))*(1-pow((1+$plan_taux/100/12),($ptz_duree-$plan_duree)));echo 'A : '.$a.'<br>';
     
    $b= $plan_montant*$plan_taux/100/12*(1-pow((1+$plan_taux/100/12),($ptz_duree-$plan_duree)));echo 'B : '.$b.'<br>';
     
    $c= $plan_taux/100/12*(1-pow((1+$plan_taux/100/12),(-$ptz_duree)));echo 'C : '.$c.'<br>';
     
    $d= $plan_taux/100/12*pow((1+$plan_taux/100/12),(-$ptz_duree))*(1-pow((1+$plan_taux/100/12),($ptz_duree-$plan_duree)));echo 'D : '.$d.'<br>';
     
    $e= $plan_taux/100/12/(1-pow((1+$plan_taux/100/12),($ptz_duree-$plan_duree)));echo 'E : '.$e.'<br>';
     
    $f = ($a+$b)/($c+$d)*$e;echo 'F : '.$f.'<br>';
    Ce code est donc ma transcription de l'equation mathématique en php et fonctionne très bien, sauf que si j'ai pu en amont faire en sorte de $ptz_mens soit la somme de la mensualité du crédit PTZ et des mensualités des assurances du PTZ, en revanche pour le pret principal, je n'arrive pas a lui rajouter les assurances.

    Pour calculer la mensualité principale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mensualite = $montant*($taux/100/12)/(1-pow((1+$taux/100/12),(-$duree2)));
    Pour calculer la mensualité de l'assurance de Mr :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mensualite_ass = ($montant*($qte_ass/100))*($taux_ass/100/12)/(1-pow((1+$taux_ass/100/12),(-$duree2)))/12;
    Pour calculer la mensualité de l'assurance de Mme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mensualite_ass_c = ($montant*($qte_ass_c/100))*($taux_ass_c/100/12)/(1-pow((1+$taux_ass_c/100/12),(-$duree2)))/12;
    Evidemment la somme donnerait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $principal_mens = $mensualite +$mensualite_ass + $mensualite_ass_c
    C'est sur ce principe que j'ai calculé la mensualité ptz globale $ptz_mens, or dans mon equation, je n'ai pas d'endroit pour y mettre la mensualité globale du crédit principal

    Mon second problème est que si je ne veux pas lisser 2 crédits mais plusieurs, genre en sélectionnant ceux souhaités via une checkbox, la je suis perdu dans equation a rallonge et je n'arrive pas a obtenir un bon resultat.

    Merci beaucoup pour votre aide
    Guillaume

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2008R2] Transformer une formule Excel en SQL
    Par PrinceCorwin dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/06/2014, 07h36
  2. Formule de maths en PHP
    Par Vorehan dans le forum Langage
    Réponses: 5
    Dernier message: 23/12/2013, 14h25
  3. Réponses: 2
    Dernier message: 19/11/2013, 08h59
  4. Transformé une formule Excel en script VBA ?
    Par SFLEY dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 06/01/2007, 11h48
  5. Besoin d'une formule de math
    Par AsmCode dans le forum Mathématiques
    Réponses: 29
    Dernier message: 24/08/2005, 12h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo