#07 ふれてみよう高校数学 解析(微分・積分・極限)
指数・対数の微分
ネイピア数 とは
「1 年間に 100% の利子が複利でつくとき、元金 1 円は最終的にいくらになるか」——1 円が 2 円になるのは単利ですが、複利の頻度を増やしていくと徐々に増えていきます。無限に分割した極限が です。
自然指数関数の底 は次の極限で定義されます:
等価な表現として:
の微分
これは数学で最も驚くべき公式の一つです——「 は微分しても変わらない」。つまり「どの点でも、その点の高さが接線の傾きと同じ」という驚くべき性質です。
証明
差分商から——「 の変化量を小さな で割った値の極限を求める」:
の定義より なので——「 の定義から自動的に導ける」:
一般の指数関数
「 以外の底でも、 という係数がつくだけ」:
( のとき なので に帰着)
の微分
証明
「 と が逆関数の関係であることを使う」—— とすると 。両辺を で微分(陰関数微分):
「 は と同じなので 」—— の微分から自然に導けます。
デモ:接線の傾き = の値
の接線の傾きはいつも 自身——つまり「傾き = 高さ」という性質があります。マウスで を動かすと、接線と現在の 値が表示され、両者が一致することが確認できます。
y = eˣ の接線傾きは常に eˣ に等しい。マウスで確認。
function loop() {
ctx.clearRect(0, 0, W, H);
var scale=55;
var ox=130, oy=H*0.85;
function toSx(x){return ox+x*scale;}
function toSy(y){return oy-y*scale;}
function drawAxes(){
ctx.strokeStyle='rgba(255,255,255,0.15)';
ctx.lineWidth=1;
ctx.beginPath();ctx.moveTo(0,oy);ctx.lineTo(W,oy);ctx.stroke();
ctx.beginPath();ctx.moveTo(ox,0);ctx.lineTo(ox,H);ctx.stroke();
ctx.fillStyle='rgba(255,255,255,0.3)';
ctx.font='10px monospace';
ctx.textAlign='center';
for(var i=-2;i<=5;i++){
if(i===0)continue;
ctx.fillText(i,toSx(i),oy+14);
}
ctx.textAlign='right';
for(var j=1;j<=4;j++){
ctx.fillText(j,ox-6,toSy(j)+4);
}
}
function plotCurve(fn,color,lw){
ctx.strokeStyle=color;ctx.lineWidth=lw||2;
ctx.beginPath();
var first=true;
for(var xi=-ox;xi<=W-ox;xi+=1){
var x=xi/scale;
var y=fn(x);
if(!isFinite(y)||y>H/scale+1||y<-0.5){first=true;continue;}
if(first){ctx.moveTo(toSx(x),toSy(y));first=false;}
else ctx.lineTo(toSx(x),toSy(y));
}
ctx.stroke();
}
ctx.fillStyle='#0d1117';
ctx.fillRect(0,0,W,H);
drawAxes();
// e^x curve
plotCurve(function(x){return Math.exp(x);},'#4fc3f7',2.5);
// ln x curve
plotCurve(function(x){
if(x<=0)return NaN;
return Math.log(x);
},'rgba(255,138,101,0.7)',2);
// Mouse position
var x0=(mx-ox)/scale;
x0=Math.max(-1.8,Math.min(2.8,x0));
var y0=Math.exp(x0);
var slope=y0; // derivative = e^x
// Tangent line for e^x
var ext=1.5;
var y_at_minus=y0+slope*(-ext);
var y_at_plus=y0+slope*ext;
if(y_at_minus>0 && y_at_minus<H/scale && y_at_plus>0 && y_at_plus<H/scale){
ctx.strokeStyle='rgba(255,202,40,0.9)';
ctx.lineWidth=1.5;
ctx.beginPath();
ctx.moveTo(toSx(x0-ext),toSy(y_at_minus));
ctx.lineTo(toSx(x0+ext),toSy(y_at_plus));
ctx.stroke();
}
// Dashed from point to axes
ctx.setLineDash([3,3]);
ctx.strokeStyle='rgba(79,195,247,0.3)';
ctx.lineWidth=1;
ctx.beginPath();ctx.moveTo(toSx(x0),toSy(y0));ctx.lineTo(toSx(x0),oy);ctx.stroke();
ctx.beginPath();ctx.moveTo(toSx(x0),toSy(y0));ctx.lineTo(ox,toSy(y0));ctx.stroke();
ctx.setLineDash([]);
// Point on curve
ctx.beginPath();ctx.arc(toSx(x0),toSy(y0),6,0,Math.PI*2);
ctx.fillStyle='#ffca28';ctx.fill();
// Visual: arrow showing slope = height
ctx.strokeStyle='rgba(255,202,40,0.5)';
ctx.lineWidth=1;
ctx.beginPath();ctx.moveTo(ox,toSy(y0));ctx.lineTo(toSx(x0),toSy(y0));ctx.stroke();
// Info box
ctx.fillStyle='rgba(0,0,0,0.7)';
ctx.fillRect(8,8,260,88);
ctx.font='13px monospace';ctx.textAlign='left';
ctx.fillStyle='#4fc3f7';
ctx.fillText('x = '+x0.toFixed(3),14,28);
ctx.fillText('y = eˣ = '+y0.toFixed(4),14,46);
ctx.fillStyle='#ffca28';
ctx.fillText('接線傾き = eˣ = '+slope.toFixed(4),14,64);
ctx.fillStyle='rgba(255,255,255,0.5)';
ctx.fillText('← 傾き=高さ !',14,82);
// Legend
ctx.font='12px sans-serif';ctx.textAlign='right';
ctx.fillStyle='#4fc3f7';ctx.fillText('── y = eˣ',W-10,H-28);
ctx.fillStyle='rgba(255,138,101,0.8)';ctx.fillText('── y = ln x',W-10,H-10);
requestAnimationFrame(loop);
}
loop(); 連鎖律との組み合わせ
「 の強みは連鎖律と相性が良いこと」——中身がどれだけ複雑でも、外側の はそのまま残ります:
対数微分法
「複雑な積や商の微分に、対数を使うと楽になる」——両辺の対数を取ってから微分するテクニックです:
例:
「 は底も指数も なので、普通のべき乗則は使えない」——対数微分法なら対応できます:
両辺を で微分(左辺は )——「 を微分すると 」:
指数・対数の微分まとめ
まとめ
- は唯一「自分自身が微分」という指数関数——「傾きがいつも高さと同じ」という唯一無二の性質
- の微分は ——「これは有理関数と指数関数を橋渡しする」
- 連鎖律と組み合わせて複合関数を微分できる——「 の中身が複雑でも、 はそのまま残る」
- 対数微分法で のような難しい関数も扱える——「対数をとって両辺を微分する」
次回は微分の応用として増減表と極値—— の符号から関数の「山」と「谷」を見つける方法を学びます。