毎月の住宅ローンの返済額、去年より上がっていませんか?
私は昨年より住宅ローンを組んでマンションを購入しました。金利は変動金利です。
数年前までは変動金利といえど、金利はほとんど変動していませんでした。しかし2023年に日本銀行の総裁が植田氏に変わり、2024年にはマイナス金利政策が解除されました。その後も利上げが続き、本記事執筆時(2026年8月)では政策金利は1%になっています。
それに伴い、住宅ローンの金利も上昇しています。特に変動金利で借入している私のような人は、ここ数年内に金利の変更があって、毎月の返済額も上昇しているのではないでしょうか?
私も2025年10月に借り入れましたが、まだ1年も経っていないのに金利が上がるとの知らせが届き、毎月の返済額も上がってしまいました・・・
なかには毎月の返済額が以前よりも上がっていることは認識しつつも、金利が今何%になっているか把握できていない人もいるのではないでしょうか?銀行から金利変更のお知らせや返済予定表を見ればわかりますが、無くしてしまった方もいるでしょう。
ただ、年末に住宅ローンの残高証明書が送られてきますので、年末時点の残高や返済期間や残りの返済回数はわかります。銀行口座を見れば毎月返済額もわかります。
残高、残りの返済回数、毎月返済額の3つさえわかっていれば、そこから金利を計算することができます。
そこでこの記事では、残高、残りの返済回数、毎月返済額から住宅ローンの金利を求めていきたいと思います。住宅ローンと謳っていますが、元利均等返済の借入全般で応用できる方法です。
ただし、この金利は代数的に求めることができません。簡単に言い換えると、足し算や掛け算などの決まった計算式だけでは答えをピッタリ出せない、ということです。そこで本記事では、こうした代数的に求められない問題を数値計算という方法で解く考え方を説明し、実際にPythonで実装していきます。
この記事を読めば、残高証明書と通帳の記録だけで、自分の住宅ローンの金利が今何%になっているか計算できるようになります。
目次
- 1. 元利均等返済の公式から代数的に金利を求めてみる
- 2. 数値計算について
- 3. 数値計算していくにあたっての準備
- 4. Pythonで実装して実際に金利を求める
- 5. 計算ツール
- 6. 最後に
- 参考文献
1. 元利均等返済の公式から代数的に金利を求めてみる
まずは、以前の記事でも解説している、元利均等返済の毎月返済額 を求める基本公式から出発します。
残高 、金利
(毎月返済なので月利)、返済回数
、毎月返済額
の間には、以下の関係が成り立っています。
この式において、残高 ・返済回数
・毎月返済額
は既知で、金利
を求めることが今回の目的です。
実際にこの方程式で「」の形に持っていきたいところですが、
となっていることからわかるように、この方程式は n 次方程式になっています。一般的に5次以上の方程式には解の公式が存在しません(アーベル–ルフィニの定理)。つまり、r について代数的な方法では求めることができないのです。
2. 数値計算について
それでは、どのようにして求めればいいのでしょうか?
このような代数的に解を求めることができない問題に対して、コンピューターを使って求める方法が考案されています。それが数値計算です。
数値計算とはざっくり言うと、近似式を使って解を求めることです。
今回は数値計算のなかでも代表的なニュートン法を使っていきます。
ニュートン法は、目的の非線形方程式 が1階微分可能なときに使うことができます。アルゴリズムは以下の通りです。
- 適当な初期値
を設定する
- 以下の操作を何回か繰り返す
上の点
における接線を求める
- 求めた接線と直線
の交点の
座標を、次の
とする
- 操作を終えた後の
の値が、
となる
の近似値である
これだけでは分かりづらいと思うので、図を用いて説明します。
下の図1を見てください。イメージになりますが、黒い曲線が金利 の関数です。この関数は事前に
の形に変形していて、このグラフが r 軸(
)と交わるオレンジ色の点が、今回求めたい金利
になります。
以下、具体的な手順を図をもとに説明します。

- 図1での
が、初期値として設定する金利の値です。
- その点から垂直に線を伸ばし、
の関数と交わる点を求めます。この点における
の接線が赤の実線です。この接線と
(r軸)との交点が
で、この値を新たな初期値として設定し直し、同じ操作を繰り返します。
- この操作を繰り返すことで
、さらにその先の値へと近づいていき、最終的に求めたかった
と
が交わるときの
の値(オレンジ色の点)に限りなく近づいていくことがわかります。
以上がニュートン法のアルゴリズムです。
3. 数値計算していくにあたっての準備
それでは具体的にニュートン法を使って、住宅ローン金利を求めるための準備をしていきましょう。
まず、式(1)を「右辺 = 0」の形(方程式 )にしていきます。
そして、この右辺の式を の関数として定義します。
続いて、アルゴリズムの2.にある通り、 上の点
における接線を求める必要があります。
具体的には という一次方程式を求めます。この式は点
を通り、傾きが点
における
の接線の傾き、すなわち
と等しくなることが条件です。
そのためには の導関数
を求める必要があります。積の微分公式
および合成関数の微分を用いて計算します。
- 第一項「
」の微分:
したがって、
- 第二項「
」の微分:
- 定数項(
)の微分:
これらを合わせると、 は次の通りになります。
これが傾き( における
)にあたります。
続いて、 の値を求めていきます。
は、点
を通り、傾きが
である一次関数と
(
軸)との交点になっています。
まずは点 を通り、傾きが
である一次関数を求めます。一次関数
の
に
、
に
、
に
を代入して、未知の値
を求めます。
よって、これらを に当てはめると
となります。ここで、 となる点を求めたいので、
に
を代入すると
となります。ここで求めた が基本更新式となり、この値を
として初期値に設定しなおしていきます。
以上で必要なものが揃いました。
4. Pythonで実装して実際に金利を求める
以上で求めてきた数式をニュートン法のアルゴリズムに落とし込んで、実際にコードを書きました。
def solve_interest_rate(A, x, n, tol=1e-10, max_iter=100):
"""
ニュートン法を用いて元利均等返済の月利 r を計算する関数
:param A: 借入残高
:param x: 毎月返済額
:param n: 返済回数
:param tol: 許容誤差 (tolerance)
:param max_iter: 最大ループ回数
:return: 月利 r (小数表示), 年利 R (%)
"""
# 初期値 r0 は、とりあえず1%で設定
r = 0.01
for i in range(max_iter):
# f(r) の計算
f_val = A * r * ((1 + r)**n) - x * (((1 + r)**n) - 1)
# f'(r) の計算
f_prime = A * ((1 + r)**n) + A * n * r * ((1 + r)**(n - 1)) - x * n * ((1 + r)**(n - 1))
# ニュートン法の更新式
r_next = r - (f_val / f_prime)
# 収束判定(変化量が許容誤差以下になったら終了)
if abs(r_next - r) < tol:
monthly_rate = r_next
annual_rate = monthly_rate * 12 * 100
return monthly_rate, annual_rate
r = r_next
raise ValueError("ニュートン法が収束しませんでした。入力値を確認してください。")
この関数に実際に数値を入れて、金利を求めていきましょう。今回は以下のような条件にしたいと思います。
設定条件
- 残高:3,000万円
- 残りの返済回数:384回(残り32年)
- 毎月の返済額:87,494円
以下のように関数に条件の値を入れて求めます。
A = 30_000_000 # 残高
x = 87_494 # 毎月返済額
n = 384 # 返済回数
monthly_r, annual_r = solve_interest_rate(A, x, n)
print(f"月利 (r): {monthly_r:.8f}")
print(f"年利 (R): {annual_r:.3f}%")
実行結果:
月利 (r): 0.00060002
年利 (R): 0.720%
無事求めることができました。
5. 計算ツール
以上でやってきたことを応用して、Claudeで計算ツールを作ってみました。
元利均等返済型借入 金利 逆算ツール
残高・残りの返済回数・毎月返済額から、ニュートン法で金利を計算します
6. 最後に
今回は住宅ローンの金利を求めるアルゴリズムについて説明してきました。
住宅ローンを借りていて、金利を把握できていなかった方はぜひ確認してください。そして、もし他社の金利水準と比べて高ければ、借換も検討してみてはいかがでしょうか。
なお、今回この記事を書くにあたって、AIを使ってきました。そもそも金利を求めるにはどうすればいいかというところから、数値計算でしか求められないこと、ニュートン法について、その際に必要な計算、コードの実装、文章の推敲など、多岐にわたって助けてもらいました。
そうなると、それを自分で書いたと言える文章なのかどうか、よくわからなくなってしまいます。ただ、ここに書かれている内容は自分で理解して、この記事の任意の箇所についてどういう意味か尋ねられたとき、自分の言葉で説明できるようになっている状態にすることは意識しました。実際、途中にある数式は自分の手で紙に書き起こし、内容を理解したうえで転記するようにしました。また、信憑性を担保するために、自分で理解できる範囲で参考書を読み、それも参考にしました。
この記事を書いた目的は、あくまでここに書いたことを理解し、将来も応用していきたいと思ったことです。ニュートン法などの数値計算手法は、私が専門とする金融工学や経済学などで広く利用されているからです。
なお、この文章を書く際に自分で理解していることを重視する考え方は『AIと生きる 対話から始まる成長の物語』を参考にしています。この書籍ではさらに「創造は選択に宿る」ということも書かれています。その選択をしたのは自分であること、そしてAIからどれだけ参考にしようとも、書いた文章に責任を持つのは私自身であることを意識して、この記事を投稿したいと思います。
参考文献
- 蔵本貴文『解析学図鑑』(オーム社, 2021)
- 北尾早霧 他『定量的マクロ経済学と数値計算』(日本評論社, 2024)
- 高木悟 他『金利の計算 解析学への入り口』(共立出版, 2022)
- 結城浩『AIと生きる 対話から始まる成長の物語』(SBクリエイティブ, 2026)
- 米田優峻『問題解決のための「アルゴリズム×数学」が基礎からしっかり身につく本』(共立出版, 2022)


















