曲線 y = f(x) の次数・係数を入力し、「接点の x 座標を指定」か「曲線外の点から接線を引く」かを選んでください。下の数式は入力欄と連動していて、係数や接点の数字を直接書き換えても計算できます。
このページでできること
- 多項式の曲線 \(y = f(x)\)(1次〜4次)の、接点 \(x = t\) での接線の方程式 \(y = f'(t)(x - t) + f(t)\) と法線の方程式を、係数と \(t\) を入れるだけでその場で計算できます
- 数IIで頻出の「曲線外の点から引いた接線」にも対応。点 \(\mathrm{P}(p,\ q)\) の座標を入れると、引ける接線をすべて(接点・傾き付きで)求めます
- 答えは \(y = -\dfrac{1}{2}x + \dfrac{3}{2}\) のような約分済みの分数(厳密値)で表示。接点・傾き(微分係数)と、教科書の答案と同じ流れの途中式も見られます
- 接線の傾きが \(0\) になる点では、法線が垂直な直線 \(x = t\) になるケースも正しく扱います
- 計算結果は曲線・接線・法線のグラフでも確認できます。式のやさしい解説・Excel/Googleスプレッドシート/Python用のコピペ数式・計算ドリル(演習問題)もこのページにまとまっています
この計算は何の役に立つ?
時間と位置のグラフの接線の傾きは、その瞬間の速度を表します。ハンマー投げで選手が手を離した瞬間、ハンマーは円運動の円の接線方向へまっすぐ飛び出します。「今の勢いのまま進んだらどこへ行くか」を教えてくれるのが接線です。
物理で「グラフの傾きを読む」場面の多くは、接線=微分係数の考え方そのものです。
鏡やレンズの表面で光がどの向きに反射・屈折するかは、「面に垂直な線」=法線を基準に決まります(入射角と反射角は法線から測ります)。曲面の鏡でも、各点の接線と法線がわかれば光の進み方を計算できます。
パラボラアンテナや自動車のヘッドライトの反射板の形は、この法線の計算を積み重ねて設計されています。
道路のカーブや線路、ジェットコースターのレールは、直線と曲線のつなぎ目で接線の向き(=進行方向)が一致するように設計されます。接線がずれていると、つなぎ目でハンドルや車体が急に振られてしまうからです。
「つなぎ目で接線を揃える」は、なめらかさが求められる設計の基本ルールです。
3DのCGで物体の表面が明るく見えるか暗く見えるかは、表面の各点の法線(面に垂直な向き)と光の向きの角度で計算されています(法線が光の方を向いている面ほど明るい)。
ゲームのリアルな質感表現に使われる「法線マッピング」という技術は、まさにこの法線の情報を細かく貼り付ける手法です。
複雑な方程式の解をコンピュータで求める代表的な方法「ニュートン法」は、「曲線を接線で置き換えて、接線と \(x\) 軸の交点へ進む」ことを繰り返す方法です。接線は曲線のその点での一番良い直線の近似なので、少ない回数で正確な答えに近づけます。
電卓やコンピュータが平方根などを高速に計算できる背景には、この接線による近似があります。
式とグラフ
用語・記号の解説
記号
| \(f(x)\) | エフエックス | 曲線を表す関数。\(f\) は function(関数)の頭文字です。このページでは \(f(x) = x^2 - 2x\) のような多項式です。 |
| \(f'(x)\) | エフダッシュエックス エフプライムエックス | \(f(x)\) の導関数。曲線上の各点での「接線の傾き」を教えてくれる関数です。ダッシュ(\(' \))は「微分した」という印です。 |
| \(f'(t)\) | エフダッシュティー | \(x = t\) での微分係数。導関数 \(f'(x)\) に \(x = t\) を代入した値で、接点 \(x = t\) での接線の傾きそのものです。 |
| \(t\) | ティー | 接点の \(x\) 座標を表す文字。接する点を英語で tangent point ということから \(t\) がよく使われます。曲線外の点から接線を引く問題では、「まだわからない接点」をこの文字でおくのが定石です。 |
| \(\left(t,\ f(t)\right)\) | ティー、エフティー | 接点の座標。\(x\) 座標が \(t\)、\(y\) 座標がそのときの曲線の高さ \(f(t)\) です。接線も法線も、必ずこの点を通ります。 |
| \(\mathrm{P}(p,\ q)\) | ピー(ピー、キュー) | 接線が通る、曲線の外の点。\(\mathrm{P}\) は point(点)の頭文字で、座標を表す小文字にも point の \(p\) と、その次の文字 \(q\) を使う慣例です。 |
| \(y = mx + n\) | ワイ イコール エムエックス プラス エヌ | 直線の式(1次関数)の形。\(m\) が傾き、\(n\) が切片(\(y\) 軸と交わる高さ)です。傾きに \(m\) を使う理由には諸説あり、はっきりした由来はわかっていません。 |
| \(x = t\) | エックス イコール ティー | \(x\) 座標が \(t\) の点を集めた「垂直な直線」の式。接線が水平(傾き \(0\))のとき、法線はこの形になります。傾きという考え方が使えない、唯一の向きの直線です。 |
用語
| 接線 | せっせん | 曲線に、ある点で「ぴったり寄り添う」直線。接点の周りで曲線を拡大していくと曲線とほとんど重なって見える直線で、その傾きは微分係数 \(f'(t)\) に一致します。 |
| 接点 | せってん | 曲線と接線が接する点。このページでは \(\left(t,\ f(t)\right)\) と表します。接線・法線はどちらも必ず接点を通ります。 |
| 法線 | ほうせん | 接点を通り、接線と垂直に交わる直線。「法」は「垂直」を意味する数学用語(法線ベクトルの「法」と同じ)です。光の反射の法則など、物理でも大活躍します。 |
| 微分係数 | びぶんけいすう | \(x = t\) での関数の「変化の速さ」を表す値 \(f'(t)\) のこと。グラフでは \(x = t\) での接線の傾きに一致します。導関数 \(f'(x)\) に \(t\) を代入すれば求められます。 |
| 導関数 | どうかんすう | 各点での微分係数(接線の傾き)を教えてくれる関数 \(f'(x)\) のこと。\(f(x)\) から「導かれた」関数という意味です。多項式は公式 \((x^n)' = nx^{n-1}\) で微分できます。 |
| 微分 | びぶん | 関数から導関数を求める計算。グラフの各点での接線の傾き(変化の割合の極限)を調べる操作で、高校では数学IIで学びます。 |
| 傾き | かたむき | 直線が「横に1進むと縦にいくつ変わるか」を表す数。プラスなら右上がり、マイナスなら右下がり、\(0\) なら水平です。接線の傾き=微分係数が、このページの主役です。 |
| 直線の方程式 (傾きと通る1点) |
ちょくせんのほうていしき | 傾き \(m\) で点 \((x_1,\ y_1)\) を通る直線は \(y = m(x - x_1) + y_1\) と書けます(数IIの「図形と方程式」で学ぶ形)。接線の公式は、この形に傾き \(f'(t)\) と接点 \(\left(t,\ f(t)\right)\) を入れたものです。 |
| 垂直条件 | すいちょくじょうけん | 2直線が垂直に交わるための条件「傾きの積が \(-1\)」のこと。片方の傾きが \(m\) なら、もう片方は \(-\dfrac{1}{m}\)(逆数にしてマイナス)です。法線の傾きはこの条件から決まります。 |
| 逆数 | ぎゃくすう | 掛けると \(1\) になる数。\(2\) の逆数は \(\dfrac{1}{2}\)、\(\dfrac{3}{4}\) の逆数は \(\dfrac{4}{3}\) です(分子と分母をひっくり返す)。ただし \(0\) に逆数はありません(接線の傾きが \(0\) のとき法線の式が変わるのはこのためです)。 |
| 多項式 | たこうしき | \(2x^3 - x + 5\) のように、\(x\) のべき乗に係数を掛けた項を足し合わせた式。整式とも呼びます。この計算機が接線を求められるのは多項式の曲線です。 |
| 係数 | けいすう | 文字の前に付いている数。\(3x^2\) の \(3\) が係数です。\(x^2\) のように数が書かれていない項の係数は \(1\) と考えます。 |
| 次数 | じすう | 式に出てくる \(x\) のべき乗のうち、最も高い指数のこと。\(x^3 - 3x\) は \(x^3\) が最高なので「3次式」です。この計算機では最初に次数を選びます。 |
| 定数項 | ていすうこう | \(x^2 + 3x + 5\) の \(5\) のように、\(x\) を含まない「数字だけの項」。\(x\) がどんな値でも変わらない(一定=定数)ことからこう呼ばれます。 |
| 切片 | せっぺん | 直線が \(y\) 軸と交わる点の高さ。\(y = 2x - 1\) なら切片は \(-1\) です。「\(y\) 切片」とも呼びます。 |
前提として理解しておくといいこと
このページの計算を「意味がわかって」使えるようになるために、前提として理解しておくといいことをまとめました。
つまずいたら、この表の内容に戻って復習するのが近道です。
| 1次関数と直線の式(中学2年) |
|
| 関数とグラフ(中学1〜3年) |
|
| 2直線の垂直条件(高校 数学II・図形と方程式) |
|
| 多項式と係数(中学2年〜高校 数学I) |
|
| 微分(高校 数学II) |
|
| 方程式を解く(中学3年〜高校 数学I) |
|
| 分数の計算(小学5年〜中学1年) |
|
Excelで計算する方法
| 接点の x 座標 t | 1 |
| x⁴の係数 c4 | 0 |
| x³の係数 c3 | 0 |
| x²の係数 c2 | 1 |
| xの係数 c1 | 0 |
| 定数項 c0 | 0 |
| 接点の高さ f(t) | =B2*B1^4+B3*B1^3+B4*B1^2+B5*B1+B6 |
| 接線の傾き f'(t) | =4*B2*B1^3+3*B3*B1^2+2*B4*B1+B5 |
| 接線の切片 f(t)−f'(t)×t | =B7-B8*B1 |
| 接線の傾き f'(t) | 2 |
| 接点の x 座標 t | 1 |
| 接点の高さ f(t) | 1 |
| 法線の傾き −1/f'(t) | =-1/B1 |
| 法線の切片 f(t)+t/f'(t) | =B3+B2/B1 |
「^」はべき乗の記号です。接線の傾き f'(t) は、各項を微分公式で微分した 4c₄t³ + 3c₃t² + 2c₂t + c₁ に t を代入して求めています。
1つ目の表は f(x) = x² の x = 1 での接線の例で、傾きが 2、切片が −1、つまり接線は y = 2x − 1 になります。使わない項の係数には 0 を入れてください。
2つ目の表は法線用で、例の答えは傾き −0.5・切片 1.5(y = −0.5x + 1.5)です。接線の傾きが 0 のときは −1/f'(t) が割り算エラー(#DIV/0!)になりますが、これは法線が垂直な直線 x = t になるケースです。
Googleスプレッドシートで計算する方法
| 接点の x 座標 t | 1 |
| x⁴の係数 c4 | 0 |
| x³の係数 c3 | 0 |
| x²の係数 c2 | 1 |
| xの係数 c1 | 0 |
| 定数項 c0 | 0 |
| 接点の高さ f(t) | =B2*B1^4+B3*B1^3+B4*B1^2+B5*B1+B6 |
| 接線の傾き f'(t) | =4*B2*B1^3+3*B3*B1^2+2*B4*B1+B5 |
| 接線の切片 f(t)−f'(t)×t | =B7-B8*B1 |
| 接線の傾き f'(t) | 2 |
| 接点の x 座標 t | 1 |
| 接点の高さ f(t) | 1 |
| 法線の傾き −1/f'(t) | =-1/B1 |
| 法線の切片 f(t)+t/f'(t) | =B3+B2/B1 |
Pythonで計算する方法
from fractions import Fraction
# 接点の x 座標(3/4 のような分数は Fraction(3, 4) と書ける)
touch_x = Fraction(1)
# f(x) の係数を低い次数から並べる [c0, c1, c2, ...]
# 例:f(x) = x² − 2x → 定数項0, xの係数−2, x²の係数1
coefficients = [Fraction(0), Fraction(-2), Fraction(1)]
def f(x):
# f(x) の値(接点の高さ用)
return sum(c * x ** k for k, c in enumerate(coefficients))
def f_dash(x):
# f'(x) の値(各項の微分 k×cₖ×x^(k−1) の合計)
return sum(k * c * x ** (k - 1) for k, c in enumerate(coefficients) if k >= 1)
slope = f_dash(touch_x) # 接線の傾き(微分係数)
height = f(touch_x) # 接点の高さ f(t)
intercept = height - slope * touch_x # 接線の切片
print(f"接点: ({touch_x}, {height})")
print(f"接線: y = {slope}x + ({intercept})")
if slope == 0:
print(f"法線: x = {touch_x}(接線が水平なので法線は垂直な直線)")
else:
normal_slope = Fraction(-1) / slope
normal_intercept = height - normal_slope * touch_x
print(f"法線: y = {normal_slope}x + ({normal_intercept})")
数式記述言語(LaTeX等)での書き方(コピペ可)
y = f'(t)(x − t) + f(t)
y = f'(t)(x - t) + f(t)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>y</mi><mo>=</mo>
<msup><mi>f</mi><mo>′</mo></msup>
<mo>(</mo><mi>t</mi><mo>)</mo>
<mo>(</mo><mi>x</mi><mo>−</mo><mi>t</mi><mo>)</mo>
<mo>+</mo>
<mi>f</mi><mo>(</mo><mi>t</mi><mo>)</mo>
</mrow>
</math>
y = f'(t)(x - t) + f(t)
y == (D[f[x], x] /. x -> t) (x - t) + f[t]
y = D(f)(t)*(x - t) + f(t);
tangent = subs(diff(f, x), x, t)*(x - t) + subs(f, x, t);
y = f'(t)(x − t) + f(t)
y = −(1/f'(t))(x − t) + f(t)
y = -\frac{1}{f'(t)}(x - t) + f(t)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>y</mi><mo>=</mo>
<mo>−</mo>
<mfrac>
<mn>1</mn>
<mrow><msup><mi>f</mi><mo>′</mo></msup><mo>(</mo><mi>t</mi><mo>)</mo></mrow>
</mfrac>
<mo>(</mo><mi>x</mi><mo>−</mo><mi>t</mi><mo>)</mo>
<mo>+</mo>
<mi>f</mi><mo>(</mo><mi>t</mi><mo>)</mo>
</mrow>
</math>
y = -(1/(f'(t)))(x - t) + f(t)
y == -(1/(D[f[x], x] /. x -> t)) (x - t) + f[t]
y = -(1/D(f)(t))*(x - t) + f(t);
normal = -(1/subs(diff(f, x), x, t))*(x - t) + subs(f, x, t);
y = −(1/f'(t))(x − t) + f(t)
q = f'(t)(p − t) + f(t)
q = f'(t)(p - t) + f(t)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>q</mi><mo>=</mo>
<msup><mi>f</mi><mo>′</mo></msup>
<mo>(</mo><mi>t</mi><mo>)</mo>
<mo>(</mo><mi>p</mi><mo>−</mo><mi>t</mi><mo>)</mo>
<mo>+</mo>
<mi>f</mi><mo>(</mo><mi>t</mi><mo>)</mo>
</mrow>
</math>
q = f'(t)(p - t) + f(t)
Solve[(D[f[x], x] /. x -> t) (p - t) + f[t] == q, t]
solve(D(f)(t)*(p - t) + f(t) = q, t);
contacts = solve(subs(diff(f, x), x, t)*(p - t) + subs(f, x, t) == q, t);
q = f'(t)(p − t) + f(t)
ChatGPT に聞いて計算してもらう方法
あなたは数学(微分)の計算アシスタントです。次の計算を、必ずPythonコードを実際に実行して行い、実行結果の数値だけを根拠に回答してください(暗算や推測で答えないでください)。 曲線 y = x³ − 3x の x = 2 における接線と法線の方程式を求めてください。 次の内容をそれぞれ示してください。 1. 導関数 f'(x) 2. 接点の座標と接線の傾き f'(2)(約分済みの分数または整数で) 3. 接線の方程式(y = mx + n の形) 4. 法線の方程式(y = mx + n の形。接線の傾きが 0 の場合は x = t の形) Pythonでは標準ライブラリの fractions モジュールを使って厳密に計算し、計算に使った式と実行結果の数値を示してください。
計算ドリル(演習問題)
このページの式を、自分の手で計算できるようになるための演習問題です。
答えと解説は解答ページにあります。
使い方
-
1数値を入力計算したい数値を入力欄に入力します
-
2計算「計算する」ボタンを押します
-
3結果を確認計算結果がその場に表示されます。計算の考え方や式の解説も同じページで確認できます
DataChefの特徴
専門知識不要、直感的で簡単な操作
個人情報を登録することなく使用できます
「ダウンロード」押下でファイルを自動削除
クレジット表記不要
商用利用許諾の連絡も不要です
