Sliding Scale probleem

Wiskunde is niet alleen een vak op school. Kom je ergens in de praktijk (bijvoorbeeld tijdens je werk) een wiskundig probleem tegen dan kun je hier om hulp vragen.
Plaats reactie
sniekers
Nieuw lid
Nieuw lid
Berichten: 4
Lid geworden op: 19 sep 2020, 20:38

Sliding Scale probleem

Bericht door sniekers » 18 okt 2022, 16:58

Hallo allemaal!

Ik zit met een probleempje waar ik een formule voor had bedacht, maar ik kan me maar niet bedenken waarom hij niet werkt.

Er moet een formule komen waarmee een toeslag kan worden berekend. Bij een transactie van 1 euro is dat 1 cent, en bij een transactie van 1.000.000 euro is dat 25 euro.

De situatie is als volgt:

Een gebruiker betaalt 1 euro, daar wordt 1% vanaf gesnoept om bijvoorbeeld salarissen, onderhoud en inkoop van goederen van te betalen. Dit betekent dat 1 cent van deze transactie wordt achtergehouden.
In dit geval is dat heel makkelijk te berekenen door 1 * 1% of 1 * 0.01 in te voeren, wat 0.01 cent als resultaat geeft.

In het geval van de grootste transactie, 1.000.000 euro, is dat 1.000.000 * 0.0025% of 1.000.000 * 0.000025, wat 25 euro als resultaat geeft.

Het is in dit scenario de bedoeling dat elke euro waarmee de transactiewaarde stijgt, het percentage afneemt, tot 25 euro op 1.000.000 bereikt is. Alles onder een euro en boven een miljoen kan ik hardcoden als 1% of 25 euro.

Het verschil tussen beide percentages is 0.9975%
Iedere euro die het bedrag stijgt, houd daarom een vermindering in van 0,0000009975%

De formule die ik zelf wilde toepassen, berekent eerst het restant percentage dat moet worden toegepast op het verstuurde bedrag.

Omdat rekenen in percentages op een rekenmachine niet werkt, heb ik dat als volgt gedaan:
0.01 – ( transactiewaarde * 0,000000009975 ) = restant van het toeslagenpercentage

De uitkomst van deze som, vermenigvuldig ik met de transactiewaarde.
De som wordt om die reden:
Transactiewaarde * ( 0.01 – ( transactiewaarde * 0,000000009975 )) = toeslag

Echter werkt dit totaal niet en kan ik niet uitvinden waarom.
Althans, op een miljoen geeft hij dan netjes 25 euro aan, maar op 150.000 komt dit uit op 1276 euro, wat 100 maal te hoog is. Op lagere getallen, zoals 50 cent, is het verschil minder merkbaar, maar ook nog steeds niet accuraat.

Please help!

arie
Moderator
Moderator
Berichten: 3764
Lid geworden op: 09 mei 2008, 09:19

Re: Sliding Scale probleem

Bericht door arie » 19 okt 2022, 19:48

Jij hebt
toeslag = transactiewaarde * ( 0.01 – ( transactiewaarde * 0.000000009975 ))
ofwel
toeslag = 0.01*transactiewaarde – 0.000000009975*transactiewaarde^2

Dit is een kwadratische (= 2e-graads) functie met een maximum bij transactiewaarde=501253.13,
daar is de toeslag 2506.26.

Mogelijk zoek je een eenvoudig lineair verband:
een lijn door de punten \((x_1, y_1)=(1, 0.01)\) en \((x_2, y_2) = (1000000, 25)\).
Deze lijn wordt gegeven door
toeslag = a * transactiewaarde + b
waarbij
\(a = \frac{y_2-y_1}{x_2-x_1}= 0.00002499002499002499\)
en
\(b = y_1 - a\cdot x_1= 0.009975009975009975\)
Waarmee de toeslag wordt:
\(\text{toeslag} = 0.00002499002499002499 \cdot \text{transactiewaarde} + 0.009975009975009975\)
Dit geeft de rode lijn in onderstaand plaatje.

Maar je hebt de vrije keuze uit elke stijgende functie door de punten (1, 0.01) en (1000000, 25),
bijvoorbeeld:
\(\text{toeslag}=0.025015015015015\cdot \sqrt{\text{transactiewaarde}}-0.015015015015015\)
Dit geeft de blauwe kromme in onderstaand plaatje.

Afbeelding

Plaats reactie