三次方程式 ax³ + bx² + cx + d = 0 の係数を入力してください。下の数式は入力欄と連動していて、係数の部分を直接書き換えても計算できます。
目次
このページでできること
- 三次方程式 \(ax^{3} + bx^{2} + cx + d = 0\) の解を、係数を入れるだけでその場で計算できます(小数・負の数・3/4 のような分数もOK)
- 解き方は高校(数学II)で習う手順そのまま:①因数定理で有理数の解を探す → ②組立除法で二次式に次数を下げる → ③残りは解の公式。この3ステップの途中式と、組立除法の筆算が表示されます
- 解は \(x = \dfrac{1 + \sqrt{5}}{2}\) のような√を含む厳密値と小数の両方で表示。虚数解も \(a \pm b\,i\) の形で求められます
- 解の分類(相異なる実数解3個・重解あり・実数解1個+虚数解2個)と、\(y = ax^{3} + bx^{2} + cx + d\) のグラフ(実数解 = \(x\) 軸との交点)も表示されます
- 有理数の解が1つも無い方程式は、解の公式(カルダノの公式)による数値解を表示します
この計算は何の役に立つ?
縦 × 横 × 高さの掛け算でできる体積は、辺の長さを \(x\) とすると三次式になります。例えば 20cm 四方の板の四隅から一辺 \(x\) cm の正方形を切り取って箱を折ると、容積は \(x(20 - 2x)^2\) cm³。「容積をちょうど 512cm³ にしたい」なら \(x^{3} - 20x^{2} + 100x - 128 = 0\) という三次方程式になり、切り取る長さは \(x = 2\) cm(もう1つの候補は \(9 - \sqrt{17} \fallingdotseq 4.88\) cm)と求められます。
容器・タンク・梱包箱など「決めた容量になる寸法を逆算する」場面で、三次方程式は設計の基本道具になっています。
パソコンのフォントの輪郭や、Illustratorなどのデザインソフトで描く滑らかな曲線は、3次ベジェ曲線という「3次式で表される曲線」でできています。曲線と直線の交点を求めたり、クリックした位置に一番近い曲線上の点を探したりする処理では、内部で三次方程式が解かれています。
画面に文字が表示されるたびに、コンピュータの中では三次方程式に関わる計算が動いていることになります。
経済学では、工場の総費用を生産量 \(x\) の三次関数でモデル化することがよくあります(作り始めは効率が上がって費用の伸びがゆるやかになり、作りすぎると設備の限界で急に費用が増える、というS字の形が三次関数でうまく表せるため)。
「費用が予算とちょうど等しくなる生産量」や「平均費用が最小になる点」を求める計算で、三次方程式・三次関数の知識が使われています。
建物や橋の梁(横に渡した部材)が荷重で曲がる「たわみ」の曲線は、位置 \(x\) の三次式・四次式で表されることが構造力学で知られています。「たわみが許容値に達する位置はどこか」を求めると、三次方程式を解く問題が現れます。
構造計算ソフトの内部でも、こうした多項式の方程式を解く計算が使われています。
式とグラフ
用語・記号の解説
記号
| \(a,\ b,\ c,\ d\) | エー・ビー・シー・ディー | 三次方程式の係数(決まった数)。「決まった数」を表すときはアルファベットの最初の方の文字を使う慣例があります。このページでは \(a\) が x³の係数、\(d\) が定数項です。 |
| \(x\) | エックス | 求めたい未知の数(未知数)。未知数をアルファベットの終わりの方の文字 \(x,\ y,\ z\) で表す慣例は、17世紀の数学者デカルトに由来するといわれます。 |
| \(P(x)\) | ピーエックス | 多項式(三次式)を表す記号。\(P\) は polynomial(多項式)の頭文字です。\(P(1)\) は「\(x\) に 1 を代入した値」を表します。 |
| \(\alpha\) | アルファ | 見つけた解を表すギリシャ文字。方程式の解を \(\alpha,\ \beta,\ \gamma\)(アルファ・ベータ・ガンマ)と書く慣例があります。ギリシャ文字のアルファベットの最初の3文字です。 |
| \(Q(x)\) | キューエックス | 割り算の商の二次式。\(Q\) は quotient(商)の頭文字です。三次式を \((x - \alpha)\) で割ると二次式の商ができます。 |
| \(D\) | ディー | 二次方程式の判別式(\(b^2 - 4ac\) のこと)。\(D\) は discriminant(判別式)の頭文字です。符号で解の種類(実数解2個・重解・虚数解2個)が判別できます。 |
| \(\Delta\) | デルタ | 三次方程式の判別式によく使われる記号。\(D\) にあたるギリシャ文字で、このページでは有理数の解が無い場合の解の分類(実数3個か、実数1個+虚数2個か)に使っています。 |
| \(\sqrt{\phantom{0}}\) | ルート(根号) | 2乗するとルートの中の数になる、0以上の数を表す記号。\(\sqrt{9} = 3\)、\(\sqrt{5} = 2.2360679\ldots\) のように、整数にならないときは無理数になります。 |
| \(i\) | アイ | 虚数単位。2乗すると \(-1\) になる数(\(i^2 = -1\))です。imaginary number(想像上の数)の頭文字に由来します。実数の中には2乗して負になる数が無いため、数の世界を広げるために導入されました。 |
| \(\pm\) | プラスマイナス | 「足す場合と引く場合の両方」をまとめて書く記号。解の公式の \(\pm\) は、+ を選んだ解と − を選んだ解の2つがあることを表します。 |
用語
| 三次方程式 | さんじほうていしき | \(x^3\) の項を含む方程式。\(ax^{3} + bx^{2} + cx + d = 0\)(\(a \neq 0\))の形に整理できます。複素数の範囲では、重複度込みでちょうど3個の解を持ちます(代数学の基本定理)。 |
| 因数 | いんすう | 掛け算の部品のこと。\((x - 1)(x^{2} - 5x + 6)\) の \((x - 1)\) と \((x^{2} - 5x + 6)\) がそれぞれ因数です。方程式では「どれかの因数が \(0\)」になる \(x\) が解になります。 |
| 因数定理 | いんすうていり | 「\(P(\alpha) = 0\) ならば \((x - \alpha)\) は \(P(x)\) の因数である(逆も成り立つ)」という定理。三次以上の方程式を因数分解して解くための出発点です。 |
| 剰余の定理 | じょうよのていり | 「多項式 \(P(x)\) を \((x - \alpha)\) で割った余りは \(P(\alpha)\) に等しい」という定理。余りが \(P(\alpha)\) だから、\(P(\alpha) = 0\) なら割り切れる——因数定理はこの定理から直接導けます。 |
| 組立除法 | くみたてじょほう | 多項式を \((x - \alpha)\) で割るときに、係数の数字だけを並べて商と余りを求める筆算の方法。普通の割り算の筆算より速く、書く量も少なくて済みます。 |
| 有理数 | ゆうりすう | 整数の分数 \(\dfrac{p}{q}\) の形で書ける数。整数・有限小数・循環小数はすべて有理数です。因数定理で探せるのは有理数の解だけです。 |
| 無理数 | むりすう | 分数の形で書けない数。\(\sqrt{5}\) や円周率 \(\pi\) が代表例です。このページでは、解の公式から出てくる \(\dfrac{1 + \sqrt{5}}{2}\) のような解が無理数です。 |
| 判別式 | はんべつしき | 解の種類(実数か虚数か、重解か)を、方程式を解かずに判別できる式。二次方程式では \(D = b^2 - 4ac\) で、\(D > 0\) なら実数解2個、\(D = 0\) なら重解、\(D < 0\) なら虚数解2個です。 |
| 重解 | じゅうかい | 2つ以上の解が同じ値に重なったもの。例えば \((x - 2)^{2}(x + 1) = 0\) の \(x = 2\) は2重解です。解の個数を「重複度込みで3個」と数えるとき、2重解は2個分と数えます。 |
| 虚数 | きょすう | 虚数単位 \(i\)(\(i^2 = -1\))を使って表される、実数でない数。\(2 + 3i\) のような形をしています。実数の範囲では解けない方程式も、虚数まで広げると必ず解けるようになります。 |
| 共役な複素数 | きょうやくなふくそすう | \(a + bi\) と \(a - bi\) のように、虚数部分の符号だけが違う2つの複素数のペア。係数が実数の方程式に虚数解があるときは、必ずこのペアで現れます。 |
| カルダノの公式 | カルダノのこうしき | 三次方程式の解の公式。16世紀のイタリアの数学者カルダーノが著書で公表しました。係数の四則演算と√・立方根で解を書き切れますが、式が複雑なため高校では扱いません。 |
| 最高次の係数 | さいこうじのけいすう | 式の中で最も次数の高い項の係数。\(2x^{3} + x^{2} - 5x - 3\) なら \(x^3\) の係数 2 です。有理数の解の候補の「分母」はこの数の約数から選びます。 |
| 代数学の基本定理 | だいすうがくのきほんていり | 「\(n\) 次方程式は複素数の範囲で(重複度込みで)ちょうど \(n\) 個の解を持つ」という定理。三次方程式の解が必ず3個あるのはこの定理によります。 |
前提として理解しておくといいこと
このページの計算を「意味がわかって」使えるようになるために、前提として理解しておくといいことをまとめました。
つまずいたら、この表の内容に戻って復習するのが近道です。
| 多項式と因数分解(中学3年〜高校 数学I) |
|
| 二次方程式と解の公式(中学3年〜高校 数学I) |
|
| 平方根の計算(中学3年) |
|
| 多項式の割り算(高校 数学II) |
|
| 剰余の定理・因数定理(高校 数学II) |
|
| 複素数(高校 数学II) |
|
Excelで計算する方法
| x³の係数 a | 1 |
| x²の係数 b | -6 |
| xの係数 c | 11 |
| 定数項 d | -6 |
| 解の候補 x | 1 |
| P(x)の値(0なら解) | =B1*B5^3+B2*B5^2+B3*B5+B4 |
| x³の係数 a | 1 |
| x²の係数 b | -6 |
| xの係数 c | 11 |
| 定数項 d | -6 |
| 割る値 α | 1 |
| 商のx²の係数 | =B1 |
| 商のxの係数 | =B2+B5*B6 |
| 商の定数項 | =B3+B5*B7 |
| 余り(0なら割り切れる) | =B4+B5*B8 |
| 二次の係数 a | 1 |
| 一次の係数 b | -5 |
| 定数項 c | 6 |
| 判別式 D | =B2^2-4*B1*B3 |
| 解 x₁(D≧0のとき) | =(-B2+SQRT(B4))/(2*B1) |
| 解 x₂(D≧0のとき) | =(-B2-SQRT(B4))/(2*B1) |
1つ目の表は因数定理の確認用で、解の候補 x を代入した P(x) の値を計算します。例(x³ − 6x² + 11x − 6 に x = 1)では 0 になり、x = 1 が解だとわかります。候補のセルを ±2, ±3, ±6 などに書き換えて探してください。
2つ目の表は組立除法そのもので、「上の段の数 + 割る値 × 左隣の結果」を順に計算しています。例では商の係数が 1, −5, 6(= x² − 5x + 6)、余りが 0 になります。
3つ目の表は次数を下げた後の二次方程式用です。例(x² − 5x + 6 = 0)では D = 1、解は 3 と 2 になります。D が負のときはSQRTがエラーになります(虚数解。この計算機かPythonをお使いください)。
Googleスプレッドシートで計算する方法
| x³の係数 a | 1 |
| x²の係数 b | -6 |
| xの係数 c | 11 |
| 定数項 d | -6 |
| 解の候補 x | 1 |
| P(x)の値(0なら解) | =B1*B5^3+B2*B5^2+B3*B5+B4 |
| x³の係数 a | 1 |
| x²の係数 b | -6 |
| xの係数 c | 11 |
| 定数項 d | -6 |
| 割る値 α | 1 |
| 商のx²の係数 | =B1 |
| 商のxの係数 | =B2+B5*B6 |
| 商の定数項 | =B3+B5*B7 |
| 余り(0なら割り切れる) | =B4+B5*B8 |
| 二次の係数 a | 1 |
| 一次の係数 b | -5 |
| 定数項 c | 6 |
| 判別式 D | =B2^2-4*B1*B3 |
| 解 x₁(D≧0のとき) | =(-B2+SQRT(B4))/(2*B1) |
| 解 x₂(D≧0のとき) | =(-B2-SQRT(B4))/(2*B1) |
Pythonで計算する方法
from fractions import Fraction
import math
# 三次方程式 x³ − 6x² + 11x − 6 = 0 の係数(整数か分数 Fraction(1, 2) で入力)
coef_a = Fraction(1)
coef_b = Fraction(-6)
coef_c = Fraction(11)
coef_d = Fraction(-6)
def poly_value(x):
# P(x) = ax³ + bx² + cx + d の値(Fractionのまま厳密に計算)
return coef_a * x**3 + coef_b * x**2 + coef_c * x + coef_d
def divisors(n):
n = abs(n)
return [k for k in range(1, n + 1) if n % k == 0]
# ① 因数定理:有理数の解の候補 ±(定数項の約数)÷(最高次の係数の約数) を代入して探す
candidates = []
for q in divisors(coef_a.numerator):
for p in divisors(coef_d.numerator):
candidates += [Fraction(p, q), Fraction(-p, q)]
rational_root = next((x for x in candidates if poly_value(x) == 0), None)
print(f"有理数の解: {rational_root}")
# ② 組立除法:見つけた解で割って二次式に次数を下げる(上の段 + 割る値 × 左隣)
alpha = rational_root
quot2 = coef_a # 商のx²の係数(先頭はそのまま下ろす)
quot1 = coef_b + alpha * quot2 # 商のxの係数
quot0 = coef_c + alpha * quot1 # 商の定数項
remainder = coef_d + alpha * quot0 # 余り(因数定理より0になる)
print(f"商の二次式の係数: {quot2}, {quot1}, {quot0}(余り {remainder})")
# ③ 残りの二次方程式を解の公式で解く
discriminant = quot1 * quot1 - 4 * quot2 * quot0
if discriminant >= 0:
root = math.sqrt(discriminant)
print(f"残りの解: {(float(-quot1) + root) / (2 * quot2)}, {(float(-quot1) - root) / (2 * quot2)}")
else:
real_part = float(-quot1) / (2 * quot2)
imag_part = math.sqrt(-discriminant) / (2 * quot2)
print(f"残りの解: {real_part} ± {imag_part}i")
数式記述言語(LaTeX等)での書き方(コピペ可)
P(α) = 0 ⇔ P(x) = (x − α)Q(x)
P(\alpha) = 0 \Longleftrightarrow P(x) = (x - \alpha)Q(x)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>P</mi><mo>(</mo><mi>α</mi><mo>)</mo>
<mo>=</mo><mn>0</mn>
<mo>⇔</mo>
<mi>P</mi><mo>(</mo><mi>x</mi><mo>)</mo>
<mo>=</mo>
<mo>(</mo><mi>x</mi><mo>−</mo><mi>α</mi><mo>)</mo>
<mi>Q</mi><mo>(</mo><mi>x</mi><mo>)</mo>
</mrow>
</math>
P(alpha) = 0 iff P(x) = (x - alpha) Q(x)
Factor[x^3 - 6 x^2 + 11 x - 6]
factor(x^3 - 6*x^2 + 11*x - 6);
factor(sym('x^3 - 6*x^2 + 11*x - 6'))
P(α) = 0 ⇔ P(x) = (x − α)Q(x)
bₖ = aₖ + α × bₖ₋₁
b_{k} = a_{k} + \alpha\, b_{k-1}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>b</mi><mi>k</mi></msub>
<mo>=</mo>
<msub><mi>a</mi><mi>k</mi></msub>
<mo>+</mo>
<mi>α</mi>
<msub><mi>b</mi><mrow><mi>k</mi><mo>−</mo><mn>1</mn></mrow></msub>
</mrow>
</math>
b_k = a_k + alpha b_(k-1)
PolynomialQuotientRemainder[x^3 - 6 x^2 + 11 x - 6, x - 1, x]
quo(x^3 - 6*x^2 + 11*x - 6, x - 1, x);
[q, r] = deconv([1 -6 11 -6], [1 -1])
b_k = a_k + α b_(k-1)
x = (−b ± √(b² − 4ac)) ÷ (2a)
x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>x</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mo>−</mo><mi>b</mi>
<mo>±</mo>
<msqrt>
<mrow>
<msup><mi>b</mi><mn>2</mn></msup>
<mo>−</mo>
<mn>4</mn><mi>a</mi><mi>c</mi>
</mrow>
</msqrt>
</mrow>
<mrow><mn>2</mn><mi>a</mi></mrow>
</mfrac>
</mrow>
</math>
x = (-b +- sqrt(b^2 - 4ac)) / (2a)
Solve[x^3 - 6 x^2 + 11 x - 6 == 0, x]
solve(x^3 - 6*x^2 + 11*x - 6 = 0, x);
x = roots([1 -6 11 -6])
x = (-b ± √(b^2 - 4ac))/(2a)
ChatGPT に聞いて計算してもらう方法
あなたは数学(高校数学II・方程式)の計算アシスタントです。次の計算を、必ずPythonコードを実際に実行して行い、実行結果の数値だけを根拠に回答してください(暗算や推測で答えないでください)。 三次方程式 x³ − 6x² + 11x − 6 = 0 を解いてください。 次の内容をそれぞれ示してください。 1. 因数定理で見つかる有理数の解(候補 ±(定数項の約数)÷(最高次の係数の約数) のどれか) 2. その解で組立除法により割った商の二次式と余り 3. 残りの二次方程式を解の公式で解いた解(判別式の値も) 4. 3つの解のまとめ(実数解・虚数解の別も明記) Pythonでは標準ライブラリの fractions モジュールを使って厳密に計算し、計算に使った式と実行結果の数値を示してください。
計算ドリル(演習問題)
このページの解き方(因数定理・組立除法・解の公式の3ステップ)を、自分の手で使えるようになるための演習問題です。
答えと解説は解答ページにあります。
使い方
-
1数値を入力計算したい数値を入力欄に入力します
-
2計算「計算する」ボタンを押します
-
3結果を確認計算結果がその場に表示されます。計算の考え方や式の解説も同じページで確認できます
DataChefの特徴
専門知識不要、直感的で簡単な操作
個人情報を登録することなく使用できます
「ダウンロード」押下でファイルを自動削除
クレジット表記不要
商用利用許諾の連絡も不要です
