Matematický problém, důchodová renta

Matematický problém, důchodová renta
« kdy: 23. 10. 2023, 11:51:59 »
Mám následující problém, uvedu příklad, mám naspořeno 10.000.000 Kč, každý rok se mi částka očištěná o inflaci navýší o 4% (výnos 8%, inflace 4%), a každý rok se mi navýší vyplácená renta o inflaci, tedy o 4%, pokud budu chtít celou částku vybrat za 20 let, kolik si můžu vyplácet rentu (počáteční částka, tedy to první číslo bez inflace)?

Chtěl bych na to udělat webovou kalkulačku, ale zaboha nevím, jak na tohle vymyslet vzoreček či způsob výpočtu, neporadil by někdo?

Pro sebe to jsem schopnej manuálně odhadnout v excelu dosazováním čísel, ale musí existovat elegantnější způsob, veskrze to vypadá takto

nasporeno = 10.000.000
urok = 1.04
inflace = 1.04
renta = ?

sum 1^20 {
nasporeno = nasporeno x urok - renta x inflace
}
renta?

potřeboval bych to vypočítat v javascriptu


Re:Matematický problém, důchodová renta
« Odpověď #1 kdy: 23. 10. 2023, 12:00:15 »
Pro výpočet takového problému můžete použít iterativní metodu, která bude postupně upravovat výši renty tak, aby po 20 letech bylo na spořícím účtu 0 Kč. Následující JavaScriptový kód by vám mohl pomoci s tímto výpočtem:

```javascript
function vypocetRenty(nasporeno, urok, inflace, pocetLet) {
  let renta = 0;
 
  for (let i = 0; i < pocetLet; i++) {
    naspareno *= urok;  // Zvýšíme úspory o úrok
    renta *= inflace;   // Zvýšíme rentu o inflaci
    naspareno -= renta;  // Snížíme úspory o rentu
   
    if (naspareno < 0) {
      // Pokud jsou úspory záporné, znamená to, že renta byla příliš vysoká
      // Musíme snížit rentu a začít znovu
      renta = 0;
      naspareno = 10000000;  // Nastavíme úspory na původní hodnotu
      i = 0;  // Začneme znovu od začátku
    }
   
    renta += 10000;  // Zvýšíme rentu o 10 000 Kč
  }
 
  return renta;
}

const naspareno = 10000000;
const urok = 1.04;
const inflace = 1.04;
const pocetLet = 20;

const renta = vypocetRenty(nasporeno, urok, inflace, pocetLet);
console.log(`Počáteční výplata: ${renta.toFixed(2)} Kč`);
```

Tento kód postupně zvyšuje rentu o 10 000 Kč a kontroluje, zda jsou úspory po 20 letech kladné. Pokud nejsou, znamená to, že renta byla příliš vysoká, a začne znovu od začátku s nižší rentou. Na konci vám vrátí počáteční částku renty.

Tento kód je jednoduchý a může vám pomoci najít počáteční výplatu. Můžete také hrát s různými počátečními hodnotami renty nebo výšími zvyšování renty, abyste dosáhli požadovaného výsledku.

Re:Matematický problém, důchodová renta
« Odpověď #2 kdy: 23. 10. 2023, 12:05:12 »
To je z ChatGPT, ne? ;D to je taková metoda hrubou silou, přeci musí existovat něco optimálnějšího

vcunat

  • ***
  • 132
    • Zobrazit profil
    • E-mail
Re:Matematický problém, důchodová renta
« Odpověď #3 kdy: 23. 10. 2023, 12:06:55 »
Pokud takto "iterativně", tak alespoň bisekcí (půlením intervalů).    Funkce renta -> cílová částka je jistě monotónní (zbytek je během procesu zafixován, tak jak zadání chápu)

Re:Matematický problém, důchodová renta
« Odpověď #4 kdy: 23. 10. 2023, 12:31:28 »
Pro výpočet takového problému můžete použít iterativní metodu, která bude postupně upravovat výši renty tak, aby po 20 letech bylo na spořícím účtu 0 Kč. Následující JavaScriptový kód by vám mohl pomoci s tímto výpočtem:

nicméně děkuji, chatgpt 3.5 vyjelo nesmysl, tohle je asi placená verze.

Když tak nad tím uvažuji, tak pokud řekneme pojedu po tisícovce měsíčně v rentě, tak to většinou tak do 100 iterací zvládnu, čistě prakticky i když je to suboptimální to asi pro většinu normálních případů nebude výpočetně moc náročné.


Re:Matematický problém, důchodová renta
« Odpověď #5 kdy: 23. 10. 2023, 12:38:10 »
každý rok se mi částka očištěná o inflaci navýší o 4% (výnos 8%, inflace 4%)

Preco? Peniaze sice budu mat mensiu hodnotu, ale nominalna bude rast 8% kazdy rok. Inflacia je zohladnena v tej rente, to by mohlo stacit, nie?

Len sa pytam, nie som ekonom :)

Re:Matematický problém, důchodová renta
« Odpověď #6 kdy: 23. 10. 2023, 12:42:28 »
Pozor na dva rozne casove ramce. Uroky ratas na roky, kdezto rentu ratas na mesiace. Tym padom treba tie 4, resp 8% rozlozit na mesiace (tak aby ich spolocne nasobky dali tie 1,04 alebo 1,08), alebo upravit odpocitavanie renty tiez na roky.

Dalsi problem je kedy sa rataju prirastky. Ak (dajme tomu ze stale beries rentu mesacne a uroky ratas iba raz za rok), logickejsie (ale stale nie najspravnejsie) je priratat urok az na konci roka (lepsie ked pocas roka tie este nevybrane peniaze nieco zarobia ako mat nulu uz v 19tom roku).

Cely vypocet by mal ist otocit, tj zoberiem rentu ako X, a hladam hodnotu tohto X taku, ze 12*20*X ^ (1,04^20) = 10mega

Vzorec len tak narychlo nabuchany, treba ho upravit podla vstupnych podmienok, casovych okien, a idealne prerobit na sumu, pretoze potrebujes ratat prirastky z roznych pociatocnych hodnot. Toto je len orientacne
« Poslední změna: 23. 10. 2023, 12:46:17 od kanoe22 »

Re:Matematický problém, důchodová renta
« Odpověď #7 kdy: 23. 10. 2023, 13:01:33 »
I kdybyste neznal lepší vzorec, tak je to přeci jenom 20 let, takže si na to můžete vytvořit vzorec, který bude mít 20 členů. (Předpokládám, že úroky se připisují jednou ročně k aktuálnímu stavu účtu, což tak asi nebude, ale není problém vzorec upravit podle toho, jak bude útočení reálně nastaveno.)

Když označíte R měsíční rentu na začátku, tak po prvním roce budete mít zůstatek:

Kód: [Vybrat]
(10000000 - (12 × R)) × 1,04
Po druhém roce budete mít zůstatek:

Kód: [Vybrat]
((10000000 - (12 × R)) × 1,04 - (12 × R × 1,04)) × 1,04

Takhle si tam postupně můžete dosadit 20 členů. Chcete, aby na konci zbyla nula, tj. celý ten výraz s dvaceti členy pak  položíte roven nule, a z této rovnice o jedné neznámé vyjádříte R. Nebo možná už při tom připisování dalších a dalších členů přijdete na to pravidlo, jak to napsat jenom s jedním výskytem R a pak jen vyjádříte R.

Re:Matematický problém, důchodová renta
« Odpověď #8 kdy: 23. 10. 2023, 13:04:44 »
btw, tu je nejaka kalkulacka, netestoval som ci to dava spravne vysledky:
https://www.360financialliteracy.org/Calculators/Savings-Distribution-Calculator

Re:Matematický problém, důchodová renta
« Odpověď #9 kdy: 23. 10. 2023, 16:20:31 »
Podobny problem vcetne vizualizace stavu uspor behem vyberu renty umi, zda se, vyresit i https://roknula.cz/

Wolda

  • **
  • 79
  • http://honza.ucw.cz
    • Zobrazit profil
    • E-mail
Re:Matematický problém, důchodová renta
« Odpověď #10 kdy: 23. 10. 2023, 16:31:52 »
Kanonem na vrabce (ale prijde mi, ze to ukazuje robustnost, kdybyste chtel neco fikanejsiho): pro kazdy mesic i: zustatek uspor je promenna z_i, vyplacena renta r_i. Zjevne z_0 = 10M, z_241=0. Dale z_{i+1} = (z_i - r_i)*urok_za_mesic (je-li urok pripisovan mesicne). Co presne chcete od r_i-ček je samozrejme na vas - klidne necht jsou vsechny r_i = R.

Takhle dostanete soustavu linearnich rovnic, a z ni si vasi oblibenou metodou vyjadrete R jako funkci od z_0 :-)

ja.

  • ****
  • 347
    • Zobrazit profil
    • E-mail
Re:Matematický problém, důchodová renta
« Odpověď #11 kdy: 23. 10. 2023, 18:01:50 »
Mám následující problém, uvedu příklad, mám naspořeno 10.000.000 Kč, každý rok se mi částka očištěná o inflaci navýší o 4% (výnos 8%, inflace 4%), a každý rok se mi navýší vyplácená renta o inflaci, tedy o 4%, pokud budu chtít celou částku vybrat za 20 let, kolik si můžu vyplácet rentu (počáteční částka, tedy to první číslo bez inflace)?

Chtěl bych na to udělat webovou kalkulačku, ale zaboha nevím, jak na tohle vymyslet vzoreček či způsob výpočtu, neporadil by někdo?

Pro sebe to jsem schopnej manuálně odhadnout v excelu dosazováním čísel, ale musí existovat elegantnější způsob, veskrze to vypadá takto

nasporeno = 10.000.000
urok = 1.04
inflace = 1.04
renta = ?

sum 1^20 {
nasporeno = nasporeno x urok - renta x inflace
}
renta?

potřeboval bych to vypočítat v javascriptu

Toto sa nazýva "časová hodnota peňazí" a vie to počítať aj excel. Konkrétne tento príklad: =PMT(0,04;20;10000000;0)  t.j. 4% efektívna úroková miera, počet období 20, 10M je súčasná hodnota, 0 je budúca hodnota. Výsledok je ročná renta, nie mesačná, keďže úročenie je ročné. Pre mesačné zadať mesačné úročenie a navýšiť počet období.

Pokiaľ chceš vedieť, ako to počíta excel, vygoogliť "časová hodnota peňazí" alebo "time value of money".

Karmelos

  • *****
  • 1 062
    • Zobrazit profil
    • E-mail
Gréta je nejlepší.

alex6bbc

  • *****
  • 1 670
    • Zobrazit profil
    • E-mail
Re:Matematický problém, důchodová renta
« Odpověď #13 kdy: 24. 10. 2023, 10:22:39 »
mesicni/rocni rozdil v penezich dava diferencialni/diferencni rovnici pro d_penize/dt a pak uz se jedna o numericke reseni s strelbou na cil, aby se splnila okrajova podminka na konci.