#07 ふれてみよう高校数学 関数
倍角・半角公式
倍角公式
「 は知っている。じゃあ は? それは ——つまりの中の角度を2倍にしたらどうなる?」
前回の加法定理で とおくだけで、倍角公式が得られます——「加法定理を自分自身に適用する」だけです。
「sinとcosを掛けて2倍」——、 なら (単位円で確認できます)。
を利用して3通りに書けます——「どれを使うかは問題によって選ぶ」という便利な変換です:
半角公式
倍角公式を「逆方向」に使います——「 の式を について解く」という発想です。
の3つの表現から と を解くと:
を に置き換えると半角公式になります——「半分の角度でもcos一つで計算できる」という公式です:
「cos の値だけ知っていれば、半分の角度のsinとcosの2乗がわかる」——これが半角公式の便利さです。
インタラクティブデモ:sin θ と sin 2θ の比較
青が 、オレンジが です。 の周期が の半分(周波数が2倍)であることを確認してください。マウスを左右に動かすと、対応する での2つの値が表示されます——右下の情報パネルで「」が に一致しているのも確かめられます。
青: y=sin(x) オレンジ: y=sin(2x) 周期の違いに注目
function loop() {
ctx.clearRect(0, 0, W, H);
var ox = W / 2, oy = H / 2 + 10;
var scaleX = 50, scaleY = 80;
var theta = (mx / W) * Math.PI * 4 - Math.PI * 2;
function toScreen(x, y) {
return { sx: ox + x * scaleX, sy: oy - y * scaleY };
}
// Grid
ctx.strokeStyle = 'rgba(255,255,255,0.06)';
ctx.lineWidth = 1;
for (var gi = -4; gi <= 4; gi++) {
var gs = toScreen(gi * Math.PI, 0);
ctx.beginPath(); ctx.moveTo(gs.sx, 0); ctx.lineTo(gs.sx, H); ctx.stroke();
}
for (var gy = -1; gy <= 1; gy++) {
var gs2 = toScreen(0, gy);
ctx.beginPath(); ctx.moveTo(0, gs2.sy); ctx.lineTo(W, gs2.sy); ctx.stroke();
}
// Axes
ctx.strokeStyle = 'rgba(255,255,255,0.3)';
ctx.lineWidth = 1.5;
ctx.beginPath(); ctx.moveTo(0, oy); ctx.lineTo(W, oy); ctx.stroke();
ctx.beginPath(); ctx.moveTo(ox, 0); ctx.lineTo(ox, H); ctx.stroke();
// Pi labels
ctx.fillStyle = 'rgba(255,255,255,0.4)';
ctx.font = '12px sans-serif';
var piLbls = [[-2,'-2π'],[-1,'-π'],[1,'π'],[2,'2π']];
for (var li = 0; li < piLbls.length; li++) {
var ls = toScreen(piLbls[li][0] * Math.PI, 0);
ctx.fillText(piLbls[li][1], ls.sx - 8, oy + 16);
}
ctx.fillText('1', ox + 4, toScreen(0,1).sy - 2);
ctx.fillText('-1', ox + 4, toScreen(0,-1).sy + 12);
// sin(x) - blue
ctx.strokeStyle = '#4fc3f7';
ctx.lineWidth = 2.5;
ctx.beginPath();
var range = W / (2 * scaleX);
for (var xi = -range; xi <= range; xi += 0.03) {
var s = toScreen(xi, Math.sin(xi));
if (xi === -range) ctx.moveTo(s.sx, s.sy); else ctx.lineTo(s.sx, s.sy);
}
ctx.stroke();
// sin(2x) - orange
ctx.strokeStyle = '#ff8a65';
ctx.lineWidth = 2.5;
ctx.beginPath();
for (var xi2 = -range; xi2 <= range; xi2 += 0.03) {
var s2 = toScreen(xi2, Math.sin(2 * xi2));
if (xi2 === -range) ctx.moveTo(s2.sx, s2.sy); else ctx.lineTo(s2.sx, s2.sy);
}
ctx.stroke();
// Vertical line at theta
var sTheta = toScreen(theta, 0);
ctx.strokeStyle = 'rgba(255,235,59,0.5)';
ctx.lineWidth = 1;
ctx.setLineDash([4,3]);
ctx.beginPath(); ctx.moveTo(sTheta.sx, 0); ctx.lineTo(sTheta.sx, H); ctx.stroke();
ctx.setLineDash([]);
// Points at theta
var sinV = Math.sin(theta);
var sin2V = Math.sin(2 * theta);
var sPt1 = toScreen(theta, sinV);
var sPt2 = toScreen(theta, sin2V);
ctx.fillStyle = '#4fc3f7';
ctx.beginPath(); ctx.arc(sPt1.sx, sPt1.sy, 6, 0, Math.PI * 2); ctx.fill();
ctx.fillStyle = '#ff8a65';
ctx.beginPath(); ctx.arc(sPt2.sx, sPt2.sy, 6, 0, Math.PI * 2); ctx.fill();
// Info panel
var deg = (theta * 180 / Math.PI).toFixed(1);
ctx.fillStyle = 'rgba(0,0,0,0.65)';
ctx.beginPath(); ctx.roundRect(10, 10, 230, 80, 8); ctx.fill();
ctx.fillStyle = '#ffeb3b';
ctx.font = 'bold 13px monospace';
ctx.fillText('θ = ' + deg + '°', 18, 32);
ctx.fillStyle = '#4fc3f7';
ctx.font = '13px monospace';
ctx.fillText('sin θ = ' + sinV.toFixed(3), 18, 54);
ctx.fillStyle = '#ff8a65';
ctx.fillText('sin 2θ = ' + sin2V.toFixed(3), 18, 74);
// Verify 2sinθcosθ
var verify = (2 * sinV * Math.cos(theta)).toFixed(3);
ctx.fillStyle = 'rgba(255,255,255,0.5)';
ctx.font = '11px sans-serif';
ctx.fillText('2sinθcosθ = ' + verify, 18, 90);
// Legend
ctx.fillStyle = 'rgba(0,0,0,0.5)';
ctx.beginPath(); ctx.roundRect(W - 170, H - 50, 158, 38, 6); ctx.fill();
ctx.fillStyle = '#4fc3f7'; ctx.font = '13px sans-serif';
ctx.fillText('— sin(x) 周期:2π', W - 160, H - 30);
ctx.fillStyle = '#ff8a65';
ctx.fillText('— sin(2x) 周期:π', W - 160, H - 14);
requestAnimationFrame(loop);
}
loop(); 積を和に変換する公式
倍角公式の逆を利用すると、三角関数の積を和に変換できます——「掛け算から足し算へ」変換することで、複雑な式が整理しやすくなります:
具体的な計算例
例① を求める
「22.5°は45°の半分」——半角公式の出番です。
なので 、よって:
例② を簡略化する
「4乗は扱いにくいが、2乗の2乗と考えて整理する」——公式を組み合わせる発想です。
練習問題
- ()のとき、、 を求めよ。
- ()のとき、 を求めよ。
- を満たす を求めよ()。
解答
- 。、
- → → ()→
- → →
まとめ
| 公式 | 形 |
|---|---|
| 倍角(sin) | |
| 倍角(cos) | |
| 倍角(tan) | |
| 半角 | 、 |
倍角・半角公式はすべて加法定理から導けます——「暗記しなくても、加法定理一つから再導出できる」というのが本質です。
次回は三角関数の合成を学びます。 という形を一つのsinにまとめる公式は、波の重ね合わせを理解するのに重要な技術です。