アプリ版:「スタンプのみでお礼する」機能のリリースについて

ローン支払いにおける金利の計算式について教えてください

ローンで元金X円を借ります。
返済年数はN年で、年に1度の返済です。
毎年の返済額はA円です。
以上の条件でローンを借りた場合の、金利は何%になるのか、その計算式を教えてください。
ネットで探したのですが、見つからなかったのでこちらで質問させていただきました。

上記質問を別の形で書き直します。
金利をrとすれば、年金減価係数(資本回収係数)の考え方と使うと、

X=A×(1-1/(1+r)^N)/r

という計算式が成り立ちます。
このrを求める計算式を知りたいです。

r=・・・・

どなたかご存知の方、教えていただけますでしょうか。よろしくお願いいたします。

A 回答 (6件)

他の回答者さんもおっしゃっているとおり、この式からrは解析的には解けません。


返済回数が5回以上の場合は、解析的に解く一般的な公式が存在しないことが証明されています。

そのためコンピュータ(関数電卓、金融電卓も含む)の力を使って、手探りで、ある面、力ずくで探し出す数値計算という方法で解くしかありません。
そのうちの一つの方法がニュートン法と呼ばれるものです。

ニュートン法を使ってrを計算するシミュレータを用意していますので、よかったら使ってみてください。
http://keisan.casio.jp/exec/user/1351503301
ここで計算されるのは月払いの場合の年利ですので、年払いの場合はここで計算される結果を12で割れば年利として求まります。

はじめから年利で計算したいときはこちらをご利用ください。
http://keisan.casio.jp/exec/user/1351775530
初期投資額に元金X円を、Cash Flow-1に毎年の返済額はA円を、期数に返済年数はN年を入れて、”計算"を押してください。
下の方にあるIRRのところに答がでます。


関数電卓を使ってもソルブ機能(カシオ)、あるはソルバー機能(シャープ)などを使えば解けます。
カシオの関数電卓ならCOMPモードで次のように入力します。
元金100円、毎年の返済額11円、返済年数は10年で、利率をXとすると、

100=11×(1-1÷(1+X)^(10))÷X

と入力して、[SHIFT]→[SOLVE]と押して、Xについて解くと、X=0.0177154269とでます。
シャープの関数電卓でも同じように解けると思います(取り出すのが面倒なので省略)。
説明書を参照してください。


同じ条件で上にあげたシミュレータで解くと、最初にあげた方ではあれば、21.259と出ますので、12で割ると1.7758となります。
二つめの方では、1.77154と出ます。
    • good
    • 0
この回答へのお礼

皆様、回答ありがとうございました。
私もあれからいろいろ調べまして、皆様がおっしゃるように解析的に解けないという点について、理解をいたしました。
四則演算で出来ればいいなという期待を持っておりましたが、やはりそうはいかないのですね。

ニュートン法に対応した関数電卓を入手のうえ、活用していきたいと思います。

お礼日時:2013/11/13 07:31

肝心の勘定式に、ポッカリと脱落あり。

謹訂正。

想定した r を使い、
 D(r) = Xr - A{1-(1/(1+r))^N }
を勘定して答えが零なら、その r が求めているものです。

零にならなければ、
 D'(x) = X - N*A*(1/(1+r))^(N+1)
 d = D(r)/D'(x)
を求めて、r - d を r' だとします。

この r' を新たな r として、上記の勘定を繰り返していけば、数回で D(r) が零に収束するでしょう。

  
    • good
    • 0

>Excelではなく関数電卓を使って計算をしたい…



「電卓」だと、ANo.3 の繰り返し勘定では所要回数が多すぎるかも…。

Newton 法のほうが速く収束します。

想定した r を使い、
 D(r) = Xr - A{1-(1/(1+r))^N }
を勘定して答えが零なら、その r が求めているものです。

零にならなければ、
 d = X - N*A*(1/(1+r))^(N+1)
を求めて、r+d を r' だとします。

この r' を新たな r として、上記の勘定を繰り返していけば、数回で D(r) が零に収束するでしょう。
(かけ離れた初期値を使わぬかぎり、ですけどネ…)

  
    • good
    • 0

> 解析的には解けないということは、数学的にrを算出する計算式は存在しない、ということでしょうか・・・



「数学的に算出する」というのを、どういう意味で使っているかによります。

とりあえず、関数電卓で普通に計算できるような関数(初等関数)の組み合わせで、
r = ...
の形に表すことはできません。(質問者さんの言ってる「数学的に」の意味?)


ですが、もちろん、AとNを与えたときに、rは(適切に条件をつければ)ひとつに定まるわけで、
r = f(A, N)
という関数を定義することは「数学的に可能」です。
また、この関数の値を数値的に計算することは、普通に可能です。(簡単なプログラムを書けば自分でも求められる)
    • good
    • 0

>X=A×(1-1/(1+r)^N)/r>



を変形すると、
r=A*(1-1/(1+r)^N)/X
ですけど、ずばり一発で「r を求める計算式」は無さそう。
「ローン返済シミュレーション」の WEB サイトでも、ずばり r を求めてくれるのは無さそうですネ。

EXCEL などのスプレッドシートにて、近似初期値を与えて近似精度をあげていく手ですが、シート関数を使って下記のようにすればできそう。

A 列のあるセル (アドレス a0) に r の近似初期値を入れ、その右 (B 列) のセル (アドレス b0) にて =A*(1-1/(1+r)^N)/X を勘定させる。
このとき、r にはセル a0 の値を使う。
近似誤差があると、a0 と b0 の表示値は一致しない。

セル a0 のひとつ下 a1 に =b0 を入れ、セル b0 の内容を表示させる。
その右のセル (アドレス b1) に、セル b0 の算式のコピーを貼り付けて =A*(1-1/(1+r)^N)/X を勘定させる。
このとき、r にはセル a1 の値を使う。

あとは、セル a1, b1 のコピーをその下へズラズラと貼り付けていく。

これで、A 列と B 列の値が接近していきます。
両者の誤差を別のセルに表示させるようにして、所望の近似精度内の結果を見てください。

   
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
そうなんです、ずばりrを求めるサイトがなくて困っていたので、自分で何とかしようと考えています。

Excelではなく関数電卓を使って計算をしたいので、なんとか計算式を把握したいと考えています。
どうにかして式を変形して、計算式を作れないか今も考えています・・・

お礼日時:2013/11/10 08:08

excelのRATE関数ですね。


解析的には解けません。(もちろん、自分で勝手に関数を定義すれば可能ですけど)
    • good
    • 0
この回答へのお礼

RATE関数のことを教えてくださってありがとうございます。

まさにこの関数が求めているものではあるのですが、この関数の内部計算式を知りたいというのが今回の私の質問でございます。
(Excelではなく、関数電卓などを使って計算できるようにしたいのです)

解析的には解けないということは、数学的にrを算出する計算式は存在しない、ということでしょうか・・・

お礼日時:2013/11/10 07:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!