\( \DeclareMathOperator{\abs}{abs} \newcommand{\ensuremath}[1]{\mbox{$#1$}} \)

微分と積分(calculus)

1 微分係数と導関数

平均変化率:average rate of change
 averageはアラブ語(damaged merchandiseの意)から;
 損害を所有主が平均して分担したことから,なんだってよ。
瞬間速度:instantaneous velocity
 インスタントはラーメンが最初かな。
極限値:limit(value)
収束する:converge
微分係数:derivative derive(導く)から
 river(川)から導くへ,rivalも同じ川を争うからきているという
 接線とか接点は2次関数で既出。
導関数:derivation
増分:increment
微分する:differentiate be different from(違い)から
定数関数:constant function

さあ,微分積分だ!calculusは計算という意味だが微積の計算にも使う。
微積は計算なんだよな。計算の元は石。
limit(f,x,a) は f の x を a に近づけたときの極限。
diff(f,x,n) は f を x で n 回微分する。n は省略すれば 1。
Maxima は積の微分法を行うんだな。
\[例題1 次の関数を微分せよ。\\
(1)f(x)=x^3 導関数の定義に従って\hspace{2cm}(2)y=2x^3+3x^2-5x+2\]

(%i1) limit(((x+h)^3-x^3)/h, h, 0);
\[(\%o1)3{{x}^{2}}\]
(%i2) diff(2*x^3+3*x^2-5*x+2,x);
\[(\%o2)6{{x}^{2}}+6x-5\]
(%i3) diff(f(x)*g(x),x);
\[(\%o3)\operatorname{f}(x)\,\left( \frac{d}{dx}\operatorname{g}(x)\right) +\operatorname{g}(x)\,\left( \frac{d}{dx}\operatorname{f}(x)\right) \]

2 導関数の応用

区間:interval
増減表:increase and decrease
極大,極大値:local(relative) maximum
極小,極小値:local(relative) minimum
極値:extremum
\[例題1 点A(3,-4)から曲線 y=x^2-3xへ引いた接線の方程式を求めよ。\\
   例題2 関数 f(x)=4x^3-3x^2-6x+2の増減を調べ,極値を求めよ。\\
   また,区間-1\le x\le2における最大値と最小値を求めよ。\\
   例題3 関数 f(x)=x^3+ax^2+bx-1が\\
   x=1で極大値,x=3で極小値をとるような定数a,bの値を求めよ。\]
なかなかいいマクロができましたよ。接線の方程式を求めるマクロ。
曲線上の点ならその上での接線,曲線上の点でなければ底から引いた接線の方程式を求める。
次は,極値を求めるマクロ。
例題3は与えられた点で極値をとる関数は(次の範囲ですが)積分すればいいわけで。

図 1:
Diagram
(%i4) tangentLine(a,b,f):=block(
f(x):=f,
g(x):=diff(f,x),
if b=f(a) then print("y=",expand(subst(a,x,g(x))*(x-a)+b)),
h(p):=subst(p,x,g(x))*(x-p)+subst(p,x,f(x)),
l:solve(subst(p,x,g(x))*(a-p)+subst(p,x,f(x))=b,p),
for i:1 thru length(l) do print("y=",expand(ev(h(p),l[i])))
)$
(%i5) tangentLine(3,-4,x^2-3*x)$
\[\mbox{}\\y= -x-1 \mbox{}\\y= 7x-25 \]
(%i6) maxmin(f):=block(
f(x):=f,
g(x):=diff(f(x),x),
h(x):=diff(g(x),x),
l:solve(g(x)=0,x),
for i:1 thru length(l) do block(
if subst(ev(x,l[i]),x,h(x))<0 then s:"Local Max:"
else if subst(ev(x,l[i]),x,h(x))>0 then s:"Local Min:"
else s:"inflection point",
print(s,"x=",ev(x,l[i]),",y=",subst(ev(x,l[i]),x,f(x)))
)
)$
(%i7) maxmin(4*x^3-3*x^2-6*x+2)$
\[\mbox{}\\Local\,Min: x= 1 ,y= -3 \mbox{}\\Local\,Max: x= -\frac{1}{2} ,y= \frac{15}{4} \]
(%i8) wxplot2d([4*x^3-3*x^2-6*x+2],[x,-1,2]);
\[(\%t8)\]  (Graphics)
\[(\%o8)\]
(%i9) integrate((x-1)*(x-3),x);
\[(\%o9)\frac{{{x}^{3}}-6{{x}^{2}}+9x}{3}\]

\[例題4 3次方程式 x^3-3x-a=0の異なる実数解の個数は,\\
   定数aの値によってどのように変わるか。\]
定数(a)分離法で constant separation なんて,グラフのタイトルにはつけたけど,こんな英語はないな,きっと。
アニメを作る方法もいろいろあるんです。
 まず,Gifファイルを作る方法。まあ上のように全部描けという命令を出すのもおっくうだから,
  下のようにapply append という関数を使ったら少し楽になりました。
 このページにそのまま書くこともできる。でも、このあたりはもうGeogebraのほうが楽だ。

この章は我ながらなかなか便利なものができたぞ,たいしたもんなのは Maxima だけど。

(%i10) load(draw)$
(%i11) f:x^3-3*x$
(%i12) a:-3$
(%i13) draw(delay = 100,file_name = "zzz",
terminal = 'animated_gif,
    gr2d(yrange = [-3.5,3.5],
        label([sconcat("a=",a),1,0.3]),
        explicit(f,x,-3,3),xaxis = true,
        explicit(a,x,-3,3),xaxis = true
        ),
    gr2d(yrange = [-3.5,3.5],
        label([sconcat("a=",a+1),1,0.3]),
        explicit(f,x,-3,3),xaxis = true,
        explicit(a+1,x,-3,3),xaxis = true
        ),
    gr2d(yrange = [-3.5,3.5],
        label([sconcat("a=",a+2),1,0.3]),
        explicit(f,x,-3,3),xaxis = true,
        explicit(a+2,x,-3,3),xaxis = true
        ),
    gr2d(yrange = [-3.5,3.5],
        label([sconcat("a=",a+3),1,0.3]),
        explicit(f,x,-3,3),xaxis = true,
        explicit(a+3,x,-3,3),xaxis = true
        ),
    gr2d(yrange = [-3.5,3.5],
        label([sconcat("a=",a+4),1,0.3]),
        explicit(f,x,-3,3),xaxis = true,
        explicit(a+4,x,-3,3),xaxis = true
        ),
    gr2d(yrange = [-3.5,3.5],
        label([sconcat("a=",a+5),1,0.3]),
        explicit(f,x,-3,3),xaxis = true,
        explicit(a+5,x,-3,3),xaxis = true
        ),
    gr2d(yrange = [-3.5,3.5],
        label([sconcat("a=",a+6),1,0.3]),
        explicit(f,x,-3,3),xaxis = true,
        explicit(a+6,x,-3,3),xaxis = true
        )
)$
(%i14) apply(draw, append([terminal=animated_gif, delay=50],
makelist(gr2d(title = "constant separation",
xrange = [-3,3],
yrange = [-3.5,3.5],
label(["y=x^3-3*x",-1.5,-2.5]),
label(["y=a",2.5,a+0.1]),
label([sconcat("a=",a),1,0.3]),
label([sconcat("solution:",
if abs(a)>2 then "1" elseif abs(a)=2 then "2" else "3"),-1,-0.3]),
explicit(x^3-3*x,x,-3,3),xaxis = true,yaxis=true,
explicit(a,x,-3,3),xaxis = true,yaxis=true
),a,-3,3)
)
)$
(%i15) load(draw)$
(%i16) with_slider_draw(
    k,makelist(i,i,1,7),
    proportional_axes = xy,
    xrange = [-3,3],
    yrange = [-4,4],
    xaxis=true,
    yaxis=true,
    title = "定数分離法" ,
    label([sconcat("k=",k-4),1,2]),
    explicit(k-4,x,-3,3),
    explicit(x^3-3*x,x,-3,3)
);
\[(\%t16)\] Animated Diagram \[(\%o16)\]

3 積分法

原始関数:primitive function 最初がprime
不定積分:indefinite integral
 inがnot,tegがtouch つまりアンタッチャブル 触れられないほど完全なということらしい
積分定数:integration constant
積分する:integrate
定積分:definite integral
上端,下端:upper(lower)limit
奇関数,偶関数:odd(even)function
 odd 古期北欧語「三角形」の意から(三角形の頂点が奇数であることから)
 even 二人にとって平等なとかいうイメージがあるようだ

\[例題1 次を積分せよ。\\
   (1) f(x)=(x+1)(2x-1)\hspace{1cm} (2) \int_{0}^{3}(x-2)^2dx\hspace{1cm} (3) \int_{0}^{3}|x(x-2)|dx\\
例題2 グラフ上の各点(x,y)における接線の傾きが 3x^2-4xで点(1,5)を通る関数を求めよ。\]
絶対値の積分はしてくれないので,定積分の数値計算(rombergという人?が作ったマクロ)
 グラフを見て,正の範囲を積分するということでいいでしょう。
微分したものが f で,(a,b)を通る曲線の方程式を求めるマクロ。

図 2:
Diagram
(%i17) integrate((x+1)*(2*x-1), x);
\[(\%o17)\frac{4{{x}^{3}}+3{{x}^{2}}-6x}{6}\]
(%i18) integrate((x-2)^2, x, 0, 3);
\[(\%o18)3\]
(%i19) f:x*(x-2)$
(%i20) romberg(abs(f), x, 0, 3);
\[(\%o20)2.6666691003945\]
(%i21) wxplot2d([abs(f)], [x,0,3])$
\[(\%t21)\]  (Graphics)
(%i22) integrate(-f,x,0,2)+integrate(f,x,2,3);
\[(\%o22)\frac{8}{3}\]
(%i23) curve(a,b,f):=block(
f(x):=f,
c:b-subst(a,x,integrate(f(x),x)),
return(integrate(f(x),x)+c)
)$
(%i24) curve(1,5,3*x^2-4*x);
\[(\%o24){{x}^{3}}-2{{x}^{2}}+6\]

\[例題3 等式 f(x)=4x+3\int_{0}^{1}f(t)dtを満たす関数f(x)を求めよ。\\
   例題4 次の等式を満たす関数f(x)と定数aの値を求めよ。\\
   \int_{a}^{x}f(t)dt=3x^2-4x+1\\
例題5 2つの放物線 y=x^2-2x,y=-x^2+4で囲まれた図形の面積を求めよ。\]
積分区間が定数のものは積分それ自身を定数と置く。
微積分の基本定理をそのままやらしてみました。
a から x まで積分した関数がわかって,元の関数と a を求めるマクロです,Newton に敬意を表して。
面積はまずグラフをかいて,上の式から下の式を引いて交点から交点で積分する(交点が2つのときのみです)。

(%i25) kill(all)$
(%i1) solve(integrate(4*x+3*k,x,0,1)=k,k);
\[(\%o1)[k=-1]\]
(%i2) newton(f):=block(
f(x):=f,
print(diff(f,x)),
solve(subst(a,x,f)=0,a)
)$
(%i3) newton(3*x^2-4*x+1);
\[6x-4 \] \[(\%o3)[a=1,a=\frac{1}{3}]\]
(%i4) area(f,g):=block(
a:ev(x,solve(f=g,x)[1]),b:ev(x,solve(f=g,x)[2]),
if a>b then (c:a,a:b,b:c),
integrate(f-g,x,a,b)
)$
(%i5) wxplot2d([x^2-2*x,-x^2+4], [x,-2,3])$
\[(\%t5)\]  (Graphics)
(%i6) area(-x^2+4,x^2-2*x);
\[(\%o6)9\]
Created with wxMaxima. inserted by FC2 system