La Taverne

Isoler l'element d'une équation

Répondre
Partager Rechercher
Bonjour à tous,
j'ai l'équation qui permet de calculer la mensualité d'un prêt à partir du taux, nombre de mois et le montant.

J'aimerais en déduire l'équation qui permet de calculer le taux à partir du reste.

Je suis un peu paumé sur comment isoler "taux" dans l'équation suivante :
Capture d’écran 2021-07-22 à 17.36.19.png

quelqu'un a des liens pour m'aider à résoudre mon problème ?(genre je sais comment on passe d'un coté à l'autre, soustraire toussa, mais les puissance par exemple je sais pas comment sortir "taux" du truc à la puissance nombre de mensualité. ça fait longtemps que j'ai pas fais de math .
Est-ce hyper compliqué et je laisse tomber? Y'a pas un site où on tape l'equation dans un langage quelconque et il nous le fait??


EDIT: j'ai trouvé un site mais il semble pas gérer mon équation.
https://www.symbolab.com/solver/solv...Bd%7D-1%7D%3Dm

Dernière modification par Zoltann ; 22/07/2021 à 17h49.
Citation :
Publié par Kikako
J'imagine que c'est pour un cas concret. As tu un exemple chiffré ? ce sera plus simple.
Oui le but c'est de faire une fonction qui permet de déduire le taux à partir d'une mensualité, d'une durée et d'un montant.

La formule vient du site https://www.inc-conso.fr/content/com...-votre-emprunt

Ils ont un exemple avec : Vous empruntez 100 000 €, pendant 20 ans pour un remboursement mensuel, avec un taux périodique de 0,5 %. (le taux dans la formule c'est le taux mensualisé attention)
234272-1626969824-1386.png

Et donc mensualité de 716,43 €.

L'idée maintenant c'est de ne pas savoir le taux mais de savoir sa mensualité.
Je me penche un peu sur le problème et est tu certain que la formule s’applique à ton cas ? Il y a une palanquée de crédits différents...

Sinon la brute force marche plutôt bien. (sorry je suis bien rouillé)
Je t'ai fait un xls (utilisable avec Libreoffice). Tu rentres tes données Montant et Nombre de mensualité, tu fait varier ton taux à la main, le montant de la mensualité est calculé automatiquement. Réponse normalement en moins de 10 minutes.
Fichiers attachés
Sans nom 1.xls (6,0 Ko, 14 affichages)
Citation :
Publié par Zoltann
Bonjour à tous,
j'ai l'équation qui permet de calculer la mensualité d'un prêt à partir du taux, nombre de mois et le montant.

J'aimerais en déduire l'équation qui permet de calculer le taux à partir du reste.

Je suis un peu paumé sur comment isoler "taux" dans l'équation suivante :
Capture d’écran 2021-07-22 à 17.36.19.png

quelqu'un a des liens pour m'aider à résoudre mon problème ?(genre je sais comment on passe d'un coté à l'autre, soustraire toussa, mais les puissance par exemple je sais pas comment sortir "taux" du truc à la puissance nombre de mensualité. ça fait longtemps que j'ai pas fais de math .
Est-ce hyper compliqué et je laisse tomber? Y'a pas un site où on tape l'equation dans un langage quelconque et il nous le fait??


EDIT: j'ai trouvé un site mais il semble pas gérer mon équation.
https://www.symbolab.com/solver/solv...Bd%7D-1%7D%3Dm
alors on va dire
x=montant de la mensualité
y = montant emprunté
z = taux
a=nombre de mensualités

l'équation donne
x=(y*z*(1+z)^a)/((1+z)^a-1)
x/y = z * (1+z)^a/((1+z)^a-1)

((1+z)^a)/((1+z)^a-1) =1+z

donc x/y= z*(1+z) = z+z².

à partir de là, je suis bloqué, mais je crois que le problème reste assez simple. Bon par contre, j'explique pas le nombre de mensualités qui saute dans le calcul (ça me parait juste d'un point de vue mathématique)
Citation :
Publié par Diot
((1+z)^a)/((1+z)^a-1) =1+z

donc x/y= z*(1+z) = z+z².

à partir de là, je suis bloqué, mais je crois que le problème reste assez simple. Bon par contre, j'explique pas le nombre de mensualités qui saute dans le calcul (ça me parait juste d'un point de vue mathématique)
Nope, l'image est trompeuse , il s'agit de ((1+z)^a) / (((1+z)^a)-1) ou bien (1+z)a / ((1+z)a -1)

Le résultat exacte est une solution d'un polynôme de facteur Nombre de mensualités.

Dans la vraie vie*, en tâtonnant avec l'Xls que j'ai fichu plus haut, on trouve rapidement le taux.


*taunt facile, mais ça pourrait faire pop du matheux.
Un polynôme d'un facteur inconnu n'a pas systématiquement de solution analytique (cf Evariste Galois/Abel). Quand je pose l'équation j'arrive à quelque chose du genre X^a + b *X + c = 0, avec X la variable et a qui dépend de n.

Du coup je serais tenté de dire que personne ne peut t'apporter la réponse que tu cherches


* Je peux me tromper, ça fait 10 ans que j'ai quitté l'école
Citation :
Publié par Kikako
Nope, l'image est trompeuse , il s'agit de ((1+z)^a) / (((1+z)^a)-1) ou bien (1+z)a / ((1+z)a -1)
Effectivement c'est ça.

Merci à tous de votre participation ! Le brute-force peut marcher oui mais j'aimerai pouvoir optimiser la chose surtout dans une but de performance.

J'ai posté ça sur stackexchange de mathématique Et voici une réponse d'un phd:
https://math.stackexchange.com/quest...205417#4205417

Me reste plus qu'à transformer ça en javascript dont j'ai aucune idée en esperant qu'il ai bon. je me pencherai sur la chose plus tard :-o.
En effet impossible de résoudre ton équation avec une solution explicite.
Tu as absolument besoin de le faire en JS ? Le solver d'excel est probablement la solution la plus user friendly.
Attention aussi a ces méthodes de gradient, si ta fonction est un peu dégueu, tu risques d'être sensible au point de départ :

232853-1627053198-5233.png

Sur mon superbe paint, selon si ton point de départ est le vert, le rouge ou le jaune, tu auras 2 solutions différentes ainsi qu'une fois ou tu ne convergeras pas du tout (le rouge).
Citation :
Publié par Zoltann
Effectivement c'est ça.

Merci à tous de votre participation ! Le brute-force peut marcher oui mais j'aimerai pouvoir optimiser la chose surtout dans une but de performance.

J'ai posté ça sur stackexchange de mathématique Et voici une réponse d'un phd:
https://math.stackexchange.com/quest...205417#4205417

Me reste plus qu'à transformer ça en javascript dont j'ai aucune idée en esperant qu'il ai bon. je me pencherai sur la chose plus tard :-o.
Il a fait 2 erreurs.
Je vais prendre n=nombre de mensualité, mm=montant de la mensualité et me=montant emprunté.

z=mm/me
t0=1,5*(z-1/n)
t1=t0-((z-t0)*(1+t0)-z/(1+t0)^(n-1))/((z-t0)*n-(1+t0))
t2=t1-((z-t1)*(1+t1)-z/(1+t1)^(n-1))/((z-t1)*n-(1+t1))
t3=t2-((z-t2)*(1+t2)-z/(1+t2)^(n-1))/((z-t2)*n-(1+t2))

t3 te donnera une bonne approximation du taux mensuel.
On peut faire plus d'itérations mais cela doit être largement suffisant dans ton cas.

Par exemple avec un emprunt à 150000 € sur une durée de 15 ans avec une mensualité de 1186,19 €, on obtient t3=0,416675% alors que le taux réel mensuel est de 0,416667%

Dernière modification par Melchiorus ; 23/07/2021 à 17h37.
Citation :
Publié par Melchiorus
Il a fait 2 erreurs.
Je vais prendre n=nombre de mensualité, mm=montant de la mensualité et me=montant emprunté.

z=mm/me
t0=1,5*(z-1/n)
t1=t0-((z-t0)*(1+t0)-z/(1+t0)^(n-1))/((z-t0)*n-(1+t0))
t2=t1-((z-t1)*(1+t1)-z/(1+t1)^(n-1))/((z-t1)*n-(1+t1))
t3=t2-((z-t2)*(1+t2)-z/(1+t2)^(n-1))/((z-t2)*n-(1+t2))

t3 te donnera une bonne approximation du taux mensuel.
On peut faire plus d'itérations mais cela doit être largement suffisant dans ton cas.

Par exemple avec un emprunt à 150000 € sur une durée de 15 ans avec une mensualité de 1186,19 €, on obtient t3=0,416675% alors que le taux réel mensuel est de 0,416667%
Je viens de percuter que (1+taux)^mensu s'approxime en 1+mensu*taux tant que taux reste suffisamment petit et permet de très bien simplifier notre problème.
Du coup comme point de départ et probablement qu'une seule itération suffira, on peut prendre t0 = [(mm*n)/me - 1] * 1/n

EDIT pour en dessous : Ah oui pardon je n'ai plus les yeux en face des trous le vendredi aprem.
Apres c'est peu précis car tu as pris des taux assez eleves: 0.4% mensu c'est (1.004)^12 -1 = 5% annuel. On a plus vu ca depuis 10 ans en zone euro.

Dernière modification par No One ; 23/07/2021 à 18h00.
Citation :
Publié par No One
Je viens de percuter que (1+taux)^mensu s'approxime en 1+mensu*taux tant que taux reste suffisamment petit et permet de très bien simplifier notre problème.
Du coup comme point de départ et probablement qu'une seule itération suffira, on peut prendre t0 = [(mm*n)/me - 1] * 1/n
En fait c'est ce que j'ai fait et si tu simplifies ta formule tu tombes sur t0=mm/me-1/n mais ce n'est pas précis du tout.
En faisant pas mal de test j'ai vu que c'était en fait mieux de multiplier ce nombre par 1,5 comme point de départ d'où mon t0=1,5*(z-1/n)
Citation :
Publié par Zoltann

quelqu'un a des liens pour m'aider à résoudre mon problème ?(genre je sais comment on passe d'un coté à l'autre, soustraire toussa, mais les puissance par exemple je sais pas comment sortir "taux" du truc à la puissance nombre de mensualité. ça fait longtemps que j'ai pas fais de math .
C'est une équation polynomiale non remarquable.
Les mathématiciens ont cherché pendant des siècles à résoudre ce type d'équation (qui a l'air simple) avec une belle formule et il se trouve que c'est impossible à partir de la puissance 5 (mais possible en dessous).
Donc effectivement il ne reste plus que l'approximation mentionnée ci-dessus.

Si tu veux voir à quoi ressemble la transformation au format normalisé (mais ça sert à rien), ton équation s'écrit :


avec a = e/m, ça donne en ramenant le dénominateur à gauche par multiplication puis à droite par soustraction:


On peut développer

Par ex:
(1+x)² = 1 + 2x + x²

etc


avec C(k,n) qui se lit k parmi n et qui vaut n! / (k! (n-k)!)

donc


Déjà, bravo pour avoir trouvé cette formule qui donne la mensualité, elle ne doit pas être simple à calculer analytiquement, et je ne l'avais jamais vue écrite en entier !
Pour ma part, j'ai une feuille excel avec un tableau d'amortissement simulé (ce qui me permet de faire un peu ce que je veux, y compris une assurance constante ou décroissante, un différé de remboursement...)

Pour les petits taux d'intérêts, il y a une formule qui marche bien, durée*taux*capital/2
Exemple, qui montre la limite de validité du truc puisque c'est un gros taux, 6% :
100 000 €, pendant 20 ans pour un remboursement mensuel, avec un taux périodique de 0,5 % : 20*0.06*100000 = 60 000€, au lieu d'un réel à 72k€.
Exemple, dans un domaine où l'approximation marche mieux : 2% :
100 000 €, pendant 20 ans pour un remboursement mensuel, avec un taux annuel de 2% : 20*0.02*100000 = 20 000€, au lieu d'un réel à 21.4k€, moins de 10% d'écart.

Ensuite, j'utilise un solveur personnalisé qui fait des itérations ciblées.
(Mais je n'ai jamais cherché un taux en fonction d'une mensualité)
Je cherche la mensualité qui correspond à un taux, un capital et une durée, ou le capital maximum qui correspond à une mensualité maximale, une durée, un taux.
Pour ça je fais varier la grandeur recherchée à partir de zéro, en l'augmentant d'un facteur suffisant (125000€ pour un capital ou 125€ pour une mensualité) jusqu'à dépasser la valeur voulue, puis je reviens en arrière en ayant divisé le pas par 5, puis je remonte en ayant divisé le pas par 5, jusqu'à arriver à la précision voulue : 1 centime sur la mensualité et 10€ sur le capital.
Citation :
Publié par No One
En effet impossible de résoudre ton équation avec une solution explicite.
Tu as absolument besoin de le faire en JS ? Le solver d'excel est probablement la solution la plus user friendly.
Attention aussi a ces méthodes de gradient, si ta fonction est un peu dégueu, tu risques d'être sensible au point de départ :
A priori la fonction donnant la mensualité en fonction du taux est plutôt sympathique, genre strictement croissante. Donc gradient aucun souci :
- tu pars d'un taux au pif
- tu calcules la mensualité, et l'erreur correspondante (mensualité calculée - celle voulue)
- si l'erreur est positive le taux est trop élevé, sinon trop faible
- faire évoluer le taux proportionnellement à l'erreur de mensualité : est la mensualité cherchée et K un gain positif.
- boucler jusqu'à ce que l'erreur de mensualité soit suffisamment faible



Citation :
Déjà, bravo pour avoir trouvé cette formule qui donne la mensualité, elle ne doit pas être simple à calculer analytiquement, et je ne l'avais jamais vue écrite en entier !
La formule est sur Wikipedia.
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés