Skip to content

Instantly share code, notes, and snippets.

@genkuroki
Last active January 7, 2018 14:30
Show Gist options
  • Save genkuroki/7716090b79e0281d46a3ca3d284fc93e to your computer and use it in GitHub Desktop.
Save genkuroki/7716090b79e0281d46a3ca3d284fc93e to your computer and use it in GitHub Desktop.
定数を含む函数と函数的オブジェクト
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"source": "# 定数を含む函数と函数的オブジェクト\n\n黒木玄\n\n2018-01-04\n\n大域変数を含む函数と定数を含む函数と函数的オブジェクトの比較をしてみる. 函数的オブジェクトについては\n\nhttps://docs.julialang.org/en/stable/manual/methods/#Function-like-objects-1\n\nを参照せよ.\n\n標準正規分布の確率密度函数の逆数を $w(x)$ と書き, 標準正規分布のサンプルを $x_1,\\ldots,x_n$ と書く. このとき, 函数 $f(x)$ の重み付き Monte Carlo 積分が\n\n$$\n\\frac{1}{N}\\sum_{i=1}^N w(x_i)f(x_i)\n$$\n\nによって定義される. これの計算で上記の比較を実行してみよう."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "using PyPlot\n\n# plotcomparison(mcint) は1変数函数 f(x) を積分する函数 mcint(f) を与えると\n#\n# f(x) = exp(-x^2/a)\n#\n# の積分を mcint(f) で計算した結果とexactな値 sqrt(a*π) を比較するための\n# グラフを表示してくれる.\n#\nfunction plotcomparison(mcint)\n as = logspace(-1, 1, 10^6)\n f(x) = exp(-x^2/a)\n @time s_mcint = [mcint(x->exp(-x^2/a)) for a in as]\n s_exact = [sqrt(a*π) for a in as]\n\n sleep(0.1)\n figure(figsize=(5,3.5))\n plot(as, s_mcint, label=\"MC integration\")\n plot(as, s_exact, label=\"exact value\", ls=\"--\")\n xscale(\"log\")\n grid()\n legend()\nend\n\n# 標準正規分布の sample を標準正規分布の確率密度函数の値の逆数に変換する函数\n#\nsample2weight(sample) = 1 ./ (x -> exp(-x^2/2)/sqrt(2π)).(sample)",
"execution_count": 1,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 1,
"data": {
"text/plain": "sample2weight (generic function with 1 method)"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 大域変数達\n\nsrand(2018)\nN = 2^6\nsample = randn(N)\nweight = sample2weight(sample);",
"execution_count": 2,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 大域変数を含む函数は遅い.\n\nmcint_naive(f) = mean(weight .* f.(sample))\nplotcomparison(mcint_naive);",
"execution_count": 3,
"outputs": [
{
"output_type": "stream",
"text": " 11.355390 seconds (28.85 M allocations: 1.676 GiB, 1.60% gc time)\n",
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"text/plain": "PyPlot.Figure(PyObject <matplotlib.figure.Figure object at 0x000000002B409278>)",
"image/png": "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"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 大域変数を定数で置き換えると速くなる. \n# ただし, 定数を書き換えても函数は変化しなくなる.\n\nconst sample_const = sample\nconst weight_const = weight\nmcint_const(f) = mean(weight_const .* f.(sample_const))\nplotcomparison(mcint_const);",
"execution_count": 4,
"outputs": [
{
"output_type": "stream",
"text": " 1.327823 seconds (1.00 M allocations: 602.722 MiB, 7.94% gc time)\n",
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"text/plain": "PyPlot.Figure(PyObject <matplotlib.figure.Figure object at 0x00000000354BA780>)",
"image/png": "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"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# function-like object を使っても速くなる.\n\nmutable struct MCInt\n sample::Array{Float64,1}\n weight::Array{Float64,1}\nend\n\n(mcint::MCInt)(f) = mean(mcint.weight .* f.(mcint.sample))\nmcint_struct = MCInt(sample, weight)\nplotcomparison(mcint_struct);",
"execution_count": 5,
"outputs": [
{
"output_type": "stream",
"text": " 1.249206 seconds (1.00 M allocations: 602.722 MiB, 1.52% gc time)\n",
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"text/plain": "PyPlot.Figure(PyObject <matplotlib.figure.Figure object at 0x00000000365135C0>)",
"image/png": "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"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# mutable function-like object であれば中身を書き換えることができる.\n\nsrand(5)\nmcint_struct.sample = randn(N)\nmcint_struct.weight = sample2weight(mcint_struct.sample)\nplotcomparison(mcint_struct);",
"execution_count": 6,
"outputs": [
{
"output_type": "stream",
"text": " 1.379918 seconds (1.00 M allocations: 602.722 MiB, 8.25% gc time)\n",
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"text/plain": "PyPlot.Figure(PyObject <matplotlib.figure.Figure object at 0x000000003C2FDDD8>)",
"image/png": "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"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# keyword arguments は次のような使い方をできない.\n\nmcint_kwargs(f; sample=sample, weight=weight) = mean(weight .* f.(sample))\nplotcomparison(mcint_kwargs);",
"execution_count": 7,
"outputs": [
{
"output_type": "error",
"ename": "LoadError",
"evalue": "\u001b[91mUndefVarError: sample not defined\u001b[39m",
"traceback": [
"\u001b[91mUndefVarError: sample not defined\u001b[39m",
"",
"Stacktrace:",
" [1] \u001b[1mmcint_kwargs\u001b[22m\u001b[22m at \u001b[1m.\\In[7]:3\u001b[22m\u001b[22m [inlined]",
" [2] \u001b[1m#1\u001b[22m\u001b[22m at \u001b[1m.\\<missing>:0\u001b[22m\u001b[22m [inlined]",
" [3] \u001b[1mnext\u001b[22m\u001b[22m at \u001b[1m.\\generator.jl:45\u001b[22m\u001b[22m [inlined]",
" [4] \u001b[1mcollect\u001b[22m\u001b[22m\u001b[1m(\u001b[22m\u001b[22m::Base.Generator{Array{Float64,1},##1#5{#mcint_kwargs}}\u001b[1m)\u001b[22m\u001b[22m at \u001b[1m.\\array.jl:475\u001b[22m\u001b[22m",
" [5] \u001b[1mmacro expansion\u001b[22m\u001b[22m at \u001b[1m.\\util.jl:237\u001b[22m\u001b[22m [inlined]",
" [6] \u001b[1mplotcomparison\u001b[22m\u001b[22m\u001b[1m(\u001b[22m\u001b[22m::#mcint_kwargs\u001b[1m)\u001b[22m\u001b[22m at \u001b[1m.\\In[1]:13\u001b[22m\u001b[22m",
" [7] \u001b[1minclude_string\u001b[22m\u001b[22m\u001b[1m(\u001b[22m\u001b[22m::String, ::String\u001b[1m)\u001b[22m\u001b[22m at \u001b[1m.\\loading.jl:522\u001b[22m\u001b[22m"
]
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 定数を使った keyword arguments を使うと速い.\n\nmcint_kwargs(f; sample=sample_const, weight=weight_const) = mean(weight .* f.(sample))\nplotcomparison(mcint_kwargs);",
"execution_count": 8,
"outputs": [
{
"output_type": "stream",
"text": " 1.243385 seconds (3.00 M allocations: 633.365 MiB, 1.94% gc time)\n",
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"text/plain": "PyPlot.Figure(PyObject <matplotlib.figure.Figure object at 0x000000003C36BF28>)",
"image/png": "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"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# しかし, 定数を変化させても mcint_kargs 函数は変化しない.\n\nsrand(5)\nsample_const = randn(N)\nweight_const = sample2weight(sample_const)\nplotcomparison(mcint_kwargs);",
"execution_count": 9,
"outputs": [
{
"output_type": "stream",
"text": " ",
"name": "stdout"
},
{
"output_type": "stream",
"text": "WARNING: redefining constant sample_const\nWARNING: redefining constant weight_const\n",
"name": "stderr"
},
{
"output_type": "stream",
"text": " 1.438670 seconds (3.00 M allocations: 633.240 MiB, 7.53% gc time)\n",
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"text/plain": "PyPlot.Figure(PyObject <matplotlib.figure.Figure object at 0x000000003C4877F0>)",
"image/png": "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"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# mcint_kwargsを再定義すると定数変更が有効になる.\n\nmcint_kwargs(f; sample=sample_const, weight=weight_const) = mean(weight .* f.(sample))\nplotcomparison(mcint_kwargs);",
"execution_count": 10,
"outputs": [
{
"output_type": "stream",
"text": " 1.230373 seconds (3.00 M allocations: 633.365 MiB, 1.66% gc time)\n",
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"text/plain": "PyPlot.Figure(PyObject <matplotlib.figure.Figure object at 0x000000003C565A20>)",
"image/png": "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"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"_draft": {
"nbviewer_url": "https://gist.github.com/7716090b79e0281d46a3ca3d284fc93e"
},
"gist": {
"id": "7716090b79e0281d46a3ca3d284fc93e",
"data": {
"description": "定数を含む函数と函数的オブジェクト",
"public": true
}
},
"kernelspec": {
"name": "julia-0.6",
"display_name": "Julia 0.6.2",
"language": "julia"
},
"language_info": {
"file_extension": ".jl",
"name": "julia",
"mimetype": "application/julia",
"version": "0.6.2"
},
"toc": {
"threshold": 4,
"number_sections": true,
"toc_cell": false,
"toc_window_display": false,
"toc_section_display": "block",
"sideBar": true,
"navigate_menu": true,
"moveMenuLeft": true,
"widenNotebook": false,
"colors": {
"hover_highlight": "#DAA520",
"selected_highlight": "#FFD700",
"running_highlight": "#FF0000",
"wrapper_background": "#FFFFFF",
"sidebar_border": "#EEEEEE",
"navigate_text": "#333333",
"navigate_num": "#000000"
},
"nav_menu": {
"height": "31px",
"width": "252px"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment