4

支払い回数、支払いあたりの金額、元本がわかっている債務返済計画を決定するための公式が必要であり、そこから金利がどうなるかを把握する必要があります。私は既存のコードをリファクタリングしており、現在のメソッドは以下を使用しています(複合= 12;金利は.1から始まります):

 while (counter < 100)
    {
        intermediatePayment = (interestRate*(principal/compounded))/(1 - (1/Math.Pow(interestRate/compounded + 1,(compounded*numberOfYears))));
        interestIncrement = Math.Abs(interestRate - previousRate)/2;
        previousRate = interestRate;

        if(intermediatePayment == payment)
            break;
        if (intermediatePayment > payment)
            interestRate -= interestIncrement;
        else
            interestRate += interestIncrement;
        counter++;
    }

今、私はこの式が何をするかを理解していますが、私はそれを自分で達成することは決してできません。ここにあるのは、実際には、金利、元本、および支払い回数がわかっている場合に、毎月の支払いを決定するために使用されることになっている方程式です。計算された支払いが目的の支払いと等しくなるまで、ブルートフォースとループ(最大100回)を使用しています。通常、約40〜50ループ後に回答に到達します。これは、有効数字を減らすことで最適化できます。

InterestRateを解決しただけでは、ループは発生しないようです。頑張ってみてください。解く方程式がわからないので、それが私の主な質問です。

さて、あなたが問題を十分に理解し、財務式と複利を知っているなら、あなたは私にさらに良い解決策を提供するかもしれません、それは素晴らしいでしょう。私は自分で重要な調査を行い、ツールを見つけましたが、生の方程式は見つかりませんでした。または、関心に関連するものを決定するためのさまざまな式を見つけることがよくありますが、ニーズに合わせてツールを再構築する知識がありません。

基本的に私はこれに多くの時間を費やしました、そして私の上司はループが機能するので私はそれを残すか助けを求める必要があると思います。十分に公平なので、私はそうです。:)

これが役立つ場合は、式のより伝統的なレイアウトを次に示します:http: //i.imgur.com/BCdsV.png

そしてテストデータの場合:if

  • P = 45500
  • c = 12
  • y = 3
  • m = 1400

それから

  • I = .0676

助けてくれてありがとう

4

2 に答える 2

7

リンクした式をIの利率で解こうとすると、次数cy + 1の多項式、つまり支払いの合計数に1を加えたものが得られることがわかります。高度な多項式の閉形式の解を見つけることは困難/不可能であるため、近似が最善の方法です。

あなたが与えたアルゴリズムにはいくつかの素晴らしい特性があります:それが何をしているのかはかなり明確であり、それは妥当な時間で正しい答えを与えます。したがって、私の態度は「それが壊れていなければ、それを直そうとしないでください」ということになるでしょう。

このアルゴリズムが何らかの理由で遅すぎることが判明した場合は、正しい答えにすばやく収束するアルゴリズムがあります。根を見つけるために必要な多項式を計算し、単純な微積分を使用してその導関数を計算し、ニュートン法を使用して根にすばやく収束することができます。しかし、答えがとにかく小数点以下4桁まで正確である必要があるこの単純な例では、それはやり過ぎのようです。

于 2010-04-14T19:57:44.897 に答える
0

この式は明示的に解くことができないためI、試行をやめることができます。一方、ループは、精度の常識をはるかに超えています。とにかく元の計算中にいくつかの丸めがあったので、支払い額の半分の範囲内にあるとき、または見積もりの​​増分がI0.0001を下回ったときに、確実に停止できます。

于 2010-04-14T18:54:55.923 に答える