{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 05 微分可能函数\n", "\n", "黒木玄\n", "\n", "2018-04-20~2018-04-03, 2023-06-22\n", "\n", "* Copyright 2018,2023 Gen Kuroki\n", "* License: MIT https://opensource.org/licenses/MIT\n", "* Repository: https://github.com/genkuroki/Calculus\n", "\n", "このファイルは次の場所できれいに閲覧できる:\n", "\n", "* http://nbviewer.jupyter.org/github/genkuroki/Calculus/blob/master/05%20differentiable%20functions.ipynb\n", "\n", "* https://genkuroki.github.io/documents/Calculus/05%20differentiable%20functions.pdf\n", "\n", "このファイルは Julia Box で利用できる.\n", "\n", "自分のパソコンにJulia言語をインストールしたい場合には\n", "\n", "* [WindowsへのJulia言語のインストール](http://nbviewer.jupyter.org/gist/genkuroki/81de23edcae631a995e19a2ecf946a4f)\n", "\n", "* [Julia v1.1.0 の Windows 8.1 へのインストール](https://nbviewer.jupyter.org/github/genkuroki/msfd28/blob/master/install.ipynb)\n", "\n", "を参照せよ. 前者は古く, 後者の方が新しい.\n", "\n", "論理的に完璧な説明をするつもりはない. 細部のいい加減な部分は自分で訂正・修正せよ.\n", "\n", "$\n", "\\newcommand\\eps{\\varepsilon}\n", "\\newcommand\\ds{\\displaystyle}\n", "\\newcommand\\Z{{\\mathbb Z}}\n", "\\newcommand\\R{{\\mathbb R}}\n", "\\newcommand\\C{{\\mathbb C}}\n", "\\newcommand\\QED{\\text{□}}\n", "\\newcommand\\root{\\sqrt}\n", "$" ] }, { "cell_type": "markdown", "metadata": { "toc": true }, "source": [ "

目次

\n", "
" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "using Base.MathConstants\n", "using Base64\n", "using Printf\n", "using Statistics\n", "const e = ℯ\n", "endof(a) = lastindex(a)\n", "linspace(start, stop, length) = range(start, stop, length=length)\n", "\n", "using Plots\n", "#gr(); ENV[\"PLOTS_TEST\"] = \"true\"\n", "#clibrary(:colorcet)\n", "#clibrary(:misc)\n", "default(fmt=:png)\n", "\n", "function pngplot(P...; kwargs...)\n", " sleep(0.1)\n", " pngfile = tempname() * \".png\"\n", " savefig(plot(P...; kwargs...), pngfile)\n", " showimg(\"image/png\", pngfile)\n", "end\n", "pngplot(; kwargs...) = pngplot(plot!(; kwargs...))\n", "\n", "showimg(mime, fn) = open(fn) do f\n", " base64 = base64encode(f)\n", " display(\"text/html\", \"\"\"\"\"\")\n", "end\n", "\n", "using SymPy\n", "#sympy.init_printing(order=\"lex\") # default\n", "#sympy.init_printing(order=\"rev-lex\")\n", "\n", "using SpecialFunctions\n", "using QuadGK\n", "using PyPlot: PyPlot, plt" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Override the Base.show definition of SymPy.jl:\n", "# https://github.com/JuliaPy/SymPy.jl/blob/29c5bfd1d10ac53014fa7fef468bc8deccadc2fc/src/types.jl#L87-L105\n", "\n", "@eval SymPy function Base.show(io::IO, ::MIME\"text/latex\", x::SymbolicObject)\n", " print(io, as_markdown(\"\\\\displaystyle \" * sympy.latex(x, mode=\"plain\", fold_short_frac=false)))\n", "end\n", "@eval SymPy function Base.show(io::IO, ::MIME\"text/latex\", x::AbstractArray{Sym})\n", " function toeqnarray(x::Vector{Sym})\n", " a = join([\"\\\\displaystyle \" * sympy.latex(x[i]) for i in 1:length(x)], \"\\\\\\\\\")\n", " \"\"\"\\\\left[ \\\\begin{array}{r}$a\\\\end{array} \\\\right]\"\"\"\n", " end\n", " function toeqnarray(x::AbstractArray{Sym,2})\n", " sz = size(x)\n", " a = join([join(\"\\\\displaystyle \" .* map(sympy.latex, x[i,:]), \"&\") for i in 1:sz[1]], \"\\\\\\\\\")\n", " \"\\\\left[ \\\\begin{array}{\" * repeat(\"r\",sz[2]) * \"}\" * a * \"\\\\end{array}\\\\right]\"\n", " end\n", " print(io, as_markdown(toeqnarray(x)))\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Landau記号" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 数列版\n", "\n", "数列 $a_n,b_n$ について\n", "\n", "$$\n", "\\frac{a_n}{b_n}\\to 0 \\quad (n\\to\\infty)\n", "$$\n", "\n", "が成立するとき, 量 $a_n$ を $o(b_n)$ と書くことがある:\n", "\n", "$$\n", "a_n = o(b_n).\n", "$$\n", "\n", "例えば\n", "\n", "* $n = o(n^2)$.\n", "\n", "* $n^{100} = o(e^n)$.\n", "\n", "* $\\log n = o(n)$.\n", "\n", "ある非負の定数 $M$ が存在して, 十分大きな $n$ について \n", "\n", "$$\n", "|a_n| \\leqq M |b_n|\n", "$$\n", "\n", "が成立するとき, 量 $a_n$ を $O(b_n)$ と書くことがある:\n", "\n", "$$\n", "a_n = O(b_n).\n", "$$\n", "\n", "例えば\n", "\n", "* $3n^2 + 100n + 26 = O(n^2)$.\n", "\n", "* $\\ds n\\log n - n + \\frac{1}{2}\\log(2\\pi n) = O(n\\log n)$.\n", "\n", "以上で定義した $o(b_n)$ と $O(b_n)$ を**Landau記号**と呼ぶ. \n", "\n", "違うものを同じLandau記号の $o(b_n)$ や $O(b_n)$ で表すことのがあるので注意しなければいけない. 例えば $O(n)-O(n)=0$ とはならず, $O(n)-O(n)=O(n)$ となる.\n", "\n", "$o(b_n)$ の量は $O(b_n)$ の量にもなる. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**問題:** $n\\to\\infty$ のとき $a_n/b_n$ が収束するならば $a_n=O(b_n)$ であることを示せ.\n", "\n", "**解答例:** $a_n/b_n$ が $C$ に収束しているなら, $|a_n/b_n|$ は $|C|$ に収束するので, $M=|C|+1$ とおくと, 十分大きな $n$ について $|a_n/b_n|\\leqq |C|+1 = M$ すなわち $|a_n|\\leqq M|b_n|$ が成立する. $\\QED$ " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 連続版\n", "\n", "$x\\to\\infty$ におけるLandau記号 $o(g(x))$, $O(g(x))$ は上の数列の場合と同様に定義される.\n", "\n", "有限の $a$ に関する $x\\to a$ におけるLandau記号 $o(g(x))$, $O(g(x))$ も同様に定義される. \n", "\n", "$$\n", "\\frac{f(x)}{g(x)}\\to 0 \\quad (x\\to a)\n", "$$\n", "\n", "が成立するとき, $f(x)=o(g(x))$ と書き, ある非負の定数 $M$ とある $\\delta > 0$ が存在して\n", "\n", "$$\n", "|f(x)| \\leqq M |g(x)| \\quad (|x-a|\\leqq\\delta)\n", "$$\n", "\n", "が成立するとき, $f(x)=O(g(x))$ と書く.\n", "\n", "例えば, \n", "\n", "* $x\\to 0$ において $x\\log x\\to 0$ なので\n", "\n", "$$\n", "x = o(1/\\log x), \\quad \\log x = o(1/x) \\quad (x\\to 0).\n", "$$\n", "\n", "* $x\\to a$ において, \n", "\n", "$$\n", "(x-a)^2 + (x-a)^3 + (x-a)^4 + \\cdots = O\\left((x-a)^2\\right) = o(x-a) \\quad (x\\to a).\n", "$$\n", "\n", "* どんなに大きな $n$ についても, $x\\searrow 0$ において $e^{-1/x}/x^n\\to 0$ なので\n", "\n", "$$\n", "\\exp\\left(-\\frac{1}{x}\\right) = o(x^n) \\quad(x\\searrow 0).\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**問題:** 以上に出て来た例を確認(証明)せよ. さらに以上に出て来ていない例で面白そうなものを自分で作れ. $\\QED$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Laudau記号を使った微分可能性の定義" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 連続函数\n", "\n", "函数 $f(x)$ が $x$ において**連続**であることの定義は, Landau記号を使うと\n", "\n", "$$\n", "f(x+h) = f(x) + o(1) \\quad (h\\to 0)\n", "$$\n", "\n", "と書ける. $o(1)$ は $h\\to 0$ で $0$ に収束する項を意味する. 定義域に含まれるすべての $x$ において函数 $f(x)$ が連続であるとき, 函数 $f(x)$ は**連続函数**であるという." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 微分可能函数\n", "\n", "函数 $f(x)$ が $x$ において**微分可能**であることの定義は, ある数 $f'(x)$ が存在して, \n", "\n", "$$\n", "\\frac{f(x+h) - f(x)}{h} \\to f'(x) \\quad (h\\to 0)\n", "$$\n", "\n", "が成立することである. この条件はLandau記号を使うと, \n", "\n", "$$\n", "f(x+h) = f(x) + f'(x)h + o(h)\n", "$$\n", "\n", "と書き直される. ここで $o(h)$ は $h\\to 0$ のとき $o(h)/h\\to 0$ となるような量を意味する. $o(h)$ を $h$ より**高次の微小量**と呼ぶことがある.\n", "\n", "定義域に含まれるすべての $x$ において函数 $f(x)$ が微分可能であるとき, 函数 $f(x)$ は**微分可能函数**であるという. $x$ を**微係数** $f'(x)$ に対応させる函数を $f(x)$ の**導函数**(derivative)と呼ぶ." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "以上をまとめると,\n", "\n", "**連続性:** $\\quad$ $f(x+h) = f(x) + o(1)$ $(h\\to 0)$.\n", "\n", "**微分可能性:** $\\quad$ $f(x+h) = f(x) + f'(x)h + o(h)$ $(h\\to 0)$.\n", "\n", "このように書けばこれらは\n", "\n", "$$\n", "f(x+h) = a_0 + a_1 h + a_2 h + \\cdots + a_k h^k + o(h^k)\n", "$$\n", "\n", "の形に一般化可能であることが明瞭になる. 後で実際にこの一般化を実行する(Taylorの定理)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**注意:** 解析学では\n", "\n", "知りたい量 = 相対的によくわかる量 + 誤差\n", "\n", "というような理解の仕方が重要になる場合が多い. 函数の連続性の定義の\n", "\n", "$$\n", "f(x+h) = f(x) + o(1)\\quad (h\\to 0)\n", "$$\n", "\n", "においては, $f(x+h)$, $f(x)$, $o(1)$ のそれぞれ「知りたい量」「想定的によくわかる量」「誤差」とも解釈できる. 函数の微分可能性の定義\n", "\n", "$$\n", "f(x+h) = f(x) + f'(x)h + o(h) \\quad (h\\to 0)\n", "$$\n", "\n", "においては, $f(x+h)$, $f(x)+f'(x)h$, $o(h)$ のそれぞれ「知りたい量」「想定的によくわかる量」「誤差」とも解釈できる. $f(x)+f'(x)h$ の中には $h$ と同オーダーの微小量 $f'(x)h$ を含んでいるので, 誤差の部分は $h$ より微小なオーダーになっていなければいけない. 実際, 微分可能性の定義において, 誤差の部分は $o(h)$ のオーダーになっていなければいけないとしている. $o(h)$ は $h$ で割って, $h\\to 0$ としたときに $0$ に収束する量なので, $h$ よりも微小なオーダーになっていると思える. $\\QED$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### $C^n$ 級函数\n", "\n", "連続函数を **$C^0$ 級**函数と呼ぶ.\n", "\n", "函数 $f$ が微分可能でかつ導函数が連続なとき $f$ は **$C^1$ 級**であるという. そのとき $f$ は**連続微分可能**であると言うこともある.\n", "\n", "より一般に, $f$ が $n$ 回微分可能でかつその $n$ 階の導函数 $f^{(n)}$ が連続なとき, $f$ は **$C^n$ 級**であるという.\n", "\n", "任意有限回微分可能な函数を **$C^\\infty$ 級函数**と呼ぶ.\n", "\n", "$C^n$ 級函数(class-$C^n$ function)を **$C^n$ 函数** ($C^n$-function) と呼ぶことも多い." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**問題:** 微分可能だが $C^1$ 級でない函数の例を挙げよ.\n", "\n", "**解答例:** 函数 $f$ を\n", "\n", "$$\n", "f(x) = \\begin{cases}\n", "x^2 \\sin(1/x) & (x\\ne 0) \\\\\n", "0 & (x=0)\n", "\\end{cases}\n", "$$\n", "\n", "と定める. このとき, $x\\ne 0$ ならば $f'(x)=2x\\sin(1/x)-\\cos(1/x)$ である. そして, $x\\to 0$ のとき\n", "\n", "$$\n", "\\frac{f(x)-f(0)}{x-0}=\\frac{x^2\\sin(1/x)}{x}=x\\sin(1/x)\\to 0\n", "$$\n", "\n", "なので, $f$ は $x=0$ でも微分可能であり, $f'(0)=0$ である. これで $f$ が微分可能であることがわかった. しかし, $x\\to 0$ で $f'(x)$ の中の $\\cos(1/x)$ が無限に振動して収束しないので, $f'$ は $x=0$ で不連続である. これで $f$ は $C^1$ 級ではないことがわかった. $\\QED$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**問題:** 上の問題の $x^2\\sin(1/x)$ を非負の整数 $n$ に対する $x^n\\sin(1/x)$ で置き換えた場合について考えてみよ. その場合に得らえる函数は何回微分可能であるか? 最大回数の微分の結果得られる導函数は連続であるか? まず, $n=0,1,3,4$ の場合について考えてみよ. $\\QED$\n", "\n", "解答例略." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAArwAAAD6CAIAAADMRgNMAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOydd3gUVffHz53ZkmwK6QkECGmUQOggRZEqqEAAaYKggoAIVl4s+CJ2mr6I/hRBpIgUAWmCSBUV1ID0LiQsgTQIaZtsnbn398dsJtuzlbT7eXh4did3Z+7sztx75pzvORcRQoBCoVAoFAqlKpjq7gCFQqFQKJTaATUaKBQKhUKhOAU1GigUCoVCoTgFNRooFAqFQqE4BTUaKBQKhUKhOAU1GigUCoVCoTiFpLo7QKFQKGZwHLdv377Dhw8XFBS0adNm2rRpwcHB1d0pCoUCQD0NFAqlppGdnf3f//43Ojp6wIABBw8efPjhhw0GQ3V3ikKhAAAgWtyJQqHUKDDGDGN8ntFoNKGhoX/++WfHjh2rt1cUCgWop4FCodQ0RIsBAIqLiw0GQ0RERDX2h0KhiNQRTwPP82+++ebixYtt/oll2fvfJe9Cz6LmYPocXHvBGCOEEELV3RFHYIyHDx8eERHx7bffOmg2bty4goKCwMBA4a1CoVi2bBlCqM5cbzX/l6oSYaKpA2dBCKkDt7+9W8PPz08iqULpWEeMBpVKFRsbW1paavNPQUFB979L3oWeRc2hrKxMnJ9qLxqNRiqVVjlAVCOEkBkzZly4cOGXX35RKBQOWvbr169Tp06dO3cW3oaGhvbr1w/qyvWmVqvlcnltt370ej0AyGSy6u6IR/A8r9fr/f39q7sjnmLv1nDGHqq5QwaFQqnPvPbaa6dOndq/f79jiwEAgoKCevbsmZaWZrGdYZg68FDIVFDdHfEIof+1/SwEN0NtPwvw7NagRgOFQqlxzJkz58iRI4cOHaLJlhRKjaLWW0wUCqWOcenSpfnz5+fm5nbp0iUxMTExMfHgwYPV3SkKhQJAPQ0UCqWmkZSUlJGRYbolJiamujpDoVBMoUYDhUKpWchksoSEhOruBYVCsUG9MBpmz569bdu26u6FRxBCale2EsuyH3/88ciRI6u7I5R6zbFjxyZOnFjdvfCIWnfv26TaUy5Zll20aNGwYcOqqwN1hnphNFy+fHnOnDl9+vSp7o7UIxYtWmThYaZQ7j+3bt1KSUlZunRpdXeEUs189NFHmZmZ1d2LukC9MBoAICYmhjo87ychISHV3QUKBQAgMDCQ3vsUOiJ5C5o9QaFQKBQKxSmo0UChUCgUCsUpqNFAoVAoFArFKajRQKFQKBQKxSmo0UChUCgUCsUpqNFQ9ykrK9NqtY7b8DxfVlbmyVFUKhXG2JM9UCgUV+F5vqioqMpmKpWK53m3j6LX69VqtdsfdwOO4zwckUpLS+mI5Avuk9GQm5ubm5vroEFJScmNGzfobyySk5OTlpb21ltvma5dnpOTM2vWrG7durVt23bq1KmOv1KRl19++csvv3Tc5v333//666+F19988820adMGDBhw4cIFi2ZPP/10fn6+zT0sXLjw888/d6Y/FApl1apVjz32WEpKSv/+/ffs2eP2fi5cuNCuXTvHbbKzs7t16yYYDf/888/cuXOHDh364YcfWjTbsWPH8uXLbe4hPz+/S5cuwvLW94d33nnn22+/BQBCyPLly6dOnTpgwIArV65YNBs/fvy9e/ds7uHDDz8UxzSKF/G50aDRaB5//PHOnTt36tQpLS1Np9NZt1m8eHGzZs0ee+yx5s2bX7582fRPSqUyKCjoscce83U/axT5+fn9+/dv0aLF4cOHX3nlFXF7ZmamVCpdsmTJhg0bCgsLhw8f7szeZs2aNWrUKAcNCgsLv/nmmxdeeEF4e+DAgcTExPT09OLiYtNmSqXyr7/+io6OtrmTV155ZfHixRqNxpkuUSj1nPT09ClTpmzfvn3ixIkjR448fvy4e/tJTEzcsGGD4zYffvjhjBkzZDIZAJw8eVKj0SCEzp8/b9Hs22+/bdasmc09NGnSpGvXruvWrXOvk65y9+7dtWvXTps2DQB4nv/111+Tk5OPHTtWUlJi2uzatWtnz54NDw+3uZNZs2bNnz/f5oxD8QSfGw1ff/11cXGxUqlUKpV5eXkrV660aJCRkfH++++fOHHi8uXLTz31lOkcSQiZNm1ar169fN1J58nPz583b5749J+VlfXRRx+5t6t//vln0aJFwq4KCwvnzJkjmMwFBQUDBw588cUXFy1adPjw4YyMjFdffVX4yIMPPrhgwYLu3bu3adNmwYIF6enp5eXlFrv9+++/J02aNHz48JkzZ167dg0Azp8/L5RCO3369Jo1a7Zv3z5q1KiZM2eKjor169f3799foVAIbzdv3vz666/L5XKLPW/fvn3YsGE6nW7evHlitceVK1fu378fACIiIjp16lTby3VTKA744osvTN1vixcvFm4xN1i+fPnw4cNbtGgxceLEXr16HTlyBAAOHz68bNkyocHNmzfnzp1rYYWrVKr33ntv+PDh48ePF6bw0tLSw4cPC399//33r169OmPGjDFjxoh3olqt3rhx45gxY4S306ZN++STTzp16mTRH7Vaffz48d69e//000/fffedsPHSpUvvv/8+x3EAMH78eHt+CHts2LDhmWeeGTNmjPjEf/ny5ZkzZ44dO/bLL78UwyWbN28eP378iBEj3nrrLZVKBQDr1q179NFH/fz8AEAikWzatGn27NlSqdRi/9u3b09LS9Nqte+8845SqRS/WGFN1Ojo6DZt2uzcudOlPlOqxOdGw8aNG6dMmSKVSmUy2XPPPbdx40brBv37909KSgKA6dOnHzx48O7du8Kfli9fHh8f37dvX1930nmio6O3bt166NAh4e2yZctu3bpl0Wb//v2LrVi7dq1Fs3bt2u3YsWPp0qWEkMmTJ2u1WsFkPnDgwMcffzx9+nQACAgI2LFjR8OGDa39cidOnIiLiwsICDDdeO/evcGDBw8aNGjOnDk9e/YU7sD9+/efPHkSAC5cuDB79uxDhw5Nnz5do9GMGzdO7PBDDz1U5bnv3LkzLS1NLpdHRESMGDFCq9Xu2bPngw8+EAeghx56aN++fVV/iRRK7aSkpOSTTz4RXl++fHn+/PmxsbGmDbKzs63v/cWLF4tjmjVqtfrChQutW7cGgK5duy5dunT9+vUcx40fPz4oKMjf39+08axZszIzM996663nnnvOYDAAwN27d8UnsaVLlz7//PMDBgwYPnz4s88+e/bsWQA4duxYkyZN7D2Oi+zbt693795yufyBBx6YM2fOgQMHysvLR40a1aRJE4lEAgDdu3c/c+aMvViANW+++eYnn3wycuTI6dOnC882mZmZPXr0aNGixbRp0zZv3jxz5kwA+PXXX99+++1nn3129uzZTZs2FSIgLo1Ifn5+ISEho0eP1uv1W7dunT9/fseOHYUGdETyBT4vI61UKgWDAACSk5NFe9C0QXJysvA6Ojo6MDDw5s2bkZGR2dnZn3/++bFjx1atWuXMgTDGwtQokJiYaF039IuL+LML7sgm5CycGi7xYwEApkyZ8s033/Tv35/juLVr1+7evduisUajsXCjAYDFzQ8AUqn0+++/7969+6VLl27fvv3DDz8I25988knTZhKJ5PXXX7f4bFZW1iuvvLJixQqL7Xfv3mUYpnPnzgkJCV26dLE+kfDw8C+++AIh1L59++joaI7jJBLJlStXXn75ZcffQGFh4bVr17p16wYAL7744pEjRyZPnnzw4MEdO3aI41F8fPzWrVsd74dCqRZulpF+P/MmAiEX+OQBZngzBgCee+65Fi1aLFmyJDQ0dPny5c8884zonxPgOM763gcAB2qtF198MTU1VYjABgYGbtiwYdCgQfv27QsODp49e7blWdy82bdv306dOrEsa3Mxnddff/3RRx8FgD179vz222/t2rW7evVqfHx8lecoTMAAEBUV9d13302YMKFHjx4dO3Z89tlnhQYBAQERERHXrl2r0v4AgNLS0v/973/ioXv37g0Ay5YtGzFixIsvvggACQkJiYmJ8+fPz8rKatiwYceOHcPCwrp37y58/MqVK/YCJSJ37tzJysoSRrlXX31VGJH27du3Z8+esLAwoU2zZs327t1bZW8pLuFzo0GlUonzpUKhKC0ttWhQVlbWqFEj8W1AQIDwfDxlypSPPvooNDTUmaNgjLVa7ZQpU8QtI0aMECId5eXloh9sakvm8abuLLOmkCDBYgCAZ5555t13383NzT127Fjjxo1Fq1akd+/eXbt2tdho7VsDgISEhBdffHHu3LknT54UIo7OkJOT069fv7feeku4yU1p2bLlpEmTOnTokJSUNGLEiNdee83CWElMTBQWmgsLC+M4TqVShYaG6vX6Ko++e/fuQYMGsazxW/j888/j4uKmTZsm3ucAIJfLTb2per3eQv9cXl5eB9brsw4J1UY0Go1UKhUeIk1hGMZiIqwbxAWiXx9nDa4/MiCApoHGizYmJmbgwIHff//9c889t27duj/++MOicaNGjWbMmGG9E3sT7ezZs8+dO3fw4EHxvujYseOoUaOWL1+uVCqtb5b33nvvueee+/TTTx955JFZs2Z16NDBooH4hBYeHi5kVej1epuDjyk8z+/fv3/JkiXC2759+/bs2XPPnj05OTmmzeRyuUUe1i+//PLf//4XANq3b28aes7IyAgODrYwVjIzM8VYc1xcXHBw8I0bN0aOHLl79+6mTZt27dp1woQJzzzzDELImRHpp59+evzxx4WvCCH0xRdfCMOp6cOSxYhE8Qo+Nxqio6NFPV1hYWFMTIxFg6ioKLEBIaSwsDA6Onrfvn0XLly4e/fuihUr/v7771u3bq1evVq0ea0RRrpTp05Z/4kQIk51chYSgjydtEJCQp544onvvvvu8OHDU6dOtW4wf/789evXW2xs1aqVEPs3JScn56uvvnrkkUfmz5+/ZcsWZ46en5/fr1+/yZMnm4o/TFmwYMEHH3zw66+/zps3T6VSLViwwPSvNufshg0bOnCfCuzcufPpp58W37799tt9+vTZunXr7NmzxWeC/Px8U2+tTCYLDAw03QkhxGJLLaUOnAXLsjaNhjpMkwAvGKzTp09/+eWXGzRokJqampKSYvHX06dPP/HEE9afOnDgQMuWLS02/ve//z1w4MDhw4cbNGggbrx8+fKWLVsefPDBhQsXfvHFFxYf6dat24ULFzIzM9esWdO3b9+8vDyLBtY3uDN399GjR1NSUsQntPT09N9++61t27ZLly595513hI2EkLt375o+4AFAz549hbHOwtCMiIgoLS3V6XSm0qiwsDAxuqHT6VQqVXh4eEBAwJYtW1Qq1e7du19//fXQ0NBhw4Y5OSIJMVyBOXPm9OvXb9OmTbNmzWrSpImw8c6dOxbxI4rn+FzT0L59+7///lt4nZ6e3r59e+sG6enpwuszZ874+fnFx8eHhYU9+uijJ0+ePHny5O3bt0tKSs6cOePrrjrP888/v3Tp0uPHj48dO9b6rwsWLLhlhbXFgDGeOHHi888/v2vXroyMDFEA5YC7d+/269fv0UcfnTZtWlFRUVFRkYXbMy8vLysrSyqVPvLIIw8//HBhYaEzp9OjRw9Te6u0tLSoqIgQolKphEPodLqjR4/2799faLBp06Y///xz27Zt//nPf8aMGSMmYp0+fbpHjx7OHJFCqaX07t2b47g5c+bYfGDo2rWr9b1/69Yta4vh/fff37Rp0+bNmxFCRUVFwgOxVqsdN27cRx99tGPHjj179mzfvt3iU//88w/GOCEhYdq0aWVlZYKswTE9evQ4d+6cOFDodLqioiKtVqvX64uKioTqC2JsAgCKi4uffPLJr7/+euvWrV999ZWosrx69apCoRBDyQJBQUEtWrRo0aKFOE8LNG7cuEuXLu+++64g9BaEX4MHD163bp2Qs71kyZLU1NQmTZpcvXq1pKQkKCho7NixycnJwpDVs2dP0xGppKTEYkRSq9Xp6eligGblypVnz57dsWPHSy+9NHr0aPFroSOSTyA+Zv/+/REREXv37v3555/Dw8OPHDkibBdsBUJIWVlZVFTUwoULjx8/3qtXr9dee81iD5988smjjz7q+CilpaVBQUHW28sMJO0X7WOPP757925vnE0lHTp0mD59uid7+N///jdo0CCO4wghV65ciY+Pv3LliuOP/Pjjj6HmZGZmmjY4ffp0fHx8QkJCcnJyt27dlEolIeSll1768ssvCSE//PDDmDFjxMahoaHCrXj69OmUlBRxe/fu3U0PkZGRsXv37rS0NOGvN27cSEhIOHfuHCEEYzxs2LAPP/yQEMLzfNOmTf/991+h2RtvvLFgwQKL/peWlrrxRdU0VCpVdXfBC6jVaoPBUN298A5paWk7duyw3l5aWrpx48axY8d693CffvppRESEVqv1ZCcJCQmmd9mcOXMIIW+88caECROEBn/99VdSUlJubq7pp8aMGRMVFZWamtq4ceOvv/6aEHLhwoW2bduK+xQHhDfffHPhwoXC6549ex46dEh4vXr1atPjvv7664SQ5ORk8YOTJ09+9dVXhdd79uxp06ZNcXExIWTBggUvv/yy8yeoVCr79+8fGxubkJAwYMAAYeO7774bExPTrFmzLl26XLp0iRCybt26mJiYVq1aNW7cePTo0Wq1mhDy559/dujQQdxVp06dTPt88+ZNIQVM+Ov169fj4+MvXrxICOF5fvDgwcKJcxwXGxt748YNodlrr7326aefOt9/m3AcJ/SwtuPJUOxzo4EQIuRHDBgwYMuWLeLGyZMnCxcNIeT8+fOjR4/u0aPHO++8Y30r7t+///PPP3d8CHtGAyGk6zZtt36PeddoUKlUUVFRZ8+e9eI+vUh5ebmrV3b//v1Fe86aKVOmrFq1yvEeduzYMXLkSPEtNRpqONRocJspU6bMnj3bu/t0Ho7jBFvfeXbt2jVixAh7fz1//nz79u0d78FgMKSkpFg8ojiDVqu1GIswxuXl5RbNSkpK9Hq96ZaHH3742LFj9nb7zDPPfP/9944PvXnz5nHjxolvqdFgiidD8f2IaI4dO9bajW+qmmnTpo2YO2DNgAEDBgwY4PbRX23FzfaqcG3r1q3Lli176KGH2rZt6839eg83hGz/93//J9RysIl1moY1hBAxG41CqZNcuXJl2bJl27dvF7IZqwWWZa3z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", "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "text/html": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f(x) = x == 0 ? 0 : x^2*sin(1/x)\n", "g(x) = x == 0 ? 0 : 2x*sin(1/x) - cos(1/x)\n", "\n", "p1 = plot(size=(400, 250), xlabel=\"x\", ylabel=\"y\", legend=:topleft)\n", "plot!(f, -0.2, 0.2, ylims=(-0.05, 0.05), label=\"y = x^2 sin(1/x)\")\n", "\n", "p2 = plot(size=(400, 250), xlabel=\"x\", ylabel=\"y\", legend=:topleft)\n", "plot!(g, -0.2, 0.2, ylims=(-1.1, 2.0), label=\"y = 2x sin(1/x) - cos(1/x)\")\n", "\n", "plot(p1, p2, size=(700, 250))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 微分商の記号法について" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 微分商は真の分数商ではないという誤解について\n", "\n", "微分可能函数 $y = f(x)$ の導函数を\n", "\n", "$$\n", "\\frac{dy}{dx} = \\frac{df(x)}{dx} = f'(x)\n", "$$\n", "\n", "など色々な記号で書くことがある. そのときに, \n", "\n", ">$\\ds \\frac{dy}{dx}$ は分数ではない.\n", "\n", ">$\\ds\\frac{dy}{dx}$ は正確には $dy\\div dx$ を意味しない.\n", "\n", "などと**困ったこと**をいう人達が存在する. \n", "\n", "実際には適切に $dy$, $df(x)$, $dx$ などの記号を定義することによって, $\\ds\\frac{dy}{dx}=\\frac{df(x)}{dx}$ を一切の誤差がない正確な分数を意味するとみなすこともできる. そのスタイルは現代的な微分形式の定義にも繋がる話でもあるので, 「分数ではない」などと誤解したままにしておくことはもったいないことである.\n", "\n", "例えば, 高木貞治著『解析概論』の第13節の最後(p.37)には次のように書いてある:\n", "\n", ">~, 記号 $\\ds\\frac{dy}{dx}$ において $dx$ および $dy$ が各々独立の意味を有するから, $\\ds\\frac{dy}{dx}$ は商としての意味を有する. すなわち‘微分商’というものである.\n", "\n", "> このように, 現代的の精密論法によって, Leibnizの漠然たる‘微分商’が合理化される. ~\n", "\n", "もちろん, 高木貞治が正しい." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 微分商の正当化\n", "\n", "$y = f(x)$ は微分可能であるとし, $x$ を任意に固定しておく.\n", "\n", "$y = f(x)$ は $x$ で微分可能なので, ある数 $f'(x)$ が存在して, \n", "\n", "$$\n", "f(x+h) = f(x) + f'(x) h + o(h)\n", "$$\n", "\n", "が成立している. $h$ を \n", "\n", "$$\n", "h = dx = \\varDelta x\n", "$$\n", "\n", "と書くことにし, \n", "\n", "$$\n", "\\varDelta y = \\varDelta f(x) = f(x+\\varDelta x)-f(x), \\quad\n", "dy = df(x) = f'(x)\\,dx\n", "$$\n", "\n", "とおく. このとき,\n", "\n", "$$\n", "\\varDelta y = dy + o(\\varDelta x), \\quad\n", "\\varDelta f(x) = f(x+dx) - f(x) = df(x) + o(dx).\n", "$$\n", "\n", "$\\varDelta y=\\varDelta f(x)$ と $dy=df(x)$ の定義の違いに注意せよ. それらは $\\varDelta x=dx$ よりも高次の微小量 $o(\\varDelta)=o(dx)$ の分だけ違う. このように定義しておけば, 自明に真の分数商として,\n", "\n", "$$\n", "\\frac{dy}{dx} = \\frac{df(x)}{dx} = f'(x)\n", "$$\n", "\n", "が成立している. このような「みもふたもない方法」によって $dy$ や $df(x)$ のような量を定義することは現代数学の特徴の一つでもある. $dx$ や $dy=df(x)$ は「微小」である必要はまったくない. 例えば $dx=100$ であっても構わない." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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dRS/NXr0aGw2W4FbeHi41bH82v79++nevTsVKlSgdOnSNG3alI0bN1ody6upmCmi5ORkYmNjSUlJYfXq1Zw9e5YOHTqQk5NjdTS/VL16dV5//XV++uknfvrpJ+69914efvhhfv31V6uj+b0NGzYwffp0GjdubHUUvxcTE8OBAwfct82bN1sdyW8dP36cO++8k6CgIJYvX87WrVt56623uPnmm62O5tV8fjuD623FihUFHr///vtUrlyZjRs30rZtW4tS+a9OnToVeDxmzBimTp1KSkoKMTExFqWSU6dO0a1bN2bMmEFiYqLVcfxeYGCgWmM8xLhx44iIiOD99993P1ezZk3rAvkItcxco6ysLADKly9vcRLJz89n/vz55OTk0KpVK6vj+LXY2Fg6duxI+/btrY4iwM6dO6lWrRpRUVF07dqV1NRUqyP5rS+//JLmzZvz+OOPU7lyZZo1a8aMGTOsjuX1VMxcA2MMgwcPpk2bNjRs2NDqOH5r8+bNlClThpCQEPr168fChQuJjo62Opbfmj9/Phs3bsRut1sdRYA77riD2bNns3LlSmbMmMHBgwdp3bo1R48etTqaX0pNTWXq1KnUqVOHlStX0q9fPwYMGMDs2bOtjubVtALwNYiNjWXp0qV8++23xb4zt1xabm4uaWlpnDhxgs8++4yZM2eSnJysgsYC6enpNG/enFWrVtGkSRMA2rVrR9OmTUlKSrI2nACQk5NDrVq1GDp0KIMHD7Y6jt8JDg6mefPmrF+/3v3cgAED2LBhA99//72FybybWmauUlxcHF9++SVr1qxRIWOx4OBgateuTfPmzbHb7TRp0oSJEydaHcsvbdy4kcOHD3P77bcTGBhIYGAgycnJTJo0icDAQPLz862O6PdCQ0Np1KgRO3futDqKX6pateoF/9Bq0KABaWlpFiXyDRoAXETGGOLi4li4cCFr164lKirK6kjyJ8YYHA6H1TH80l/+8pcLZsr06tWL+vXr8/e//50SJUpYlEzOcTgcbNu2jbvuusvqKH7pzjvvvGA5j99++43IyEiLEvkGFTNFFBsby9y5c1m0aBFhYWEcPHgQgLJly1KqVCmL0/mf+Ph4HnjgASIiIsjOzmb+/PmsXbv2gllncmOEhYVdMH4sNDSUChUqaFyZRYYMGUKnTp2oUaMGhw8fJjExkZMnT/L0009bHc0vvfjii7Ru3ZqxY8fSuXNnfvzxR6ZPn8706dOtjubVVMwU0dSpUwHXOIDzvf/++/Ts2fPGB/Jzhw4dokePHhw4cICyZcvSuHFjVqxYwX333Wd1NBGPsG/fPp544gkyMzOpVKkSLVu2JCUlRS0BFmnRogULFy5k+PDhvPbaa0RFRZGUlES3bt2sjubVNABYREREvJoGAIuIiIhXUzEjIiIiXk3FjIiIiHg1FTMiIiLi1VTMiIiIiFdTMSMiIiJeTcWMiIiIeDUVMyIiIuLVVMyIiFeqWbMmNputwG306NFWxxIRC2gFYBHxSt9++y1du3alffv2dO7cmTp16hAeHk5YWJjV0UTkBlMxIyJe6a9//SvNmjXDbrdbHUVELKZuJhHxSnv37qVVq1ZWxxARD6BiRkS80p133smrr77K2rVr+f33362OIyIWUjEjIl5p0qRJ1K5dm3vuuYfQ0FBatGhhdSQRsUig1QFERK7GyJEjWbVqFa+99hpt27bllltusTqSiFhEA4BFxOukpqZSq1YtVqxYwf333291HBGxmLqZRMTrZGZmAhAVFWVxEhHxBGqZERGvk5ubS7169QgPD2fUqFHUq1eP6tWrExwcbHU0EbGAWmZExOsEBweTnJxM/fr16du3L/Xq1SMsLIwZM2ZYHU1ELKCWGRHxCRMmTGDs2LHuLigR8R9qmRERr+dwODh69CilS5e2OoqIWEDFjIh4vS1btjB37lymTZtmdRQRsYC6mURERMSrqWVGREREvJqKGREREfFqKmZERETEq6mYEREREa+mYkZERES8mooZERER8WoqZkRERMSrqZgRERERr/Z/0+7Tb1mrKlMAAAAASUVORK5CYII=", "text/plain": [ "PyPlot.Figure(PyObject
)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f(x) = x^2\n", "df(x,dx) = 2x*dx\n", "g(x,ξ) = f(x) + df(x, ξ-x) \n", "x = 3\n", "dx = 2\n", "ξ = 2:0.01:6.5\n", "\n", "P = plt.figure(figsize=(6.4,6))\n", "plt.ylim(minimum(g.(x, ξ)), 40)\n", "plt.xlabel(\"ξ\")\n", "plt.ylabel(\"y\")\n", "plt.plot(ξ, f.(ξ), label=\"y = f(ξ)\", color=\"black\")\n", "plt.plot(ξ, g.(x, ξ), label=\"y = f(x) + f'(x)(ξ-x)\", color=\"blue\")\n", "plt.plot([x, x], [minimum(g.(x, ξ)), f(x)], label=\"ξ = x\", color=\"gray\", ls=\"dashed\")\n", "plt.plot([x+dx, x+dx], [minimum(g.(x, ξ)), f(x+dx)], color=\"lightgrey\", ls=\"dotted\")\n", "plt.plot([x+dx, x+dx], [f(x), g(x,x+dx)], label=\"ξ = x + dx\", color=\"orange\", ls=\"dotted\")\n", "plt.plot([minimum(ξ), maximum(ξ)], [f(x), f(x)], color=\"gray\", ls=\"dotted\")\n", "plt.plot([x, x+dx], [f(x), f(x)], label=\"y = f(x)\", color=\"red\", ls=\"dotted\")\n", "plt.plot([minimum(ξ), maximum(ξ)], [f(x+dx), f(x+dx)], label=\"y = f(x+dx)\", color=\"black\", ls=\"dotted\")\n", "plt.plot([minimum(ξ), maximum(ξ)], [g(x,x+dx), g(x,x+dx)], label=\"y = f(x) + df(x)dx\", color=\"blue\", ls=\"dotted\")\n", "plt.text(2.8, 5, \"x\")\n", "plt.text(5.1, 5, \"x + dx\")\n", "plt.text(2.5, 10, \"y\")\n", "plt.text(3.8, 22, \"y + dy\", color=\"blue\")\n", "plt.text(3.8, 26, \"y + Δy\", color=\"black\")\n", "plt.text(5, 33, \"y = f(ξ)\", color=\"black\")\n", "plt.text(5.8, 30.5, \"tangent line\", color=\"blue\")\n", "plt.annotate(\"dx\", xy=(3.01, 8), xytext=(3.9, 7.5), arrowprops=Dict(\"arrowstyle\" => \"->\"))\n", "plt.annotate(\"\", xy=(4.99, 8), xytext=(4.1, 8), arrowprops=Dict(\"arrowstyle\" => \"->\"))\n", "plt.annotate(\"dy\", xy=(5.1, 9.01), xytext=(5.01, 15), arrowprops=Dict(\"arrowstyle\" => \"->\"))\n", "plt.annotate(\"\", xy=(5.1, 21), xytext=(5.1, 16), arrowprops=Dict(\"arrowstyle\" => \"->\"))\n", "plt.annotate(\"Δy\", xy=(5.4, 9.01), xytext=(5.31, 15), arrowprops=Dict(\"arrowstyle\" => \"->\"))\n", "plt.annotate(\"\", xy=(5.4, 25), xytext=(5.4, 16), arrowprops=Dict(\"arrowstyle\" => \"->\"))\n", "plt.text(2, 38, \"Δy = f(x+Δx) - f(x), Δx = dx\")\n", "plt.text(2, 34, \"tangent line: y = f(x) + f'(x)(ξ - x)\", color=\"blue\")\n", "plt.text(2, 32, \" dy = f'(x)dx, dy/dx = f'(x)\", color=\"blue\")\n", "#plt.legend()\n", "#display(P)\n", ";" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 微分の基本性質" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Leibnitz則\n", "\n", "微分可能な函数 $f(x)$, $g(x)$ の積 $h(x)=f(x)g(x)$ も微分可能であり, \n", "\n", "$$\n", "h'(x) = f'(x) g(x) + f(x) g'(x).\n", "$$\n", "\n", "**証明:** $f,g$ は微分可能なので, \n", "\n", "$$\n", "\\begin{aligned}\n", "&\n", "f(x+h) = f(x) + f'(x)h + \\eps(h)h, \\qquad \\eps(h)\\to 0 \\quad (h\\to 0),\n", "\\\\ &\n", "g(x+h) = g(x) + g'(x)h + \\delta(h)h, \\qquad \\delta(h)\\to 0 \\quad (h\\to 0)\n", "\\end{aligned}\n", "$$\n", "\n", "と書ける. ゆえに\n", "\n", "$$\n", "\\begin{aligned}\n", "&\n", "h(x+h) = f(x+h)g(x+h) = f(x)g(x) + (f'(x)g(x)+f(x)g'(x))h + \\eta(h)h,\n", "\\\\ &\n", "\\eta(h) = f'(x)g'(x)h + (f(x)+f'(x)h)\\delta(h) + (g(x)+g'(x)h)\\eps(h) + \\eps(h)\\delta(h)h\n", "\\end{aligned}\n", "$$\n", "\n", "となることを確認できる. そして, $h\\to 0$ のとき $\\eta(h)\\to 0$ なので, $h$ も微分可能で $h'(x)=f'(x)g(x)+f(x)g'(x)$ となることがわかる. $\\QED$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**問題:** 部分可能な函数 $f,g$ について\n", "\n", "$$\n", "\\left(\\frac{d}{dx}\\right)^n(f(x)g(x))\n", "=\\sum_{k=0}^n \\binom{n}{k} f^{(n-k)}(x) g^{(k)}(x)\n", "$$\n", "\n", "となることを示せ.\n", "\n", "**解法1:** $n$ に関する帰納法. $n=0$ のとき\n", "\n", "$$\n", "(fg)^{(0)} = fg = \\sum_{k=0}^0\\binom{0}{k}f^{(0-k)}g^{(k)}.\n", "$$\n", "\n", "$n=1$ のとき\n", "\n", "$$\n", "(fg)' = f'g+fg' = \\sum_{k=0}^1\\binom{1}{k}f^{(1-k)}g^{(k)}.\n", "$$\n", "\n", "$n=2$ のとき\n", "\n", "$$\n", "\\begin{aligned}\n", "(fg)'' &= (f'g+fg')' \n", "\\\\ &= f''g + f'g' + f'g' + fg'' \n", "\\\\ &= f''g + 2f'g' + fg'' =\n", "\\sum_{k=0}^2\\binom{2}{k}f^{(2-k)}g^{(k)}.\n", "\\end{aligned}\n", "$$\n", "\n", "$n=3$ のとき\n", "\n", "$$\n", "\\begin{aligned}\n", "(fg)''' &= (f''g + 2f'g' + fg'')' \n", "\\\\ &=\n", "f'''g + f''g' + 2f''g' + 2f'g'' + f'g'' + fg''' \n", "\\\\ &=\n", "f'''g + 3f''g' + 3f'g'' + fg''' =\n", "\\sum_{k=0}^3\\binom{3}{k}f^{(3-k)}g^{(k)}.\n", "\\end{aligned}\n", "$$\n", "\n", "$n=4$ のとき\n", "\n", "$$\n", "\\begin{aligned}\n", "(fg)''' &= (f'''g + 3f''g' + 3f'g'' + fg''')' \n", "\\\\ &=\n", "f''''g + f'''g' + 3f'''g' + 3f''g'' + 3f''g'' + 3f'g''' + f'g''' + fg''''\n", "\\\\ &=\n", "f''''g + 4f'''g' + 6f''g'' + 4f'g''' + fg'''' =\n", "\\sum_{k=0}^4\\binom{4}{k}f^{(4-k)}g^{(k)}.\n", "\\end{aligned}\n", "$$\n", "\n", "$n$ の場合に成立しているならば, $\\ds\\binom{n}{k-1}+\\binom{n}{k} = \\binom{n+1}{k}$ より, \n", "\n", "$$\n", "\\begin{aligned}\n", "(fg)^{(n+1)} &= \\left(\\sum_{k=0}^n \\binom{n}{k} f^{(n-k)} g^{(k)}\\right)' \n", "\\\\ &=\n", "\\sum_{k=0}^n \\binom{n}{k} f^{(n-k+1)} g^{(k)} + \\sum_{k=0}^n \\binom{n}{k} f^{(n-k)} g^{(k+1)}\n", "\\\\ &=\n", "\\sum_{k=0}^n \\binom{n}{k} f^{(n-k+1)} g^{(k)} + \\sum_{k=1}^{n+1} \\binom{n}{k-1} f^{(n+1-k)} g^{(k)}\n", "\\\\ &=\n", "\\sum_{k=0}^{n+1}\\binom{n+1}{k}f^{(n+1-k)}g^{(k)}.\n", "\\end{aligned}\n", "$$\n", "\n", "と $n+1$ の場合も成立している. $\\QED$\n", "\n", "**解法2:** 二項定理より, \n", "\n", "$$\n", "\\left(\\frac{\\partial}{\\partial x}+\\frac{\\partial}{\\partial y}\\right)^n\n", "= \\sum_{k=0}^n \\binom{n}{k}\n", "\\left(\\frac{\\partial}{\\partial x}\\right)^{n-k} \n", "\\left(\\frac{\\partial}{\\partial y}\\right)^k \n", "$$\n", "\n", "なので, これを $f(x)g(y)$ に作用させると, \n", "\n", "$$\n", "\\left(\\frac{\\partial}{\\partial x}+\\frac{\\partial}{\\partial y}\\right)^n(f(x)g(y))\n", "=\\sum_{k=0}^n \\binom{n}{k} f^{(n-k)}(x) g^{(k)}(y).\n", "$$\n", "\n", "以上において $y=x$ と置けば欲しい結果が得られる. $\\QED$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 合成函数の微分則\n", "\n", "微分可能な函数 $f(y)$, $g(x)$ の合成 $h(x)=f(g(x))$ も微分可能であり,\n", "\n", "$$\n", "h'(x) = f'(g(x))g'(x).\n", "$$\n", "\n", "**証明:** $f,g$ は微分可能なので, \n", "\n", "$$\n", "\\begin{aligned}\n", "&\n", "f(y+k) = f(y) + f'(y)k + \\eps(k)k, \\qquad \\eps(k)\\to 0 \\quad (k\\to 0),\n", "\\\\ &\n", "g(x+h) = g(x) + g'(x)h + \\delta(h)h, \\qquad \\delta(h)\\to 0 \\quad (h\\to 0)\n", "\\end{aligned}\n", "$$\n", "\n", "と書ける. ゆえに $y = g(x)$, $k = g'(x)h + \\delta(h)h$ とおくと, $h\\to 0$ のとき $k\\to 0$ であり,\n", "\n", "$$\n", "\\begin{aligned}\n", "&\n", "h(x+h) = f(g(x+h)) = f(y+k) = f(g(x)) + f'(g(x))g'(x)h + \\eta(h)h, \n", "\\\\ &\n", "\\eta(h) = f'(g(x))\\delta(h) + \\eps(k)(g'(x) + \\delta(h))\n", "\\end{aligned}\n", "$$\n", "\n", "であり, $h\\to 0$ のとき $\\eta(h)\\to 0$ となるので, $h$ も微分可能でかつ $h'(x)=f'(g(x))g'(x)$ となることがわかる. $\\QED$\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 平均値の定理" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Rolleの定理\n", "\n", "**Rolleの定理:** $a\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "text/html": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f(x) = 2 - 3x + x^2\n", "g(x) = x - 2\n", "x = 0.9:0.05:3.1\n", "plot(size=(500,350))\n", "plot!(legend=:topleft)\n", "plot!(x, f.(x), label=\"y = f(x)\")\n", "plot!([1,3], [f(1), f(3)], label=\"straight line from (a,f(a)) to (b,f(b))\")\n", "plot!([1,3], [g(1), g(3)], ls=:dash, label=\"parallel tangent line\")\n", "plot!([2,2], [-1,0], ls=:dash, label=\"x = xi\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**平均値の定理の不等式版:** $f$ は微分可能函数であるとし, $a積分」の対応する節を参照せよ.\n", "\n", "**注意:** 解析学ユーザー的には $C^1$ 級まで条件を強めても困ることはない. 多くの議論を微分可能性の仮定だけで実行可能なのだが, 導函数が連続函数になるとは限らないので, 議論が技巧的になってしまう傾向がある. そうなることを避けたければ $C^1$ 級まで仮定を強めた方がよい. その場合に利用できる平均値の定理の積分版の式は積分について知っている人ならばみんな知っている公式に過ぎない. $\\QED$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**平均値の定理の不等式版:** $f$ は $C^1$ 級函数であるとし, $a\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "text/html": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 中間値の定理の証明に使われる二分法の函数としての実装\n", "function bisection(f, a, b; atol=eps(), maxiter=10^3)\n", " f(a)*f(b) > 0 && return NaN\n", " aₙ, bₙ = a, b\n", " k = 0\n", " while abs(aₙ - bₙ) > atol\n", " k > maxiter && return NaN\n", " c = (aₙ+bₙ)/2\n", " if f(bₙ)*f(c) ≥ 0\n", " aₙ, bₙ = aₙ, c\n", " else\n", " aₙ, bₙ = c, bₙ\n", " end\n", " k += 1\n", " end\n", " return (aₙ+bₙ)/2\n", "end\n", "\n", "# 中間値の定理から導かれる補題を次の g(x) と a,b に適用してみる.\n", "g(x) = 5 + x + 2sin(x)\n", "a, b = -3, 5\n", "x = a:0.05:b\n", "\n", "t = symbols(\"t\", real=true)\n", "@show g(t)\n", "@show S = integrate(g(t), (t,a,b))\n", "@show S = N(S)\n", "\n", "h(x) = g(x) - S/(b-a)\n", "@show h(t)\n", "@show c = bisection(h, a, b)\n", "\n", "plot(size=(400,250), legend=:topleft)\n", "plot!(xlims=(a-0.5, b+0.5), lims=(0,9))\n", "plot!(x, g.(x), label=\"int_a^b g(t) dt\", fill=(0, 0.2))\n", "plot!([c,c], [0,g(c)], ls=:dash, label=\"x = c\")\n", "plot!(x, fill(g(c), length(x)), fill=(g, 0.5), color=:pink, label=\"\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Cauchyの平均値の定理\n", "\n", "**Cauchyの平均値の定理:** $f(t)$, $g(t)$ は微分可能函数であるとし, $a\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "text/html": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f(t) = t/2\n", "g(t) = 2 - 3t/2 + t^2/4\n", "h(x) = x - 2\n", "t = 1.8:0.05:6.2\n", "plot(size=(500,350))\n", "plot!(legend=:topleft)\n", "scatter!([f(2)], [g(2)], markersize=3, label=\"(f(a),g(a))\")\n", "scatter!([f(6)], [g(6)], markersize=3, label=\"(f(b),g(b))\")\n", "plot!(f.(t), g.(t), label=\"(f(t),g(t))\")\n", "plot!([f(2),f(6)], [g(2), g(6)], label=\"\")\n", "plot!([1,3], [h(1), h(3)], ls=:dash, label=\"\")\n", "scatter!([f(4)], [g(4)], markersize=3, label=\"(f(c),g(c))\")\n", "plot!([2,2.5], [h(2), h(2.5)], line=:arrow, lw=2, label=\"velocity vector (f'(c),g'(c))\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 極限の微分・積分の順序交換\n", "\n", "一様収束極限と積分の順序交換が可能であることの証明は易しい. その易しい積分の場合の結果を使って, ある適切な条件を満たす極限と微分の交換可能性を証明しよう.\n", "\n", "**注意:** 計算するときに極限の交換の条件を気にし過ぎて, 必要な計算をできなくなったりしないように注意して欲しい. 極限の順序交換の議論に慣れてくれば, ノータイムで極限の順序交換を論理的に正当化できる場合が増える. そういうやり方に慣れていない段階で「極限の順序交換をしてよいのかどうか気になって計算を先に進められない」ということになるのは非常にまずい. 極限の順序交換を気にせずに, 非常に複雑な微積分の計算をスムーズに行う能力も重要である. 複雑な計算を最後までやり遂げて, 論理的に厳密な正当化を行う価値があることが判明してから, 極限の順序交換に関する細かい議論を行っても遅くない. $\\QED$ \n", "\n", "**余談:** 筆者は学生時代に複数の解析学が専門の数学者達から「計算するときには極限の順序交換の正当化については気にするべきではない」と教わった. $\\QED$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 極限と積分の順序交換\n", "\n", "**定理:** $a連続函数」で $f$ も連続函数になることはすでに示してある. そして, 閉区間 $[a,b]$ 上のsupノルム $\\ds\\|g\\|_\\infty=\\sup_{x\\in[a,b]}|g(x)|$ について\n", "\n", "$$\n", "\\|f_n(x)-f(x)\\|_\\infty \\leqq \\|f_n-f\\|_\\infty \\quad (x\\in[a,b])\n", "$$\n", "\n", "であり, $f_n$ が $f$ に一様収束することと $\\|f_n(x)-f(x)\\|_\\infty\\to 0$ は同値なので, \n", "\n", "$$\n", "\\begin{aligned}\n", "\\left|\\int_a^b f_n(x)\\,dx - \\int_a^b f(x)\\,dx\\right| &=\n", "\\left|\\int_a^b (f_n(x)-f(x))\\,dx\\right| \\leqq\n", "\\int_a^b |f_n(x)-f(x)|\\,dx \n", "\\\\ &\\leqq\n", "(b-a)\\|f_n(x)-f(x)\\|_\\infty \\to 0 \\quad(n\\to\\infty).\n", "\\end{aligned}\n", "$$\n", "\n", "これで, $\\ds\\lim_{n\\to\\infty}\\int_a^b f_n(x)\\,dx = \\int_a^b f(x)\\,dx$ が示された." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 極限と微分の順序交換\n", "\n", "**定理(極限と微分の順序交換):** $a0$ を任意に取る.\n", "\n", "$f_n'$ は $I$ 上で $g$ に一様収束するので, ある番号 $N$ が存在して, $m,n\\geqq N$ ならば任意の $\\xi\\in I$ について\n", "\n", "$$\n", "|f_n'(\\xi) - g(\\xi)| < \\frac{\\eps}{4}, \\quad\n", "|f_m'(\\xi) - f_n'(\\xi)| \\leqq |f_m'(\\xi) - g(\\xi)|+|g(\\xi)-f_n'(\\xi)|< \\frac{\\eps}{2}.\n", "$$\n", "\n", "$f_n$ は $C^1$ 級なので\n", "\n", "$$\n", "f_n(x+h)-f_n(x)=\n", "\\int_x^{x+h} f_n'(\\xi)\\,\\xi =\n", "\\int_0^1 f_n'(x+ht)\\,dt\n", "$$\n", "\n", "となるので, $m,n\\geqq N$ のとき, \n", "\n", "$$\n", "\\begin{aligned}\n", "|f_m(x+h)-f_m(x) - (f_n(x+h)-f_n(x))| &=\n", "\\left|\\int_0^1 (f_m'(x+ht)-f_n'(x+ht))\\,dt\\right|\n", "\\\\ &\\leqq\n", "|h|\\sup_{0\\leqq t\\leqq 1}|f_m'(x+ht)-f_n'(x+ht)| \\leqq\n", "|h|\\frac{\\eps}{2}.\n", "\\end{aligned}\n", "$$\n", "\n", "$m\\to\\infty$ とすると, $n\\geqq N$ のとき, \n", "\n", "$$\n", "|f(x+h)-f(x)-(f_n(x+h)-f_n(x))| \\leqq |h|\\frac{\\eps}{2}.\n", "$$\n", "\n", "以下, $n\\geqq N$ と仮定する. $f_n$ は $C^1$ 級函数なので, ある $\\delta>0$ が存在して, $|h|<\\delta$ ならば\n", "\n", "$$\n", "|f_n'(x+ht)-f_n'(x)|<\\frac{\\eps}{4} \\quad(0\\leqq t\\leqq 1)\n", "$$\n", "\n", "となり, \n", "\n", "$$\n", "\\begin{aligned}\n", "|f_n(x+h)-f_n(x)-f_n'(x)h|&=\n", "\\left|h\\int_0^1(f_n'(x+ht)-f_n'(x))\\,dt\\right|\n", "\\\\ &\\leqq\n", "|h|\\sup_{0\\leqq t\\leqq 1}|f_n'(x+ht)-f_n'(x)| \\leqq\n", "|h|\\frac{\\eps}{4}.\n", "\\end{aligned}\n", "$$\n", "\n", "したがって, $|h|<\\delta$ のとき,\n", "\n", "$$\n", "\\begin{aligned}\n", "&\n", "|f(x+h)-f(x)-g(x)h| \n", "\\\\ &\\leqq \n", "|f(x+h)-f(x)-(f_n(x+h)-f_n(x))| + |f_n(x+h)-f_n(x)-f_n'(x)h| + |f_n'(x)-g(x)||h|\n", "\\\\ &\\leqq\n", "|h|\\frac{\\eps}{2}+|h|\\frac{\\eps}{4}+|h|\\frac{\\eps}{4} = |h|\\eps.\n", "\\end{aligned}\n", "$$\n", "\n", "これで, $f$ は微分可能であり, $f'=g$ となることが示された. $\\QED$\n", "\n", "以上の別証明については, ラング『現代の解析学』(共立出版, 1981)の第5章§9を参考にした." ] } ], "metadata": { "@webio": { "lastCommId": null, "lastKernelId": null }, "_draft": { "nbviewer_url": "https://gist.github.com/0169cb0d72844973933096a796bf1f75" }, "gist": { "data": { "description": "05 differentiable functions", "public": true }, "id": "0169cb0d72844973933096a796bf1f75" }, "jupytext": { "formats": "ipynb,md" }, "kernelspec": { "display_name": "Julia 1.9.1", "language": "julia", "name": "julia-1.9" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.9.1" }, "toc": { "base_numbering": 1, "nav_menu": { "height": "207px", "width": "242px" }, "number_sections": true, "sideBar": true, "skip_h1_title": true, "title_cell": "目次", "title_sidebar": "目次", "toc_cell": true, "toc_position": { "height": "calc(100% - 180px)", "left": "10px", "top": "150px", "width": "214px" }, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }