#04 ふれてみよう高校数学 代数と式の操作

有理式と分数式の計算

有理式とは

たとえば「1人あたりの作業量を求めたい。全体の仕事量が x2+3xx^2+3x、人数が xx 人なら、1人あたりは?」——この答えが x2+3xx\dfrac{x^2+3x}{x} です。分子も分母も xx の式(多項式)になっています。

有理式(分数式)とは、分子と分母がともに多項式である式のことです。

1/x,  (x+1)/(x-2),  (x²+3x)/(x²-1)

普通の数の分数(34\dfrac{3}{4}72\dfrac{7}{2} など)と同じ操作——通分・約分・加減乗除——がそのまま使えます。ただし分母 ≠ 0 という条件を常に意識する必要があります。「0で割る」のは数学では禁止されているからです。


約分

たとえば 68\dfrac{6}{8} は「上下を2で割って」34\dfrac{3}{4} になります。分数式でも同じです——分子と分母に共通の因数があれば、それで割って簡単にできます。

(x² - 4) / (x - 2) = (x+2)(x-2) / (x-2) = x + 2   (x ≠ 2)

手順:

  1. 分子・分母をそれぞれ因数分解する(「どんな積の形に書けるか」を探す)
  2. 共通因数を見つける(上下に同じものがあるか確認)
  3. 消去する(「キャンセル」する)
元の式因数分解約分後
x29x+3\dfrac{x^2-9}{x+3}(x+3)(x3)x+3\dfrac{(x+3)(x-3)}{x+3}x3x-3
2x2+4xx24\dfrac{2x^2+4x}{x^2-4}2x(x+2)(x+2)(x2)\dfrac{2x(x+2)}{(x+2)(x-2)}2xx2\dfrac{2x}{x-2}
x2x6x29\dfrac{x^2-x-6}{x^2-9}(x3)(x+2)(x+3)(x3)\dfrac{(x-3)(x+2)}{(x+3)(x-3)}x+2x+3\dfrac{x+2}{x+3}

乗法・除法

「3分の2 × 4分の3」は「2×3 ÷ (3×4)」、つまり分子どうし・分母どうしを掛けます。分数式でも同じです。その前に約分できるところは先に約分しておくと計算が楽になります。

(x+1)/(x-1) × (x²-1)/(x+1)²
= (x+1)/(x-1) × (x+1)(x-1)/(x+1)²
= (x+1)(x+1)(x-1) / [(x-1)(x+1)²]
= 1

分数の割り算は「逆数を掛ける」——「a÷b=a×1ba \div b = a \times \dfrac{1}{b}」という小学校で学んだルールそのままです。

(x²+x) / (x-3) ÷ x / (x²-9)
= (x²+x)/(x-3) × (x²-9)/x
= x(x+1)/(x-3) × (x+3)(x-3)/x
= (x+1)(x+3)

加法・減法:通分が鍵

14+16\dfrac{1}{4} + \dfrac{1}{6}」を計算するには分母を12に揃えますよね。分数式でも同じで、分母が異なる場合は最小公倍数(LCD)で通分します。

例:1x+1x+1\dfrac{1}{x} + \dfrac{1}{x+1}

LCD = x(x+1)x(x+1)。「それぞれの分数をこの分母に変換してから足す」が手順です。

1/x + 1/(x+1)
= (x+1)/[x(x+1)] + x/[x(x+1)]
= (x+1+x) / [x(x+1)]
= (2x+1) / [x(x+1)]

例:2x13x+2\dfrac{2}{x-1} - \dfrac{3}{x+2}

LCD = (x1)(x+2)(x-1)(x+2)

= 2(x+2)/[(x-1)(x+2)] - 3(x-1)/[(x-1)(x+2)]
= [2(x+2) - 3(x-1)] / [(x-1)(x+2)]
= [2x+4 - 3x+3] / [(x-1)(x+2)]
= (-x+7) / [(x-1)(x+2)]
1/x + 1/(x+1) = (2x+1)/(x(x+1)) をバーで視覚化:マウスで x を変える
var xVal;

function loop() {
ctx.clearRect(0, 0, W, H);

xVal = Math.max(1, Math.min(9, 1 + (mx / W) * 8));
var x = xVal;

var v1 = 1 / x;
var v2 = 1 / (x + 1);
var vsum = v1 + v2;
var vcheck = (2*x + 1) / (x * (x + 1));

var maxW = 480;
var barH = 36;
var ox = 60;

// bar 1: 1/x
ctx.fillStyle = '#3b82f6';
ctx.fillRect(ox, 60, v1 * maxW, barH);
ctx.fillStyle = '#93c5fd';
ctx.font = '13px monospace';
ctx.textAlign = 'left';
ctx.fillText('1/x = ' + v1.toFixed(4), ox + v1 * maxW + 6, 83);

// bar 2: 1/(x+1)
ctx.fillStyle = '#22c55e';
ctx.fillRect(ox, 110, v2 * maxW, barH);
ctx.fillStyle = '#86efac';
ctx.fillText('1/(x+1) = ' + v2.toFixed(4), ox + v2 * maxW + 6, 133);

// bar sum
ctx.fillStyle = '#3b82f6';
ctx.fillRect(ox, 165, v1 * maxW, barH);
ctx.fillStyle = '#22c55e';
ctx.fillRect(ox + v1 * maxW, 165, v2 * maxW, barH);
ctx.fillStyle = '#fbbf24';
ctx.fillText('合計 = ' + vsum.toFixed(4), ox + vsum * maxW + 6, 188);

// formula result bar
ctx.fillStyle = '#f59e0b';
ctx.fillRect(ox, 218, vcheck * maxW, barH);
ctx.fillStyle = '#fde68a';
ctx.fillText('(2x+1)/(x(x+1)) = ' + vcheck.toFixed(4), ox + vcheck * maxW + 6, 241);

// verify
var eq = Math.abs(vsum - vcheck) < 0.0001;
ctx.fillStyle = eq ? '#22c55e' : '#ef4444';
ctx.font = 'bold 13px monospace';
ctx.textAlign = 'left';
ctx.fillText(eq ? '✓ 一致!' : '不一致', ox, 272);

ctx.fillStyle = '#94a3b8';
ctx.font = '13px monospace';
ctx.textAlign = 'right';
ctx.fillText('x = ' + x.toFixed(2), W - 20, 272);

requestAnimationFrame(loop);
}
loop();

繁分数(二重分数)

分子または分母に分数が含まれる「繁分数」も整理できます。見た目が複雑でも、「全体に分母の最小公倍数を掛ける」という一手で整理できます。

1x11x+1\dfrac{\dfrac{1}{x} - 1}{\dfrac{1}{x} + 1}

全体に xx を掛けて分母をはらう:

= (1 - x) / (1 + x)   (x ≠ 0)

部分分数分解

積の形の分母を持つ分数を単純な分数の和に分解することを部分分数分解と言います。これは積分の計算などで「複雑な分数式を扱いやすい形に分解する」ときに使う強力なテクニックです。

1x(x+1)=Ax+Bx+1\dfrac{1}{x(x+1)} = \dfrac{A}{x} + \dfrac{B}{x+1}

「未知数 AABB をどう決めるか」が鍵です。両辺に x(x+1)x(x+1) を掛けると:

1=A(x+1)+Bx1 = A(x+1) + Bx

x=0x = 0 を代入:1=A11 = A \cdot 1A=1A = 1

x=1x = -1 を代入:1=B(1)1 = B \cdot (-1)B=1B = -1

「特定の xx 値を代入して AABB を一つずつ決める」——この手順が部分分数分解のポイントです。

1x(x+1)=1x1x+1\dfrac{1}{x(x+1)} = \dfrac{1}{x} - \dfrac{1}{x+1}

これを望遠鏡法と合わせると k=1n1k(k+1)\sum_{k=1}^{n} \dfrac{1}{k(k+1)} の和が求まります。

部分分数分解 1/(x(x+1)) = 1/x - 1/(x+1) を棒グラフで確認
var xVal;

function loop() {
ctx.clearRect(0, 0, W, H);

xVal = Math.max(0.5, Math.min(9, 0.5 + (mx / W) * 9));
var x = xVal;

var lhs = 1 / (x * (x + 1));
var rhs = 1/x - 1/(x+1);

ctx.fillStyle = '#94a3b8';
ctx.font = '15px monospace';
ctx.textAlign = 'center';
ctx.fillText('部分分数分解の確認  (x = ' + x.toFixed(2) + ')', W/2, 28);

var maxW = 400;
var barH = 32;
var ox = 100;

ctx.fillStyle = '#8b5cf6';
ctx.fillRect(ox, 55, lhs * maxW, barH);
ctx.fillStyle = '#c4b5fd';
ctx.font = '13px monospace';
ctx.textAlign = 'left';
ctx.fillText('1/(x(x+1)) = ' + lhs.toFixed(5), ox, 106);

ctx.fillStyle = '#3b82f6';
ctx.fillRect(ox, 122, (1/x) * maxW, barH);
ctx.fillStyle = '#93c5fd';
ctx.fillText('1/x = ' + (1/x).toFixed(5), ox, 168);

ctx.fillStyle = '#ef4444';
ctx.fillRect(ox, 182, (1/(x+1)) * maxW, barH);
ctx.fillStyle = '#fca5a5';
ctx.fillText('1/(x+1) = ' + (1/(x+1)).toFixed(5), ox, 228);

ctx.fillStyle = '#22c55e';
ctx.font = '14px monospace';
ctx.textAlign = 'center';
ctx.fillText('差 = ' + rhs.toFixed(5) + (Math.abs(lhs-rhs)<0.00001 ? '  ✓ 一致' : ''), W/2, 252);

requestAnimationFrame(loop);
}
loop();

よくあるミスと対策

よくあるミス正しい処理
a+bc=ac+bc\dfrac{a+b}{c} = \dfrac{a}{c} + \dfrac{b}{c} は正しい分子を展開するのは OK
ab+c=ab+ac\dfrac{a}{b+c} = \dfrac{a}{b} + \dfrac{a}{c}誤り分母は分割できない!
約分忘れ因数分解後に共通因数を確認
分母 = 0 の考慮漏れ常に定義域の制約を書く

まとめ

  • 分数式の約分は因数分解してから共通因数を消去——「数の約分と同じ手順で OK」
  • 乗除は分数と同様、除法は逆数を掛ける——「割り算は逆数の掛け算」
  • 加減はLCDで通分してから分子をまとめる——「分母を揃えてから足す」
  • 部分分数分解は積分や数列の和の計算で必須テクニック——「複雑な分数 → 単純な分数の和」
  • 分母 = 0 になる値は定義域から除外する——「分母がゼロの場所には存在しない」

次回は根号(√)と無理数の計算を学びます。有理化のテクニックが「分母の整理」として今回の内容とリンクします。