2016-03-25 7 views
-1

私は「貯蓄目標」電卓を作成しようとしていますが、私は次のことを実現することができる方法(可能な場合)で立ち往生しています: -将来価値の算定

  1. をするために必要な毎月の支払額を計算します金利で目標を達成する。 (javacriptの下の数式でこれを行うことができますが、とにかく意味をなさない)

  2. 将来のある時点で1回以上の一時払いに基づいて月額支払い額を調整します。

は、例えば、私はそれが7%の金利で30年間で£30万バランスを達成するために計算することができます(これをうまくカント)£245.91 PCMです。

しかし、私は今年5時一括払いを導入した場合、私は、この量を調整することができるかを確認していない: -

xは、アカウントに一括払いを取っ月ごとに必要な量になり
e.g. 
yr 1 - x 
yr 2 - 4 - x 
yr 5 - 10000 lump sum 
yr 6 - 30 - x 

まだ私はTに沿って何かを考えていた15

e.g. 
yr 1 - x 
yr 2 - 4 - x 
yr 5 - 10000 lump sum 
yr 6 - 14 - x 
yr 15 - 10000 lump sum 
yr 16 - 30 - x 

同じシナリオのためではなく、発言の年に別のお支払いで30

また年間で£30万合計を達成するために(25歳で7%で配合された5年目の10000)を計算し、必要額からその額を引いた額(£300,000 - $ 54,274.33 =£245725.67)を計算し、 £245725.67に基づいて月額支払いが必要)。

それは近いです(301.427.53ポンド= 201.42ポンド)が、私は計算の一部として何かを見逃しています。

私は、5年目の時点で、実際に支払い金額を二重計算していると推測しています(以下の計算では、超過分があっても毎月の支払い額が計算されるため) - 過度に払われた月額支払いの複合的な関心?

私は上記が意味を成し、どんな助けでも大歓迎されたいと思います。使用

計算: -

IR - 金利 FV - 将来価値(残存価額) NP - 期間の数(年間) PV - 現在価値 ^ =パワー私が行う方法を知らないようここでその

(ir/12)[fv - pv(1 + ir/12)^12np]/[(1 + ir/12)^12np - 1] 

またはJavaScript

function calc1(ir, fv, np, pv){ 
/* 
ir - interest rate 
fv - future value (residual value) 
np - number of periods (years) 
pv - present value 
*/ 
var a, b, c, d; 

a = ir/12; 
b = (1 + ir/12); 
c = 12 * np; 
d = (a * (fv - (pv * Math.pow(b, c))))/(Math.pow(b, c) - 1); 
return d; 

} 
+0

これは一般的な数学ではなく、数学ソフトウェア* Mathematica *のQ&Aサイトです。 –

答えて

1

はい、あなたの直感:-P約二重の計算が正しい場合は、

x + (10000 - x) 

と書くこともできます。ここで、最初の項は幾何学的な合計式でカバーされています。第2項はxで削減する必要がありますが、xが不明であることは、問題が線形であるために壊れる可能性のある円につながります。

しかし、あまりにも多くのコードの混乱を避け、いくらかの柔軟性を保持するには、最初の推測と同じようにすることをお勧めします。そして、正確なプリンシパル計算式x = 201から302k)を使用して結果を絞り込みます。最初の推定値xx+1を使用して、割線法を初期化します。

+0

こんにちは、答えをありがとう - ちょうど私はあなたが5年目から元の支払い額の将来の価値を考え出し、これを引き下げて再計算すると言っていることは明らかです - x + 1でループする私は必要な量になる? –

+0

正確には、私はループを壊すと言う。関数 'y = futureValue(x)'を作成します。ここでは線形であることが分かっているので、分割法はそれを1つのステップで解決します。しかし、たとえそれが線形でないとしても、割線法はそれをいくつかのステップで解くべきです。 'ゴール= 300000; y0 = futureValue(x0)-goal; y1 = futureValue(x1)-goal; x2 =(x1 * y0-x0 * y1)/(y0-y1);はここでは 'futureValue(x2)-goal'が非常に小さいことになります。 – LutzL

+0

ああ、ありがとう - それはまだ試していないが、私はあなたが何を意味し、どのように動作するかを参照してください。 –