Skip to content

Instantly share code, notes, and snippets.

@Cartman0
Last active April 15, 2020 14:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Cartman0/0e22fb18b570858c0c6b5a6b8034c6a7 to your computer and use it in GitHub Desktop.
Save Cartman0/0e22fb18b570858c0c6b5a6b8034c6a7 to your computer and use it in GitHub Desktop.
内分点と重み付け平均
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"source": "# 内分点と重み付け平均"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## 内分点1つの場合"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "線分ABをm:nに分け,そこを点Pとする.\nその時の座標はどうなるか?\n"
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2020-04-15T12:23:05.826648Z",
"start_time": "2020-04-15T12:23:05.705002Z"
},
"trusted": true
},
"cell_type": "code",
"source": "import matplotlib.pyplot as plt\n# plt.style.use(\"ggplot\")\n%matplotlib inline\n\nl=2\nm=1\n#A\na = -1\nplt.scatter(a, 0, c=\"k\")\nplt.text(a-.2, 0, \"A\", c=\"k\", ha='center')\n#B\nb=1\nplt.scatter(b, 0, c=\"k\")\nplt.text(b+.2, 0, \"B\", c=\"k\", ha='center')\n#P\np = (m*a+l*b) / (l+m)\nplt.scatter(p, 0, c=\"g\")\nplt.text(p, 0.002, \"P\", c=\"g\", ha='center')\n\n#l\nplt.text(a+(p-a)/2, 0.002, \"l\", c=\"k\", ha='center')\n#m\nplt.text(b-(b-p)/2, 0.002, \"m\", c=\"k\", ha='center')\n\nplt.hlines(0, -1, 1)\n\nplt.xlim(-2, 2)\nplt.yticks([])\nplt.grid()\nplt.savefig(\"内分点1.png\")\nplt.show()",
"execution_count": 60,
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "線分ABの長さを$l:m$に分けているので,\n始点を点A(a<b)とすると,点Pの座標は\n\n\\begin{eqnarray}\np \n&=& a + \\frac{l}{l+m}AB\\\\\n&=& a + \\frac{l}{l+m}(b-a)\\\\\n&=& \\frac{ma + lb}{l+m}\n\\end{eqnarray}\n\n点B(a<b)を始点に考えても同じになる.\n\n\\begin{eqnarray}\np \n&=& b - \\frac{m}{l+m}AB\\\\\n&=& b - \\frac{m}{l+m}(b-a)\\\\\n&=& \\frac{ma + lb}{l+m}\n\\end{eqnarray}"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "点の位置を入れ替えても(a>b)この公式は同じになる.\n(ただし,BAをn:mに分ける場合).\n"
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2020-04-15T12:39:44.225254Z",
"start_time": "2020-04-15T12:39:44.104571Z"
},
"trusted": true
},
"cell_type": "code",
"source": "import matplotlib.pyplot as plt\n%matplotlib inline\n\nl=2\nm=1\n#A\na = +1\nplt.scatter(a, 0, c=\"k\")\nplt.text(a+.2, 0, \"A\", c=\"k\", ha='center')\n#B\nb=-1\nplt.scatter(b, 0, c=\"k\")\nplt.text(b-.2, 0, \"B\", c=\"k\", ha='center')\n#P\np = (m*a+l*b) / (l+m)\nplt.scatter(p, 0, c=\"g\")\nplt.text(p, 0.002, \"P\", c=\"g\", ha='center')\n\n#l\nplt.text(a-(a-p)/2, 0.002, \"l\", c=\"k\", ha='center')\n#m\nplt.text(b+(p-b)/2, 0.002, \"m\", c=\"k\", ha='center')\n\nplt.hlines(0, -1, 1)\n\nplt.xlim(-2, 2)\nplt.yticks([])\nplt.grid()\nplt.savefig(\"内分点_inv.png\")\nplt.show()",
"execution_count": 61,
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "点Aを始点にすると\n\n\\begin{eqnarray}\np \n&=& a - \\frac{l}{l+m}BA\\\\\n&=& a - \\frac{l}{l+m}(a-b)\\\\\n&=& \\frac{ma + lb}{l+m}\n\\end{eqnarray}\n\n点Bを始点に\n\n\\begin{eqnarray}\np \n&=& b + \\frac{m}{l+m}BA\\\\\n&=& b + \\frac{m}{l+m}(a-b)\\\\\n&=& \\frac{ma + lb}{l+m}\n\\end{eqnarray}"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### なぜ重みが逆になるのか"
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2020-04-15T06:22:53.081857Z",
"start_time": "2020-04-15T06:22:52.216418Z"
},
"hide_input": true,
"scrolled": true,
"trusted": true
},
"cell_type": "code",
"source": "import matplotlib.pyplot as plt\n# plt.style.use(\"ggplot\")\n%matplotlib inline\n\nl=2\nm=1\n#A\na = -1\nplt.scatter(a, 0, c=\"k\")\nplt.text(a-.2, 0, \"A\", c=\"k\", ha='center')\n#B\nb=1\nplt.scatter(b, 0, c=\"k\")\nplt.text(b+.2, 0, \"B\", c=\"k\", ha='center')\n#P\np = (m*a+l*b) / (l+m)\nplt.scatter(p, 0, c=\"g\")\nplt.text(p, 0.002, \"P\", c=\"g\", ha='center')\n\n#l\nplt.text(a+(p-a)/2, 0.002, \"l\", c=\"k\", ha='center')\n#m\nplt.text(b-(b-p)/2, 0.002, \"m\", c=\"k\", ha='center')\n\nplt.hlines(0, -1, 1)\n\nplt.xlim(-2, 2)\nplt.yticks([])\nplt.grid()\nplt.show()",
"execution_count": 1,
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "座標で考えると重みの付き方が逆になる.\n\n\\begin{eqnarray}\np &=& \\frac{ma + lb}{l+m}\n\\end{eqnarray}\n\n線分ABを$l:m$の比で分けると以下が成立する.\n\n$$\nAP:PB = l:m\n$$\n\nABを使って表すと\n\n$$\nAP = lAB \\\\\nPB = mAB\n$$\n\n$l:m=0$で分ける$(l+m=l)$と,$AB=AP$が成立.\n\n$$\np \n= \\frac{0\\cdot a + lb}{l+0}\n= \\frac{l}{l}b=b\n$$\n\n重みlのみ考慮すれば点Pは点Bに一致する.\nつまり,重みlは点Bのほうと連動する.\n\n逆に$l=0:m$で分ける$(l+m=m)$と,$AB=PB$\n\n$$\np \n= \\frac{m a + 0\\cdot b}{0+m}\n= \\frac{m}{m}a=a\n$$\n\n重みmのみ考慮すれば点Pは点Aに一致する.\nつまり,重みmは点Aのほうと連動する.\n\n1. lが大きい\n2. つまりAPが大きい\n3. AP=AB-PBより,AB固定に考えると,APが大きい=PBが小さい\n4. PBが小さい=点Pが点Bに近い\n5. lと点B座標を使って点Pをほぼ表現可能(残りはmと点A座標で表現される)\n\nこれはmが大きい場合も同様に考えることができ,\n\n1. mが大きい\n2. つまりPBが大きい\n3. PB=AB-APより,AB固定に考えると,PBが大きい=APが小さい\n4. APが小さい=点Pが点Aに近い\n5. mと点A座標を使って点Pをほぼ表現可能(残りはlと点B座標で表現される)\n"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## 内分点が2つある場合"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "線分ACを$l:m:n$に分け,\n- $l:(m:n)$に分けた点を点P,\n- $(l:m):n$に分けた点を点Qとする.\n\n点Pと点Qの座標を求める."
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2020-04-15T12:40:10.024497Z",
"start_time": "2020-04-15T12:40:09.901285Z"
},
"trusted": true
},
"cell_type": "code",
"source": "import matplotlib.pyplot as plt\n\n%matplotlib inline\n\nl=1\nm=2\nn=3\n#A\na = -1\nplt.scatter(a, 0, c=\"k\")\nplt.text(a-.2, 0, \"A\", c=\"k\", ha='center')\n#c\nc=+1\nplt.scatter(c, 0, c=\"k\")\nplt.text(c+.2, 0, \"C\", c=\"k\", ha='center')\n#P\np = ((m+n)*a+l*c) / (l+m+n)\nplt.scatter(p, 0, c=\"g\")\nplt.text(p, 0.002, \"P\", c=\"g\", ha='center')\n#Q\nq = (n*a+(l+m)*c) / (l+m+n)\nplt.scatter(q, 0, c=\"r\")\nplt.text(q, 0.002, \"Q\", c=\"r\", ha='center')\n#l\nplt.text(a+(p-a)/2, 0.002, \"l\", c=\"k\", ha='center')\n#m\nplt.text(p+(q-p)/2, 0.002, \"m\", c=\"k\", ha='center')\n#n\nplt.text(c-(c-q)/2, 0.002, \"n\", c=\"k\", ha='center')\n\nplt.hlines(0, -1, 1)\n\nplt.xlim(-2, 2)\nplt.yticks([])\nplt.grid()\nplt.savefig(\"内分点2.png\")\nplt.show()",
"execution_count": 62,
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "点Aを始点にして,点Pの座標を求めると\n\n\\begin{eqnarray}\np \n&=& a + \\frac{l}{l+m+n}AC\\\\\n&=& a + \\frac{l}{l+m+n}(c-a)\\\\\n&=& \\frac{(m+n)a + lc}{l+m+n}\n\\end{eqnarray}"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "点Cを始点にして,点Qの座標を求めると,\n\n\\begin{eqnarray}\nq \n&=& c - \\frac{n}{l+m+n}AC\\\\\n&=& c - \\frac{n}{l+m+n}(c-a)\\\\\n&=& \\frac{na + (l+m)c}{l+m+n}\n\\end{eqnarray}"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### 繰り返し内分点を分ける場合"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "線分ABをl:mで分けその点を点Pとし,\nさらに線分PCをn:l+mで分ける点を点Q考える.\n\n"
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2020-04-15T12:40:46.419144Z",
"start_time": "2020-04-15T12:40:46.280966Z"
},
"trusted": true
},
"cell_type": "code",
"source": "import matplotlib.pyplot as plt\n\n%matplotlib inline\n\nl = 1\nm = 2\nn = 4\n\na=-1\nplt.scatter(a, 0, c=\"k\")\nplt.text(a-.2, 0, \"A\", c=\"k\", ha=\"center\")\nb=+0\nplt.scatter(b, 0, c=\"k\")\nplt.text(b, .002, \"B\", c=\"k\", ha=\"center\")\n#P\np = (m*a+l*b) / (l+m)\nplt.scatter(p, 0, c=\"r\")\nplt.text(p, .002, \"1. P\", c=\"r\", ha=\"center\")\n#l\nplt.text(a+(p-a)/2, 0.001, \"l\", c=\"k\", ha='center')\n#m\nplt.text(b-(b-p)/2, 0.001, \"m\", c=\"k\", ha='center')\n#C\nc = +1\nplt.scatter(c, 0, c=\"b\")\nplt.text(c, .002, \"2. C\", c=\"b\", ha=\"center\")\n#Q\nq = ((l+m)*p + n*c)/(l+m+n)\nplt.scatter(q, 0, c=\"g\")\nplt.text(q, .002, \"3. Q\", c=\"g\", ha=\"center\")\n\n# n\nplt.text(p+(q-p)/2, -0.002, \"n\", c=\"b\", ha='center')\n#l+m\nplt.text(c-(c-q)/2, -0.002, \"l+m\", c=\"r\", ha='center')\n\nplt.hlines(0, -1, 1)\n\nplt.xlim(-2, 2)\nplt.yticks([])\nplt.grid()\nplt.savefig(\"内分点2_mean.png\")\nplt.show()",
"execution_count": 63,
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "$$\np = \\frac{ma+lb}{l+m}\n$$\n\n\\begin{eqnarray}\nq \n&=& \\frac{(l+m)p + nc}{l+m+n} \\\\\n&=& \\frac{(l+m)\\frac{ma+lb}{l+m} + nc}{l+m+n}\\\\\n&=& \\frac{ma+lb + nc}{l+m+n}\n\\end{eqnarray}\n"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## 重み付け平均"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### データが2種類の場合"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "ここで,データ$x_{A}$が$n_{A}$個,$x_{B}$が$n_{B}$個,\nその場合の重み付け平均を考える.\n\n$$\n\\bar{x} = \\frac{n_{A} x_{A} + n_{B}x_{B} }{ n_{A} + n_{B} }\n$$\n\n例えば,$x_{A}=-1$が$n_{A}=2$個, $x_{B}=+1$が$n_{B}=1$個の(符号)データの平均を考えると,\n\n$$\n\\bar{x} = \\frac{2\\cdot(-1) + 1\\cdot(+1)}{2+1}=-\\frac{1}{3}\n$$\n\n重み付け平均の式は内分点と同じであり,\nつまり,「重み付け平均 = $x_{A}$と$x_{B}$を結ぶ線分を$n_{B}:n_{A}$で分けた内分点」 になる.\n\n\n- $n_{A} > n_{B}$の場合,平均$\\bar{x}$は$x_{A}$の方に寄る\n- 逆に,$n_{B} > n_{A}$の場合,平均$\\bar{x}$は$x_{B}$の方に寄る\n"
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2020-04-15T12:41:25.132672Z",
"start_time": "2020-04-15T12:41:24.444918Z"
},
"hide_input": false,
"trusted": true
},
"cell_type": "code",
"source": "import matplotlib.pyplot as plt\n# plt.style.use(\"ggplot\")\n%matplotlib inline\n\nnA=2\nnB=1\n#A\na = -1\nplt.scatter(a, 0, c=\"k\")\nplt.text(a-.2, 0, \"$x_A$\", c=\"k\", ha='center')\n#B\nb=1\nplt.scatter(b, 0, c=\"k\")\nplt.text(b+.2, 0, \"$x_B$\", c=\"k\", ha='center')\n#P\np = (nA*a+nB*b) / (nA+nB)\nplt.scatter(p, 0, c=\"g\")\nplt.text(p, 0.002, \"$\\\\bar{x}$\", c=\"g\", ha='center')\n\n#l\nplt.text(a+(p-a)/2, 0.002, \"$n_B$\", c=\"k\", ha='center')\n#m\nplt.text(b-(b-p)/2, 0.002, \"$n_A$\", c=\"k\", ha='center')\n\nplt.hlines(0, -1, 1)\n\nplt.xlim(-2, 2)\nplt.yticks([])\nplt.grid()\nplt.savefig(\"内分点1_mean.png\")\nplt.show()",
"execution_count": 64,
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXEAAAD4CAYAAAAaT9YAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAANk0lEQVR4nO3df2zU9R3H8dcb0CZ0xM6pw6ntbfFHuqFxStD9oEJcxBgcg2XR5OLMJLkQXZgak5kUkP7RP5xpNUskS40sLl5GZvxRXDAIg278AWZUtD+iohIKxM6GLXbAKZPssz/uZKX22rve9+577+vzkTTctdfv930f7p5c765fLIQgAIBPs+IeAAAwfUQcABwj4gDgGBEHAMeIOAA4NifKjTU0NIQrr7wyyk2WxalTp1RfXx/3GFNizmgxZ3Q8zCj5mbO3t/d4COHiaX1zCCGyj6uvvjp4sHv37rhHKAhzRos5o+NhxhD8zClpf5hmd3k6BQAcI+IA4BgRBwDHiDgAOEbEAcAxIg4AjhFxAHCMiAOAY0QcABwj4gDgGBEHAMeIOAA4RsQBwDEiDgCOEXEAcIyIA4BjRBwAHCPiAOAYEQcAx4g4ADhGxAHAMSIOAI4RcQBwjIgDgGNEHAAcI+IA4BgRBwDHiDgAOEbEAcAxIg4AjhFxAHCMiAOAY0QcABwj4gDgGBEHAMeIOAA4RsQBwDEiDgCOEXEAcIyIA4BjRBwAHCPiAOAYEQcAx4g4ADhGxAHAMSIOAI4RcQBwjIgDgGNEHAAcI+IA4BgRBwDHiDgAOEbEAcAxIg4AjhFxAHCMiAOAY0QcABwj4gDgGBEHAMeIOAA4RsQBwDEiDgCOEXEAcIyIA4BjRBwAHCPiAOAYEQcAx4g4ADhGxAHAMSIOAI4RcQBwjIgDgGNEHAAcI+IA4BgRBwDHiDgAOEbEAcAxIg4AjhFxAHCMiAOAY0QcABwj4gDgGBEHAMeIOAA4NifuATAzLf79Yp04fUJzZs3R/tT+uMcB3CLiiMWeX+yJewSgJvB0CgA4RsRnsJUrV2rdunVavHix5s+fr507d1Zkv0ufW6odH+6QJK3btU5rX1tbkf2WU1xrCRDxGWxgYEANDQ3as2ePNm3apHQ6XZH9ti1pU/uedqX70jrwjwN6ctmTFdlvOcW1lgARn6EymYxGR0f10EMPSZLOnDmjhoYGSdLChQv1wAMP6JZbbtHg4GDk+25palFQUOe+Tm356RbNnjU78n1U0mRrKUl33XWXOjo64hoPNY6Iz1CDg4O68cYbNXt2NqB9fX1asGCBjh49qkWLFunpp5/WihUrdOzYscj33f9xv4ZPDKtudp3m1c2LfPuVlm8tJam7u1vLly9XX19fnCOihhHxGWpgYEDXX3/92fN9fX267rrr1Nvbq4MHD+q+++7Trl27tGzZskj3O3xiWMmXkuq+u1v159dr+wfbI91+HPKt5WeffaYXXnhB99xzj0ZHR2OcELWMiM9Q/f3954RnYGBACxYsUG9vrzo6OrR582bV1dXp1KlTke0z83lGq/60Sh23daj54matb1mvjX/dGNn245JvLZ944gmdPHlSa9as0eDgoD799NMYp0St4n3iM1RnZ+c55w8dOiRJ6u3t1fHjxzVr1iw1Nzervr4+sn3OPW+u9q7ee/Z8S1PLOee9mmgtjxw5osOHD+uVV16RJLW1tamvr0833XRTHCOihhFxnGPbtm1xj1ATGhsb9eyzz549/9hjj8U4DWoZT6cAgGNEHAAcI+IA4BgRBwDHiDgAOEbEAcAxIg4AjhHxiCxdulQ7duQOr7pundau9X94VSBK3EfKg1/2iUhbW5s2bNigkZERHThwQFu3bo17JKCqcB8pDx6JR6SlpUUhBHV2dmrLli1nj2gnFX8o0nQ6rUQiod7eXiUSiZo7NnW6P63EUwnNapulxFMJpftr6/rVslJum/nuI+U+9HGtI+IR6e/v1/DwsOrq6jRv3v8Pr1rsoUjT6bRSqZSGhoYkSUNDQ0qlUjUT8nR/WqlXUxoaHVJQ0NDokFKvpgi5A6XeNie6j1Ti0Me1jqdTIjA8PKxkMqnu7m6tXbtW27dv17Jly84eivT555/Xiy++WNC2WltblclkJEmbNm2SlP1PB1avXq1nnnmmbNehFJ988sk5/wnCZPYd26fTZ06f87mMMlq9ebWeuby816+YOeNUrXPu27dPp0+P+7vLZNTa2qpkMjnp9+a7j4w99PHIyIgefvjhcl6FmsQj8RJlMhmtWrVKHR0dam5u1vr167Vx40ZJmtahSI8cOTLh58ffebwaH/CpPo/qke82mO82+4XJ7iPlPPTxTMEj8RLNnTtXe/eOObxqS4v27t077UORNjY2nv1x9f7779cjjzwiSWpqalJPT095rkSJenp6tGTJkoIum3gqoaHRoS99vumCJvU82BPtYOMUM2ecqnXORCJx9rY5VmNj46Tfl+8+IpX30MczBREvk+keirS9vV2pVOrsUypS9k7Q3t4e+YxxaL+1XalXU8p8Pub6nTdX7bfWxvWrZeW4bXLo49LxdEqVSSaT6urqUlNTk6TsI/Curq4pn3P0InltUl13dqnpgiaZTE0XNKnrzi4lr62N61fLav226RWPxKtQMplUMplUT0+PDh8+HPc4kUtemyTaTtX6bdMjHokDgGNEHAAcI+IA4BgRBwDHiDgAOEbEAcAxIg4AjhFxAHCMiAOAY0QcABwj4gDgGBEHAMeIOAA4RsQBwDEiDgCOEXEAcIyIA4BjRBwAHCPiAOAYEQcAx4g4ADhGxAHAMSIOAI4RcQBwjIgDgGNEHAAcI+IA4BgRBwDHiDgAOEbEAcAxIg4AjhFxAHCMiAOAY0QcABwj4gDgGBEHAMeIOAA4RsQBwDEiDgCOEXEAcIyIA4BjRBwAHCPiAOAYEQcAx4g4ADhGxAHAMSIOAI4RcQBwjIgDgGNEHAAcI+IA4BgRBwDHiDgAOEbEAcAxIg4AjhFxAHCMiAOAY0QcABwj4gDgGBEHAMeIOAA4RsQBwDEiDgCOEXEAcIyIA4BjRBwAHCPiAOAYEQcAx4g4ADhGxAHAMSIOAI4RcQBwjIgDgGNEHAAcI+IA4BgRBwDHiDgAOEbEAcAxIg4AjhFxAHCMiAOAY0QcABwj4gDgGBEHAMeIOAA4RsQBwDEiDgCOEXEAcIyIA4BjRBwAHCPiAOAYEQcAx4g4ADhGxAHAMSIOAI4RcQBwjIgDgGNEHAAcI+IA4BgRBwDHiDgAOEbEAcAxIg4AjhFxAHDMQgjRbczshKT3Ittg+Vwk6XjcQxSAOaPFnNHxMKPkZ85rQgjzpvONcyIe5L0QwsKItxk5M9vPnNFhzmh5mNPDjJKvOaf7vTydAgCOEXEAcCzqiHdFvL1yYc5oMWe0PMzpYUZpBswZ6QubAIDK4ukUAHCMiAOAYyVF3MyeMLN3zazPzF42s4Y8l7vdzN4zsw/M7NFS9jnNOX9mZoNm9l8zy/t2IzM7bGb9ZvZWKW/5ma4i5ox7PS80sx1m9n7uz6/muVzF13OqtbGs3+a+3mdmN1RirmnMucTMRnNr95aZbYhpzs1mNmJmA3m+Hvt6FjBjtazlFWa228zeyd3PfzXBZYpfzxDCtD8k3SZpTu7045Ien+AysyV9KOlbks6X9Lakb5ey32nM2SzpGkk9khZOcrnDki6q5GzFzlkl6/kbSY/mTj860d97HOtZyNpIukPSa5JM0s2S3ojh77mQOZdI+nNct8Uxc7RIukHSQJ6vV8N6TjVjtazlpZJuyJ2eJ+lgFLfPkh6JhxBeDyGcyZ3dJ+nyCS62SNIHIYRDIYT/SNoiaUUp+y1WCOGdEELV/yZpgXPGvp65/T2XO/2cpJ9UeP/5FLI2KyT9IWTtk9RgZpdW4ZxVIYTwN0n/muQisa9nATNWhRDCcAjhzdzpE5LekXTZuIsVvZ5RPid+n7L/gox3maSjY84f05cHrxZB0utm1mtmqbiHyaMa1vPrIYRhKXvDlHRJnstVej0LWZtqWL9CZ/iemb1tZq+Z2XcqM1rRqmE9C1FVa2lmCUnflfTGuC8VvZ5T/tq9me2UNH+CL7WGELpzl2mVdEZSeqJNTPC5yN/XWMicBfhBCOEjM7tE0g4zezf3r3xkIpgz9vUsYjNlX89xClmbiqzfFAqZ4U1JTSGEk2Z2h6RXJF1V9smKVw3rOZWqWksz+4qkFyU9GEL49/gvT/Atk67nlBEPIfxoioHulbRc0q0h96TOOMckXTHm/OWSPppqv8Waas4Ct/FR7s8RM3tZ2R97I41OBHPGvp5m9rGZXRpCGM79qDeSZxtlX89xClmbiqzfFKacYeydO4Swzcw2mdlFIYRqO5hTNaznpKppLc3sPGUDng4hvDTBRYpez1LfnXK7pF9L+nEIIZPnYn+XdJWZfdPMzpd0t6Stpey3HMys3szmfXFa2RdtJ3y1O2bVsJ5bJd2bO32vpC/9BBHTehayNlsl/Tz3LoCbJY1+8dRQBU05p5nNNzPLnV6k7H31nxWesxDVsJ6Tqpa1zM3wrKR3QgideS5W/HqW+GrrB8o+f/NW7uN3uc9/Q9K2ca+4HlT2FfnWSr4inNv/SmX/hTst6WNJ28fPqew7Bd7OfQxW65xVsp5fk/QXSe/n/rywWtZzorWRtEbSmtxpk/R07uv9muTdSjHP+cvcur2t7JsGvh/TnH+UNCzp89xtc3W1rWcBM1bLWv5Q2adG+sY0845S15NfuwcAx/iNTQBwjIgDgGNEHAAcI+IA4BgRBwDHiDgAOEbEAcCx/wGQzMaORXxa9wAAAABJRU5ErkJggg==\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### データが3種類の場合"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "データが3種類の場合の重み付け平均を考える.\n例えば,これはデータに3クラスあって各クラス平均をさらに平均した総平均としてもみることができる.\n\nデータ$x_{A}$が$n_{A}$個,$x_{B}$が$n_{B}$個,$x_{C}$が$n_{C}$個があるとすると,\n\n$$\n\\bar{x} = \\frac{n_{A} x_{A} + n_{B}x_{B} + n_{C}x_{C} }{ n_{A} + n_{B} + n_{C}}\n$$\n\n「重み付け平均=$x_{A}$と$x_{B}$の線分を$n_{B}:n_{A}$に分割した平均点とし,\nこの平均点と$x_{C}$の線分を$n_{C}:n_{A}+n_{B}$に分割した内分点」になる.\n"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### 内分点と外れ値"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "平均は外れ値に弱いとよく言われる.\n\n$x_{A} << x_{B}$として,$x_{B}$を1つの外れ値(outlier)と考える.\n"
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2020-04-15T12:41:39.322612Z",
"start_time": "2020-04-15T12:41:39.184436Z"
},
"trusted": true
},
"cell_type": "code",
"source": "import matplotlib.pyplot as plt\n# plt.style.use(\"ggplot\")\n%matplotlib inline\n\nnA=2\nnB=1\n#A\na = -1\nplt.scatter(a, 0, c=\"k\")\nplt.text(a-.2, 0, \"$x_A$\", c=\"k\", ha='center')\n#B\nb=1\nplt.scatter(b, 0, c=\"r\")\nplt.text(b+.2, .002, \"$x_B$(outlier)\", c=\"r\", ha='center')\n#P\np = (nA*a + nB*b) / (nA+nB)\nplt.scatter(p, 0, c=\"g\")\nplt.text(p, 0.002, \"$\\\\bar{x}$\", c=\"g\", ha='center')\n\n#l\nplt.text(a+(p-a)/2, 0.002, \"$n_B=1$\", c=\"r\", ha='center')\n#m\nplt.text(b-(b-p)/2, 0.002, \"$n_A$\", c=\"k\", ha='center')\n\nplt.hlines(0, -1, 1)\n\nplt.xlim(-2, 2)\nplt.yticks([])\nplt.grid()\nplt.savefig(\"内分点_outlier.png\")\nplt.show()",
"execution_count": 65,
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXEAAAD4CAYAAAAaT9YAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAQ6UlEQVR4nO3df2zUdZ7H8ddHCiZFIigqKkt7F8VFWSLKgsrRheDqrmFFSHZ1M6t4sOkScuHW6EYSCkKyza6nJeYSzaVGjRcn554rUtbosqjMXncXjBSwLUH8lRaIPcli7CGDRfRzf3y+0B9O25n2237nXZ+PZNKZ73y/33nPe77z6vdXv3XeewEAbDon6QIAAANHiAOAYYQ4ABhGiAOAYYQ4ABhWEufMxo8f76+44oo4ZzkkTpw4obFjxyZdRr+oM17UGR8LNUp26mxoaPi79/6iAU3svY/tNnXqVG/Bjh07ki4hL9QZL+qMj4UavbdTp6TdfoC5y+4UADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAwwhxADCMEAcAw0qSLgDfTPOemafjHcdVck6JdlfuTrocwCzWxFGY5culiy+Wpk8f1Gzq/7le+1buI8BHipMnpe99T/ryy8Kn/fRT6Yknug8777zO+zfdVNj8Tp2SKiqk06cLr8UgQhyFufde6Y9/TLoKFJunn5aWLpVGjSp82lwh3tXf/pb/vLyXSkqkhQul3/2u8FoMIsRHoiVLpKoqad48adIk6bXX4pt3RYV0wQWDmsWCZxdo+wfbJUlVb1Rp9aur46gsUUuWLFFVVZXmzZunSZMm6bU4e56UBQuk7eFzUlWVtLqPzymdlhYv7ny8aVPYWps+XXrssTCspaX7Ftyjj0obNkhr1kgffCBde630q199fd5d18qfe06aPTuM+4tfhDX/lhZp2jRp1Srpuuukw4elO+4INX0DsE98JGpulubOlerrpc2bw8J88819TzNvnnT8+NeHP/po/9MWaOP8jVq/Y72Onjiqvf+7V1vv2hrr/JPQ3NysuXPnqr6+Xps3b1Y6ndbNMfdt2G3cKK1fLx09Ku3dK23t5XM6dUr68EOpvDw8bmiQnnlGevPNsGY8Z07Y1TJhQu7pf/vbsMzu29d3PQcOhLXrv/5VGj06hHY6HVYsDh4Mr3lmjX7yZOmttwb0tq0hxEeabFZqb5fuuy88Pn1aGj8+3J81K3yhmpvDwn7NNZ3T1dcPW4kVZRXy8tq0a5MyyzIadc4ANsGLSDabVXt7u+6Len769GmNP9NzSXfeeadmz56t+++/P6kSB6aiIoTwpk1SJtO5q2TWLF05ebL00ENhOZowoXMZk6S//CVsDY4dGx4vXRqWr9tvH1w9r78efkF897vh8cmT4fhMRYVUVibdcEPnuKNGSWPGaFQ2O7jXNIAQH2n275euv77zC9fYGDZhDx8Om6GPPx6+lEeOdA/xYVwTb/q4SW3H2zSxdKLGnTsu1nknYf/+/br++us1Kup5Y2Ojpke7Derq6rRo0SKbu1eamqS2NmniRGlc9DlFy9F7P/mJLt+zJyxHl10mff5553Te555fSYn01Vedj7tOkw/vpWXLpN/8pvvwlpbOXxhddXToqzFjCnsNg9gnPtI0N4f9hWc0NkozZoQ1mHffDWeXvPGGdOut3aerrw+bsz1vMQd42/E2pTanVHdXncaOGatt72+Ldf5JaG5u1rVdet7Y2KgZM2bo888/1wsvvKC7775b7e3tCVY4AG1tUiol1dWFgNwWfU7RcnTVww93LkcTJoR902dCuaJC2rIlbBWeOCG99FJYSbjkkrBr5tgxqaNDevnlMP64cblXIHpauFD6/e/DPCTpk0+k1tbc4x47Jl10kXzJyF9PJcRHmqam7iHe3BzWxBsapJqacBbBueeGL9dA/PSn0o03hn2QkydLTz2V96TZL7Ja+t9LVXNLjaZdNE3rKtZpw583DKyOItLU1NQtxJubmzV9+nQ98sgj+uyzz7Ry5Urt379fJ0+eTLDKAmSzYRdITU04YLhuXTgAKZ1djg4++GD35eiWW8JuFCkcXLz33rDlN2eO9POfSzNnhv3Y69eHYYsWSd/+dhj/wgvDMZzp03Mf2Dzj6qulX/86vNaMGdL3vx9+2eSyY4d0221xdKP4ee9ju02dOtVbsGPHjqRLyEusdf7wh96vXOn9qlXer10b33z9N7Sf/WhtbfXLly8/+3jDhg1+165deU1b1P2MlqMjixd3X4727PH+Zz9Lrq6elizx/p13iruXXUja7QeYuyN/WwPBK68kXcE3ypQpU/RUl62Uhx56KMFqYhQtR+9lMrp8/vzO4TNnhlMSv/xyYOeKx+nUqXCK4VVX9b6mPoIQ4gDisXx50hUEY8ZI99yTdBXDhn3iAGAYIQ4AhhHiAGAYIQ4AhhHiAGAYIQ4AhhHiMVmwYIG2R5ftrKqq0uq+LtsJADHhPPGYbNy4UevXr9fRo0e1d+9ebe3tsp0AECPWxGNSUVEh7702bdqk559//uwV7aRwKdKampq855VOp1VeXq6GhgaVl5crPcIubp9uSqv8sXKds/EclT9WrnTTyHp/I1o6Ha4b3tAQfo6wZdMi1sRj0tTUpLa2Nk2cOFHjxnVeXrXQS5Gm02lVVlYqG10HubW1VZWVlZKkVCoVf+HDLN2UVuUfKpX9Inp/7a2q/EP0/r5j//2NaOm0VFkZLpAlhSsIRsumRsCyaRUhHoO2tjalUinV1dVp9erV2rZtm2699dazlyJ97rnn9OKLL+Y1r7Vr154N8Cei/1KSzWa1YsUKPfnkk0P2Hgbj008/7fZPEPqy68gudZzu6DYsq6xWPL1CT04e2vdXSJ1JKto6d+0Kl5CVtOHMsGxWWruWEE8Qu1MGKZvNaunSpaqpqdG0adO0bt06bYgu2zmQS5EeOnQo5/COjo6cw63pGeD9DUcR6W0Z7GWZxfBgTXyQSktLtXPnzrOPKyoqtHPnTh06dEgtLS3asmWLpHDgs7GxUXPmzOlzflOmTFFrdKH7VatW6YEHHpAklZWVKZPJDM2bGKRMJqP5Xa9o14fyx8rV2v71C/mXnV+mzC8z8RbWQyF1Jqlo6ywvP/tPGDJdh0+ZkkAxOIM18SGS61Kk/QW4JFVXV6u0tLTbsNLSUlVXV8deYxKqF1ardHSP9ze6VNULR8b7G9Gqq6Uey6ZKS8NwJIYQLzKpVEq1tbUqKyuTFNbAa2trR8RBTSkcvKz9Ua3Kzi+Tk1PZ+WWq/VEtBzUtSKWk2trwT4ml8LO2lv3hCWN3ShFKpVJKpVLKZDJqaWlJupzYpb6TIrStSqXCLZMJ/6AYiWNNHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDBCHAAMI8QBwDDnvY9vZs4dl3QwthkOnYmS/p50EXmgznhRZ3ws1CjZqfMq7/24gUxYEnMhB733s2KeZ+ycc7upMz7UGS8LdVqoUbJV50CnZXcKABhGiAOAYXGHeG3M8xsq1Bkv6oyXhTot1Ch9A+qM9cAmAGB4sTsFAAwjxAHAsEGFuHPuEefcO865RufcS8658b2M9wPn3EHn3PvOuTWDec0B1vlj59x+59xXzrleTzdyzrU455qcc/sGc8rPQBVQZ9L9vMA5t9059170c0Iv4w17P/vrjQv+PXq+0Tl33XDUNYA65zvn2qPe7XPOrU+ozqedc0edc829PJ94P/OosVh6+S3n3A7n3IHoe/6vOcYpvJ/e+wHfJN0iqSS6/7Ckh3OMM0rSB5L+UdIYSW9LunowrzuAOqdJukpSRtKsPsZrkTRxOGsrtM4i6ee/SVoT3V+T63NPop/59EbSbZJeleQk3SDpzQQ+53zqnC/p5aSWxS51VEi6TlJzL88XQz/7q7FYenmppOui++MkvRvH8jmoNXHv/Z+896ejh7skTc4x2mxJ73vvP/Ten5L0vKTFg3ndQnnvD3jvi/4vSfOsM/F+Rq/3bHT/WUl3DPPr9yaf3iyW9J8+2CVpvHPu0iKssyh47/9H0id9jJJ4P/OosSh479u893ui+8clHZB0eY/RCu5nnPvElyv8BunpckmHuzw+oq8XXiy8pD855xqcc5VJF9OLYujnJd77NiksmJIu7mW84e5nPr0phv7lW8ONzrm3nXOvOueuGZ7SClYM/cxHUfXSOVcuaaakN3s8VXA/+/2ze+fca5Im5Xhqrfe+LhpnraTTktK5ZpFjWOznNeZTZx7meu8/cs5dLGm7c+6d6Ld8bGKoM/F+FjCbIe9nD/n0Zlj61498atgjqcx7/5lz7jZJWyRdOeSVFa4Y+tmfouqlc+48SS9K+qX3/v96Pp1jkj772W+Ie+9v7qegZZIWSVroo506PRyR9K0ujydL+qi/1y1Uf3XmOY+Pop9HnXMvKWz2xho6MdSZeD+dcx875y713rdFm3pHe5nHkPezh3x6Myz960e/NXT9cnvvX3HOPeGcm+i9L7aLORVDP/tUTL10zo1WCPC0935zjlEK7udgz075gaQHJd3uvc/2Mtpbkq50zv2Dc26MpLskbR3M6w4F59xY59y4M/cVDtrmPNqdsGLo51ZJy6L7yyR9bQsioX7m05utku6JzgK4QVL7mV1Dw6jfOp1zk5xzLro/W+G7emyY68xHMfSzT8XSy6iGpyQd8N5v6mW0wvs5yKOt7yvsv9kX3f4jGn6ZpFd6HHF9V+GI/NrhPCIcvf4Shd9wHZI+lrStZ50KZwq8Hd32F2udRdLPCyW9Lum96OcFxdLPXL2RtFLSyui+k/R49HyT+jhbKeE6/yXq29sKJw3clFCd/yWpTdIX0bK5otj6mUeNxdLLf1LYNdLYJTNvG2w/+bN7ADCMv9gEAMMIcQAwjBAHAMMIcQAwjBAHAMMIcQAwjBAHAMP+Hx5wlN4jyOfaAAAAAElFTkSuQmCC\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "図からわかるように,外れ値があると\n\n- $x_{A}$と$x_{B}$の線分が外れ値分伸びる.\n- $n_{B}=1:n_{A}$で分割されるので平均値がその分$x_{A}$から離れる.\n\n対策として,$n_{A}=10000 >> n_{B}=1$のように\n外れ値でないデータを増やせれば,\n平均値のずれを$1/(10000+1)$に抑えることができる.\n"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## 内分点の重みは信頼度"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "先程まで$l:m$の重みを標本の大きさ$n_{A}:n_{B}$で表していたが,\nこれは一般化すると信頼度のように考えることができる.\n\n以下のようなベイズ分布を考える.\n\n- $x_{A}$を事前分布の位置\n- $x_{B}$を尤度の位置\n\nそうすると,内分点は事後分布の位置のように考えることができる.\n\n例えば,よくあるベイズの考え方で\n- 事前分布を無情報分布,つまり信頼度が低い(ex.ばらつき,分散が大きいなど)\n- 尤度は観測値情報より,無情報分布より信頼度高い(ex.ばらつき,分散が小さいなど)\n\nとすると事後分布は以下のよう見ることができる.\n\n- 事前分布が尤度により更新されて,事後分布は尤度のほう近づく.\n- また,逆に尤度は観測データのみにfitしているので,未観測データには対応できない,つまりオーバーフィットに近い状態なのでそれを事前分布でフィルタする,つまり,事後分布は尤度より事前分布のほうに近づく.\n\n事後分布の位置は内分点と同じになり,重みは信頼度になる."
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2020-04-15T11:13:15.509922Z",
"start_time": "2020-04-15T11:13:15.356416Z"
},
"trusted": true
},
"cell_type": "code",
"source": "import numpy as np\nimport scipy.stats as stats\nimport matplotlib.pyplot as plt\n\n# prior\nprior_mu = -1\nprior_sigma=1\nprior = stats.norm(loc=prior_mu, scale=prior_sigma)\n\n#Likelihood L(x|y=yo) = p(y=yo|x)\nlikeli_mu = +1\nlikeli_sigma=.5\nlikeli = stats.norm(loc=likeli_mu, scale=likeli_sigma)\n\nx = np.linspace(-2, 2, 100)\nplt.plot(x, prior.pdf(x), label=\"prior\", color=\"r\")\nplt.scatter(prior_mu, 0, color=\"r\")\nplt.vlines(prior_mu, 0, prior.pdf(prior_mu), color=\"r\", linestyles=\"--\")\nplt.text(prior_mu, -.05, \"prior\", c=\"r\", ha=\"center\")\n\nplt.plot(x, likeli.pdf(x), label=\"Likelihood(x)\", c=\"b\")\nplt.scatter(likeli_mu, 0, color=\"b\")\nplt.vlines(likeli_mu, 0, likeli.pdf(likeli_mu), color=\"b\", linestyles=\"--\")\nplt.text(likeli_mu, -.05, \"L\", c=\"b\", ha=\"center\")\n\n# C*posterior\nCposterior = prior.pdf(x) * likeli.pdf(x)\nplt.plot(x, Cposterior*8, c=\"g\", label=\"C*posterior\", linestyle=\"-\")\nplt.vlines(0.6, 0, np.max(Cposterior)*8, color=\"g\", linestyles=\"--\")\nplt.text(0.6, -.05, \"P\", c=\"g\", ha=\"center\")\n\nplt.ylim(-.1, .9)\nplt.legend()\nplt.tight_layout()\nplt.grid(True)\nplt.savefig(\"内分点_bayes.png\")\nplt.show()",
"execution_count": 59,
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzdd1hURxfA4d8FVBAVFFtU7L2iGHvEHlsssRfsBWs0lth7TWyxd1ETK2osMURR0Sj23oK9YO+9IMz3x0Q/C2UXdvfuwrzPw5Ow3HJclj17586cowkhUBRFURRrY6d3AIqiKIoSEZWgFEVRFKukEpSiKIpilVSCUhRFUaySSlCKoiiKVXLQ68QpU6YUmTNnjvVxXrx4gbOzc+wDshAVr3mpeM1LxWte8TXew4cP3xdCpPriB0IIXb48PT2FKezYscMkx7EUFa95qXjNS8VrXvE1XuCQiCBPqCE+RVEUxSqpBKUoiqJYJZWgFEVRFKuk2ySJiISGhhISEsLr168N3sfFxYWzZ8+aMSrTsqV4HR0d0TRN7zAURYmnrCpBhYSEkDRpUjJnzmzwG+OzZ89ImjSpmSMzHVuJVwjBgwcPbGpGkaIocYtVDfG9fv0aNzc39andCmiahpubG/b29nqHoihKPGVVCQpQycmKqN+Foih6sroEpSiKoiigElSMDRkyhICAAL3DUBRFibOsapKErQgLC2PEiBFG76Pu5yiKohhOXUF95sqVK+TOnZuWLVtSsGBB6tevz8uXL8mcOTMjRoygTJkyrF69mlatWuHn5wfAtm3bKFy4MAUKFKBNmza8efMG4It9FEVRFMNZ7xVUjx5w7Fi0mzmFhYGhVyYeHjBlSrSbBQcHs2DBAkqXLk2bNm2YOXMmINcF7d69GwB/f39Azjxs1aoV27ZtI2fOnLRo0YJZs2bRo0ePL/ZRFEVRDKeuoCLg7u5O6dKlAWjevPmHBNOoUaMvtg0ODiZLlizkzJkTgJYtW7Jr164PP49oH0VRFCV61nsFZcCVDsArMyx8/Xx69fvvI1q0KgvxRk4tdFUURYkZdQUVgWvXrrF3714Ali9fTpkyZSLdNnfu3Fy5coULFy4AsHTpUry8vCwSp6IoSlymElQE8uTJw+LFiylYsCAPHz6kU6dOkW7r6OjIokWLaNCgAQUKFMDOzg4fHx8LRqsoihI3We8Qn47s7OyYPXv2J49duXLlk+99fX0//H/FihU5evToF8f5fB9FURTFcOoKSlEURbFKKkF9JnPmzJw6dUrvMBRFUeI9laAURVEUq2RQgtI0raqmacGapl3QNK1fBD930TRto6ZpxzVNO61pWmvTh6ooiqLEJ9EmKE3T7IEZQDUgL9BE07S8n23WBTgjhCgElAMmapqW0MSxKoqiKPGIIVdQxYALQohLQoi3wAqg9mfbCCCpJle0JgEeAu9MGqmiKIoSr2jRVULQNK0+UFUI0e6/772B4kKIrh9tkxTYAOQGkgKNhBB/RnCsDkAHgDRp0niuWLHik5+7uLiQPXt2o/4BtlYl3NbiPX/+PE+fPtU7DIM9f/6cJEmS6B2GwVS8piMEXL7szKFDyTl0KAWPHiUgWbJXpEoVjpvbG8qVu0eOHM/1DjNK1vz8RsRU8ZYvX/6wEKLoFz8QQkT5BTQA5n/0vTcw7bNt6gOTAQ3IDlwGkkV1XE9PT/G5M2fOfPFYdJ4+fWr0PlFxdnb+4rFZs2aJxYsXCyGE8PLyEgcPHjT4eB9vX61aNXHt2jVx+fJlkS9fPtME/JHPj3vkyBHRtm3bKPeZNm2aWLhwYaQ/P3LkiMnis4QdO3boHYJRVLyxFx4uxMKFQqRPL4RMU0LkySNEmTJCZMr0XLi7C+HgIB+vWFGIv/6S+1gja3x+o2KqeIFDIoI8YcgQXwjg/tH3GYCbn23TGlj737ku/JegchucPq2cj48PLVq0iPVxNm/ejKurqwkiMsyYMWPo1q1blNu0adOGqVOnWigiRTGtc+egQgVo0wYyZYIFC+DaNThzBv75B3x9D3LtGty7B+PHw9mzUK0aFC8Oah299TOkksRBIIemaVmAG0BjoOln21wDKgL/aJqWBsgFXIpNYAZ22yAszMnU3Ta+MGzYMJIkSULv3r0/PBYeHk7r1q1xd3dn1KhRbNmyhaFDh/LmzRuyZcvGokWLvrj0zZw5M4GBgf/FHUb79u0JCgoiffr0rF+/HicnJ44dO4aPjw8vX74kW7ZsLFy4kOTJk0f6+OHDh2nTpg2JEyf+pGbgs2fPOHHiBIUKFQKge/fupEyZkiFDhvD3338zevRoAgMDSZw4MZkzZ+bAgQMUK1bM+CdHUXQyeTL07w+OjjBnDrRrB3YffeQOCIDjx5NTrhy4ukLfvvJ95fffoWdPKFoUVq+G8uV1+yco0Yj2CkoI8Q7oCvwNnAVWCSFOa5rmo2na+6JzI4FSmqadBLYBPwkh7psraL29e/eOZs2akTNnTkaNGsX9+/cZNWoUAQEBHDlyhKJFizJp0qQoj3H+/Hm6dOnC6dOncXV1Zc2aNQC0aNGC8ePHc+LECQoUKMDw4cOjfLx169ZMnTr1Q3Hb9w4dOkT+/Pk/fD9u3DhWrlzJjh076N69O4sWLcLuv7/mokWL8s8//5js+VEUcxICBg+GH3+EqlXlVVGHDp8mJ4BRo2Dp0kyfPJYwIbRuDQcPQurUULkyTJ0qj6lYH4Nq8QkhNgObP3ts9kf/fxOoYsrADL3SefbslcnbbUSnY8eONGzYkIEDBwKwb98+zpw586GH1Nu3bylZsmSUx8iSJQseHh4AeHp6cuXKFZ48ecLjx48/VENv2bIlDRo0MPhxb29v/vrrLwBu3bpFqlSpPpwvceLEzJs3j7JlyzJ58mSyZcv24WepU6fm33//NcVToyhmJYS8aho/Xl4xzZnzZWIyRI4csG8feHvDDz/ArVswdqzp41ViRxWLjYFSpUqxY8cOevXqhaOjI0IIKleuzPLlyw0+RqJEiT78v729Pa9evTI6DiHEF72r3nNycuL169efPHby5Enc3Ny4efPTW4ivX7/GycnJ6PMriiUJAb16yaG9Tp1g+vSYJaf3kiWDdeugc2cYN07ew1KNCKyLKnUUA23btqV69eo0aNCAd+/eUaJECfbs2fOhJ9TLly85d+6c0cd1cXEhefLkH4bb3veWiuxxV1dXXFxcPnT8/f333z8cK0+ePB/iAbh69SoTJ07k6NGj/PXXX+zfv//Dz86dO/fJcKCiWKOxY2Vy6t4dZsyIXXJ6z85OJroaNaBLF/jzi8Uxip5UgvrMy5cvyZAhw4evyO4l/fjjjxQpUgRvb2/c3Nzw9fWlSZMmFCxYkBIlSsR4yGzx4sX06dOHggULcuzYMYYMGRLl44sWLaJLly6ULFnyk6ug3Llz8+TJE549e4YQgrZt2zJhwgTSpUvHggULaNeu3YcrrD179lCpUqUYxasolrB9u7zv1LixHP6PZOAgRhwcYMUKOYmqUSM4fNh0x1ZiKaK555b4stZ1UOZmyXgnTZok5s2bF+U2R44cEc2bN4/y57Ykvq4jsRQ94r1xQ4jUqeXapmfPDN/v33+FWLx4n8Hb37wpRMaMQqRNK8TduzEI1ATi6+uBWKyDUmxUp06dPrnXFZH79+8zcuRIC0WkKMZ5905eNT1/Dn5+YEzRgly5IGNGw+/tfvUVbNwIDx/Ke1FqZp/+VIKKwxwdHfH29o5ym8qVK5M5c2bLBKQoRho4UC64nTsX8n5eojoaGzdCUJCbUfsULAgjR8LatXK9lKIvlaAURbFK+/bBL7/INU7Nmhm//8SJsGqVe/QbfqZXLyhdGrp2hZAQ48+rmI5KUIqiWJ3QUOjYEdKlgwkTLHtue3vw9ZUxtG2rhvr0pBKUoihWZ+pUOHFC/tfC6/AByJ5dJsYtW+TwoqIPlaAicPv2bRo3bky2bNnImzcv1atXJzg4GJB1+YD3VdxNwtfX94vFs4aYPXs2S5YsMVkcimINrl2DIUOgZk2oW1e/OHx8ZJ2+AQPkxAnF8lSC+owQgrp161KuXDkuXrzImTNnGDNmDCtWrGD+/Pm8ePGCgQMHsnXrVpOdMyYJ6t27d0ZXWX/3TvWQVKzf+wL806ebdr2TsTRNrrl6/BhGjNAvjvhMJajP7NixgwQJEuDzUc0TDw8Phg4dyv3795k6dSpVq1alSpUqBAYGUrZsWerWrUvevHnx8fEhPDwcgOXLl1OgQAHy58/PTz/9BMgK5j4+PuTPn58CBQowefJk/Pz8OHToEM2aNcPDw4NXr15x+PBhvLy88PT05Ntvv+XWrVsAlCtXjgEDBuDl5cWvv/7KsGHDmPDfAP2xY8coUaIEBQsWpG7dujx69CjCfRTFmm3YIL+GDZOlh2Jj6VIYMOBsrI5RsCC0by8rV6hylZZntbX4evj34Njt6PttGNOh1iOtB1OqRl2F9tSpU3h6en7x+JQpU0iZMiXdu3fH39+f169fkyBBAg4cOMCZM2fIlCkTVatWZe3atZQqVYqffvqJw4cPkzx5cqpUqcIff/yBu7s7t27d4tSpUwA8fvwYV1dXpk+fzoQJEyhatCihoaF069aN9evXkypVKlauXMnAgQNZuHDhh3127twJ/H+4EWS182nTpuHl5cWQIUMYPnw4U/6ruPvxPopird69ky0xcueWbTFiy90dLl58E+vjjBgBy5dD796waVPs41IMp66gDPTDDz/Qrl07nJ2dGT169IfSQMWKFSNr1qzY29vTpEkTdu/ezcGDBylXrhypUqXCwcGBZs2asWvXLrJmzcrly5fp1q0b/v7+JEuW7IvzBAcHc+rUKSpXroyHhwejRo0i5KO5ro0aNfpin4iqne/atSvKfRTF2ixZAsHBMGYMJEgQ++OtXAnbt6eKfsNopE4tyyz9+Sf8/Xfs41IMZ7VXUNFd6bz37Nkzk7bbyJcvH35+fl88/r5q+Purlvfff15NXNO0SCdQJE+enKCgIIKCgpgxYwarVq36cGX0nhCCfPnyfdHf6T1nZ2ej/j0x3UdRLOn1axg6FIoVgzp1THPMWbPg8eP0Jrl/1K0bzJ4tGx2eOCHr9ynmp66gPlOhQgXevHnDvHnzPjx28ODBSIfIDhw4wOXLlwkPD2flypWUKVOG4sWLs3PnTu7fv09YWBjLly/Hy8uL+/fvEx4eTr169Rg5ciRHjhwBIGnSpDx79gyAXLlyce/evQ8JKjQ0lNOnT0cZc2TVzhXFVsycKRfFjhun78SIyCRKJBcNnz2rKkxYkvoc8BlN01i3bh09evRg3LhxODo6kjlz5g/3cz5XsmRJ+vXrx8mTJz9MmLCzs2Ps2LGUL18eIQTVq1endu3aHD9+nJYtW37Yd+x/HdJatWqFj48PTk5O7N27Fz8/P7p3786TJ0949+4dPXr0IF++fFHGvXjx4g8t4bNmzcqiRYtM96Qoihk9eSKH9apUse7263XqQOHCshRSs2bqKsoiIqoga4mvuFDNfMeOHaJGjRpG7WNr1ddVNXPzUvEKMXiwECDEoUOmPa6XlxCFCj0y6TH/+EPGunixSQ/7QXx9PaCqmSuKYm0ePIBJk6BBA4hg8qzVqVVL9o0aOVLOOlTMSyWoWChXrhyb1LxTRYmxadPgxQs5QcLU/Pxg+PCo798aS9NkrBcuyKnninlZXYISqjKj1VC/C8Wcnj+XtfZq1YJobrHGSMqU4OISavLj1q4NhQqpqyhLsKoE5ejoyIMHD9QboxUQQvDgwQPCwsL0DkWJo+bNg0ePoH9/8xzf1xf8/dOa/Ljvr6LOn1dXUeZmVfNQMmTIQEhICPfu3TN4n9evX+Po6GjGqEzLluJ1dHTkxYsXeoehxEFv3sh+TV5eUKKEec7h6wuPH6dl3DjTH7t2bVkGaexYaN7cOqfGxwVWlaASJEhAlixZjNonMDCQwoULmyki07O1eK9evap3CEoc9PvvcOMGLFigdyQxY2cnSx+1aAH+/lCtmt4RxU1WNcSnKErcFxYG48fLNUVVqugdTcw1aiQbKk6cqHckcZdKUIqiWNS6dXDuHPTrZ9tDYwkTQvfusG0bHIu+rrUSAypBKYpiUZMmQbZsUK+e3pHEXocO4Ows/02K6akEpSiKxRw8CHv3yisPA7vkxNjmzTBu3AmzniN5cmjbVs7mu3HDrKeKl1SCUhTFYqZNgyRJoFUr858rcWJwdAw3+3l69IDwcNkBWDEtlaAURbGI27dhxQpo3RoiaIVmcjNnwh9/pDP7ebJkge+/l+04nj83++niFZWgFEWxiLlzITQUuna1zPlWrYLAwNQWOdePP8Ljx7LNvGI6KkEpimJ2b9/KBoLVqkHOnHpHY3olSkCRIvLfqArhmI5KUIqimJ2fnxzi695d70jMQ9Ogc2c4eRJ279Y7mrhDJShFUcxu6lR55WTLC3Oj06QJuLjIe1+KaagEpSiKWR06BPv3y3tPdnH4HSdxYjkBZM0aebWoxF4cfrkoimINZs+Wb94tWlj2vIGBMGWKZUs8dOokJ4LYao1Ba6MSlKIoZvPkiVzE+n74K67LmRMqV4Y5c1SvKFNQCUpRFLP5/Xd4+RI6drT8uSdMgJUr3S1+3s6d4fp1UM22Y08lKEVRzEIIeSVRuDAULWr582/aBHv3uln8vDVrQoYMarKEKagEpSiKWezfDydOyKsnW65abiwHB2jfHrZuhcuX9Y7GtqkEpSiKWcyZI+vuNW2qdySW17q1nLG4cKHekdg2gxKUpmlVNU0L1jTtgqZp/SLZppymacc0TTutadpO04apKIotefwYVq6UySlpUr2jsTx3d6haFRYtUpMlYiPaBKVpmj0wA6gG5AWaaJqW97NtXIGZQC0hRD6ggRliVRTFRixdCq9e6TM54j0nJ0iUKEy387drJ1tw+PvrFoLNM+QKqhhwQQhxSQjxFlgB1P5sm6bAWiHENQAhxF3Thqkoiq0QAubNA09PWZ9OL3/9BePHn9Tt/DVrQurUMH++biHYPE1EU9lQ07T6QFUhRLv/vvcGigshun60zRQgAZAPSAr8KoRYEsGxOgAdANKkSeO5YsWKWP8Dnj9/TpIkSWJ9HEtR8ZqXite8DIk3ODgJPj5F6dnzHLVq3bRQZBHT+/mdMycrq1a5s2rVXtzc3ka7vd7xGstU8ZYvX/6wEOLLuZ5CiCi/kMN18z/63huY9tk204F9gDOQEjgP5IzquJ6ensIUduzYYZLjWIqK17xUvOZlSLydOwvh6CjEo0fmjycqI0YI0br1JV1jOHdOCBBi7FjDto+LrwdDAIdEBHnCkCG+EODj1W4ZgM8/FoUA/kKIF0KI+8AuoJDB6VNRlDjh1StYtgzq1QNXV31j2bYNjhxJrmsMOXKAl5cc5gs3f3PfOMeQBHUQyKFpWhZN0xICjYENn22zHvhG0zQHTdMSA8WBs6YNVVEUa/fHH3IGX5s2ekdiPdq1g4sXZW1AxTjRJighxDugK/A3MumsEkKc1jTNR9M0n/+2OQv4AyeAA8ghwVPmC1tRFGu0cCFkzgzlyukdifWoV0+2uPf11TsS2+NgyEZCiM3A5s8em/3Z978Av5guNEVRbMmVKxAQAMOHx+22GsZycoLGjeXU++nTZbJSDKNeRoqimISvryxp1KqV3pFIbm6QLFmo3mEAsrLEq1ewerXekdgWlaAURYm18HBZNaFyZciYUe9opDVrYMSI03qHAUDx4pArlxrmM5ZKUIqixNqOHXDtmrxSUL6kafK52b0bzp/XOxrboRKUoiix5usrp5XXqaN3JP/Xvz/Mm5dF7zA+aN5c3ptbvFjvSGyHSlCKosTKs2ewdi00agSOjnpH839798Lp09bTxjd9eqhSRSaoMP1KBNoUlaAURYkVPz/ZNbdlS70jsX6tW0NICGzfrncktkElKEVRYmXxYlkxoUQJvSOxfrVqyaFQNVnCMCpBKYoSY5cvw86d8uopPnXNjSlHR9kja+1aePJE72isn0pQiqLE2NKlMjF5e+sdyZcyZIBUqd7oHcYXWrSA16/l0KgSNZWgFEWJESHk8F758taz9uljv/0GAwdaX0nQYsXkmqglXzQkUj6nEpSiKDGyezdcuqQmRxhL0+RV1K5dcohUiZxKUIqixMjixeDsDN9/r3ckEevRA6ZPz653GBFq3lz+d+lSfeOwdipBKYpitPd15erXB2ttAHvsGFy4YJ3BZcwoh0aXLJFDpUrEVIJSFMVoGzbA06dqeC82WrSQfaL27tU7EuulEpSiKEZbsgTc3WW32Pdev3tNWLgqkWCoevUgcWI1WSIqBvWDUhRFee/2bfj7b+jW9yFrzm4j8EoggVcDOXPvDACODo4kSZiEHCly0CBvA+rnrY+7i7vOUVufpEnl/buVK2HKFOsqE2Ut1BWUoihGWbTsKWHfDGWOc0Ya+jVk8fHFuCdzZ6jXUIp8VYScKXLSIG8D3oS94cctP5JxSkZKLyzN1otbLRpnzpyQIcNLi57TWC1awOPHcshU+ZK6glIUxSChYaH4hfgx534DKHefmjkb0LNET4qmK0oC+wQADCs37JN9zj84z+ozq1l4dCFVfqtCk/xNmPTtJNImSWv2eOfOhcDAc0A6s58rpipUgHTp5Gy+hg31jsb6qCsoRVGidffFXSotrcSMizN4d6MgvZIdYFWDVZR0L/khOUUkh1sOBnwzgFOdTzHMaxhrzq4h9/TczD8y34LRWy97e2jWDPz94e5dvaOxPipBKYoSpSO3jlB0blEO3DhA8RuTsV8WwE/Nv45w2w4bO9BhY4cvHnd0cGRouaGc7HSSIl8Vof3G9vTe0ptwEW62uDt0gAkTcprt+KbSogW8ewcrVugdifVRCUpRlEitPLWSMgvLIBDsbLmbi+s6UaO6RqpUEW9/7sE5zj04F+nxcrrlZKv3Vrp+3ZWJeyfSbG0z3rwzT728c+cgJCSxWY5tSvnzg4eHWrQbEZWgFEWJ0PKTy2mypgme6Tw51P4QT856cv9+olgXhrW3s2dqtamMrzSeFadWUPX3qjx5Hb9Le7doAYcOwdWr1p9QLUklKEVRvrDp3CZa/NGCspnKsqX5FtIkScOSJZAkSSg1a8b++Jqm0bd0X36r+xt7ru2h1opaZruSsgVNmsh28Fu2pNE7FKuiEpSiKJ8IvBJI/VX18UjrwYYmG3BK4MTz57KHUbly90y6XqdZwWYsrrOYXVd30fKPlma9J2XN0qaFb7+FgIA0hMfPpyBCKkEpivLB4ZuH+W75d2RLkQ3/Zv4kS5QMkMnp5UuoUuV2lPt7pPXAI62HUedsUqAJ4yqOY+XplfQL6Bfj2L+IxQOyZ39usuOZm7c33L3ryM6dekdiPdQ6KEVRALj/8j7fr/qeFE4p2Oq9FbfEbh9+tnQpZM0K+fM/jfIYU6pOidG5+5buy9UnV/kl6BcyumSka7GuMTrOJ7FMgcDAC0CGWB/LEmrXhsSJ37F0qQPly+sdjXVQV1CKohAWHkaztc24/fw2axuuJV3S/y9uDQmBbdvkJ3xztXXXNI1p1aZRK1ctfvD/gV1Xd5nnRFYscWIoW/Yeq1fLq1VFJShFUYCRu0ay5eIWplebjmc6z09+tmyZbAnxvodRVJqvbU7ztQZsGAF7O3t+q/sbWZNnpemapjx4+SBGx/kQS3MYPTpPrI5had9+e4fnz+GPP/SOxDqoBKUo8Zz/BX9G7BxBy0ItaVek3Sc/e9/WvWRJyG5A77+QpyGEPA2JcSxJEyVlZf2V3H1xl9brWyNi0SwpJATu3UsU4/31ULDgYzJmVGui3lMJSlHisVvPbtFsbTMKpCnAzBoz0T4bwzt6FM6cket0LKXIV0X4pfIvbDy3kan7p1ruxFbAzk4OpW7ZArdu6R2N/lSCUpR4SghBx00deRn6klX1V5E4wZeLRJcuhYQJLV/ItHvx7nyX8zv6bO3D4ZuHLXtynXl7Q3i4HFqN71SCUpR46rcTv7Hx3EbGVBhDrpS5vvh5aKh8k6xRA1KksGxsmqaxqPYiUjunptX6VrwNe2vZAHSUKxcUL64aGYJKUIoSL918dpPu/t0p7V6a7sW7R7jNli2ywrYxbd1LZihJyQwlTRKjW2I3Zteczam7pxi3e5zR+5csCfny2WYJJW9vOHECjh/XOxJ9qQSlKPGMEIIOGzvw5t0bFtVehL2dfYTbLV4Mbm5QrZrhxx5baSxjK401UaRQM2dNmuRvwqhdozh997RR+44dC+3bXzZZLJbUqBEkSKAmS6gEpSjxzNITS/nz/J+MrTiWHG45Itzm0SPZ5bVpU3kPSk+/Vv2VZImS0W5jO8LCw/QNxkJSppRDq7//LltxxFcqQSlKPPLw1UN6belFKfdSdCveLdLtVq2CN2+Mn71Xb1U96q2qF8soP5XKORVTqk5hX8g+ZhycYXgs9WDIkHwmjcWSWrSA27chIEDvSPSjEpSixCODtg/i0atHzKoxCzst8j//JUsgb17w9Ix0kwg9ePkg1gtsI9KsQDOqZa/GgG0DuP7kumGxPICnTyPv9mvtqleXk1MWL9Y7Ev2oBKUo8cThm4eZfWg2XYt1pWCagpFud/48BAXJT/DmKm1kLE3TmFVjFmEijD5b++gdjkUkSiTbcPzxBzyxzbkesaYSlKLEA+EinM6bO5PaOTXDyw2PctulS2ViMqS0kSVlcs1Ev9L9WHl6JTuvxI+S3y1bwuvXcsg1PlIJSlHigYVHF3LgxgEmVJmAi6NLpNuFh8vhvUqVIH16CwZooL6l+5LJJRPd/bvzLjzuzx4oWlQOtfr66h2JPlSCUpQ47uGrh/QL6Mc3Gb+hWYFmUW77zz9w9apxa58+VjFLRSpmqRiznQ3glMCJiVUmcuLOCeYenht1LBWhSJFHZovFEjRN/i6CguTQa3xjUILSNK2qpmnBmqZd0DQt0o5imqZ9rWlamKZp9U0XoqIosTFq1ygevX7E9OrTv6i19zlfX0iSBOrUidm5BnsNZrDX4JjtbKDv83xPhSwVGLR9UJQTMgYPhhYtrpo1Fkto3lzW6IuPkyWiTVCaptkDM4BqQF6giaZpeSPZbjzwt6mDVBQlZi48vMD0A9Np48jqZCIAACAASURBVNEmyokRAM+fw+rVcpGos7OFAowBTdP4teqvPH3zlCE7hugdjtmlSwdVqsih1/jWDt6QjrrFgAtCiEsAmqatAGoDZz7brhuwBvjapBEq5vXqlVxs8fixnCr09Cm8eAFhYRAWRtozZ2TfAicn+eXsLFcRpkwpyww4qKbM1qxfQD8S2idkRPkR0W7r5yd/9a1bx/x81X6XZSf+avZXzA9igPyp8+NT1IfZh2bTvXj3CGsJVqsGDx8WYP9+s4ZiEa1aQePGsGOHHLqMLwx5d0kPfLzwIAQo/vEGmqalB+oCFYgiQWma1gHoAJAmTRoCAwONDPdLz58/N8lxLEWPeB2ePCHJxYskDgnB6fp1EoeEkOjOHRI9eECCp1G38M4dzbHfpEjB67RpP3y9zJSJF5kz8zJTJsITWb4Xj3o9/N/JJydZc3YNrTK1IvhwMMEER7n95MkeZMiQkLdvDxBZSNHFe+ue7BFhid9BRYeKLLJbRPuV7RmR78sEfOuWB2FhlonFVCJ7fpMnt8PZuRTjx9/H3v5fywcWCXP/vRmSoCIatP68i9gU4CchRFhUY9xCiLnAXICiRYuKcuXKGRhm5AIDAzHFcSzF7PG+fAn798Pu3XDokGzoc/2jzxdOTpAjBxQsKKdppUsHX30lVwQmSwYuLrL3tIMDNG/Ok2fPcFm/Xs51ffUKnj2TKyDv3YN790gUEkKiK1dwuXIFdu36f10WOzvImVOWZX7/VbCg2a+41OtBEkLQb0E/0iVNx/Sm03FOGPWY3cWLsjjp6NFQvnzk8UQXr+sVVwCL/Q4GOA5g0I5BOGR1oEzGMp/G4gqPHz+OM6+H5s1hyZK0FCmSlmTJLBtXZMz992bIu0UI4P7R9xmAm59tUxRY8V9ySglU1zTtnRBCNS42t7dvYe9eWXo6IACOHJFJQtNk3f4yZaBwYfDwgDx5ZEKyM3DyppMT4s0bmdAMERoqpxqdPg2nTslYNm/+/93dZMmgbFmoUEHOY86f33pWgsYxq06vYv+N/SystTDa5ATyV2RnZ9nGhKbQs2RPZh6aSZ+tfQhqExTtJBBb1qoVzJkj7xO2bat3NJZhSII6COTQNC0LcANoDDT9eAMhRJb3/69pmi+wSSUnM3r4EDZtkkvMt26Vd7ft7aFECejTRyalkiUheXLLxpUggVy0kTcvNGggHxNCzlveu1cOoO/YIWMHyJgRataUXxUqyKXzSqy9DXvLgO0DKJimIC0KRZ9xwsNlgqpcGTJksECAJpQ4QWJGlBtBu43tWHt2LfXymrYOoDUpXlx+xly4UCWoD4QQ7zRN64qcnWcPLBRCnNY0zee/n882c4wKyPLSfn6wciUEBspJDBkyQLNm8O238g3eJfIFmDFSsyYPLl7ENTbH0DTInFl+NWkiH7t+Hf7+WyYqX1+YOVPGXqeObN1aqZL+JbRt2Pwj87n06BKbm26OtJXGx7Zvh2vX4OefY3/umjlrxv4gRmrp0ZLJ+ybTb1s/auWqRQJ7WX+vZk24ePEBxO4VbDU0Ddq0kZ9Bz56VySrOE0Lo8uXp6SlMYceOHSY5jqUYFe+bN0L4+QlRp44QCRMKAULkyCFE//5CHDggRHi42eJ8z+zP76tXQvz5pxCtWgnh4iL/jSlSCNG1qxCHDhn9b4zTrwcDPH/zXKT5JY0ou6isCDfwuWvaVAhXV/mriI61Pr8bgzcKhiFmHpj5yePWGm9koov39m0hHByE6NPHMvFEx1TPL3BIRJAnVCUJaxQcLD8mZcgA9evDvn3QpYuc9BAcDGPGwNdfx437N46OsmzzokVw5w5s3CgXfcybJ+u8FCwIv/4qp8Er0Zq6fyp3XtxhbMWxBt2PefIE1q6VF7eOjhYI0Exq5KhBaffSjNw1klehr/QOx2zSpJFXhkuWyFu+cZ1KUNYiLAzWr5eLHHLnhilT5L2kP/+U65AmTZK9DyyZlMqVw6NHD8udL1Ei+de3fLlcmzV7tpxR2KOHnNzRrp2ceKFE6NGrR/wc9DPf5fyOUu6lDNpn2TI5QbNNG9PEUM63HOV8y5nmYEbQNI0xFcdw6/mtDz2jypWDHj08LB6LubVpIz/L/WXepWZWQSUovT19ChMnQvbs8h7M+fPyCun6dfnRtnp1OQEivnF1hY4d5ZT5w4flvbbly2WS9vKSyTy+LauPxvg943ny+gmjK4w2eJ/58+UET2P7PlmjspnK8m22bxm7eyxP30S9vs+WVasGadPCggV6R2J+KkHp5dYt6N9fzmTr3RsyZYI1a+DSJfl42rR6R2g9ihSRQ343bshkfvWqTOa5csmrrNev9Y5Qd7ee3WLq/qk0K9iMAmkKGLTPkSPyq127uDFaDDC6wmgevnrIpL2T9A7FbBwcZAHZP/+UAw1xmUpQFuZ4+zb4+MhZbT//LGfgHTokZ+Z9/70qHRQVV1f48Ue4cEHOZkyRAjp1gqxZZeJ6/lzvCHUz+p/RhIaHRtvr6WMLFsj7Tk2bRr+trfBM50m9PPWYuHcioQnu6x2O2bRuLe8KLF2qdyTmpRKUpVy6BO3aUax5czkhoE0bOHdOvtHGhfEVS3JwkNPR9+2Ti5Nz55ZXoZkzk3HZsniXqK4+vsrcw3Np49GGrMmzGrTPy5fw++9yDo6ll8uZ24jyI3gZ+pJrGcfqHYrZ5MoFpUvLIVrxeV2fOEQlKHMLCYEOHWTZn99+42atWrKuzKxZkC2b3tFFrWFD7lpzmRhNk5NKtm+XDXOKFSPrvHnyimrSJPkuHA+M2jUKTdMYVHaQwfusWSNn8LVrZ9pYGuZrSMN8DU17UCPlTZUX74Le3Mk4k6LlT+oaizl16CA/4+7apXck5qMSlLncuwe9esnJD76+cijq0iUudO9uO8v1O3fmZkwbA1layZKweTNHpk+HQoXkc58jh7x39S7udl698PACi44toqNnR9xd3KPf4T/z5smXZtmypo2n89ed6fx1Z9MeNAaGeA0hXAvlYd7JeodiNg0ayFHvOXP0jsR8VIIytZcv5Sy8bNnkVPEmTeTHnGnT5FRpW/LyJXY2NgHhab58svxTYKCceNKhg6z5t3ZtnBwLGbFzBAnsE9C/TH+D9wkOlp1zzTE54mXoS16G6n/lmjV5VrwLtGbjrU1cf3I9+h1skJMTeHvLq+H7cfR2m0pQpvK+oFmuXDBwIJQvLwumLlokJ0TYourVKdgv0gbK1s3LC/bsgXXr5LtwvXrwzTdw8KDekZnM2Xtn+f3k73T5ugtfJf3K4P3mz5crF2La1j0q1X+vTvXfq5v+wDFwdvYgwsLkBJK4qn17WS96yRK9IzEPlaBM4Z9/ZGWHVq1k64rAQLlOJ14Uy7Jimiano588KcdBzp+HYsXkx87rtv+petjOYTg5OPFT6Z8M3ufNG/mZqVatuL+SwfFNJlJcacGCowu48viK3uGYRYECcnR77tw4OUCgElSsXLsm21yWLQt378ppUfv2yU/vivVwcJBDfefPw4ABsl9BrlwwapTNrqE6eeckq0+vpnvx7qRyTmXwfn5+sp1Xp05mDM6KpAn+EXvNnpE7R+oditl06PD/Ydu4RiWomHj9GkaOlG9yGzbA0KHw779yQYmhvZYUy0uWTHbkCw6GGjVg8GDZGmT9epv7+Dl853CSJExC71K9jdpv9mw5OSK+tA1P8DodPkV9WHx8MRceXtA7HLNo2FA2A4iLkyXUu6mx/vxT3nQfMkTWjfv3Xxg2DJyjbwqnWIlMmeRV1LZtstZfnTqypNQF23gDO3b7GGvOrqFniZ6kcEph8H4nT8pGyx07xq/PUf3K9COhfUJG7oqbV1GJE8tRaz+/uDdZIh69TGPp+nWoW1cmJQcH2cF29WpZqiiuatWK21Wr6h2F+VSoAEePwuTJckJF/vzyw4aVD/sN3zkcl0Qu9CzZ06j9Zs+W9XhbtzZTYEArj1a08mhlvhMYoVUrqFr1NmmTpKXL11347cRvBN8P1jsss+jQQU6W8PXVOxLTUgkqOqGhsoxOnjyyyd7YsXDihGw/GtfF9QQFsgtwjx7ySrhuXRg+XCaqrVv1jixCh28e5o9//+DHkj/i6mh4I77nz2VZnIYNwc3NfPFZY4IC6FO6D44OjozYNULfoMykQAE5SXXWLFkCKa5QCSoqBw7I2Xm9e8va/WfOQL9+8afb6/37JHjyRO8oLCNdOlktfetWOf5VpQo0by4nv1iRYTuHkdwxOT8U/8Go/ZYtg2fPZBlIc7r/8j73X1rHONP9+/Dkieyum9o5Nd2KdWP5yeWcvXdW58jMo0sXWVHN31/vSExHJaiIPH8uP1WXKCErQvj5yUZ6trqeKabq1yff0KF6R2FZlSrJK+QhQ2DVKlnnb+FCq5hEcfDGQTad20TvUr1xcXQxeD8h5PBewYJySrI51V9Vn/qr6pv3JAaqXx+GDs334fvepXrjnNCZ4TsNL6hrS+rWlatcZszQOxLTUQnqc3/9BfnywdSpci7umTNykWdc6UegRM/RUQ71HT8uh/vatpWJ6+JFXcMaEjgENyc3uhXrZtR++/fLW20+PvH7ZZwycUq6F+vOqtOrOHkn7tXoS5hQ3ovy97eZ+T7RUgnqvfv35VSY6tUhSRI53WnGDDl/U4mf8uSRi65nz5YtUQoUgAkTdKntF3Q9CP8L/vQt3ZekiZIate+vv8qXsbe3mYKzIb1K9SJJwiRx9iqqQwdZJWTWLL0jMQ2VoISQLS/y5oUVK+SapiNHoJRhLbOVOM7OTs7LPnNG3pfq00e+Nk6dsmgYQwOHkipxKrp83cWo/W7ckCPUbdvKz13xXQqnFPQs0ZM1Z9dw7PYxvcMxuXTpZFu5hQvjRjH/+J2gbt+Wv83GjeX9pSNH5DTjRIn0jkyxNunTy7p+K1fC5cuyy+/IkXKWp5nturqLgEsB9CvTD+eExq23ez+rq4txeS1O61myJ66OrgwNjJv3V7t2hceP5ZwfWxc/E5QQcs5t3rzyntPPP8t+QgUMa5Udb3TqxI1atfSOwnpompyn/f6+5JAhcpbnMfN9EhdCMHjHYNImSUunosbVJ3r9WlYXqFVLtsiyhE5FOxkdp7l06gS1at344nFXR1d6lezFhuANHLwRd4oHv1emjHwrmzbNKub2xEr8S1A3b8q/2BYt5D2G48flsI1qtf6lRo24V6GC3lFYn1Sp5MfTdevkVfjXX8sr77dvTX6q7Ze3s+vqLgaUGYBTAiej9l2+XN5a7d7d5GFFqlH+RjTK38hyJ4xCo0ZQocK9CH/2Q/EfcHNyY0jgEAtHZX6aBj/8IN/aAgP1jiZ24k+CEkIWc82fX7YJnzRJtqLMlUvvyKzX9esksrJ1QFalTh04fVq+Ew4fLiulHz9ussMLIRgSOIQMyTLQ3rO9kfvKiaj588vOL5Zy/cl1q+m/dP063L0b8XB90kRJ6Vu6L/4X/Am6HmThyMyvWTP5OWrSJL0jiZ34kaDu3JH3mpo3l+tajh+Hnj3ldBclct7e5BkzRu8orJubG/z2G/zxh7yaKlrUZPem/rrwF0HXgxj4zUAcHRyN2nf3bjny2L27ZaeWe6/zxnuddUwX9PaGMWMib3nT5esupHZOzeAdgy0YlWU4Osr7jps2ydrItiruJ6jVq+W6pr/+gl9+kTXpc+bUOyolrqldW15N1a8v702VLCm/j6FwEc6g7YPI4pqFNoXbGL3/lCmQIoX8JK1EzDmhM/3L9Gf75e0EXgnUOxyT69RJzveaMkXvSGIu7iaoBw9ku/WGDeUd4qNHZckiddWkmIubm7zxs3o1XL0Knp5y3VQMiqOtO7uOo7ePMqzcMBLaG1da6/x5eXvMx0dWulYi51PUh3RJ0zFw+0CErc8o+Ezq1HLQaPFi261yHjcT1PuWGGvWyKZ0QUGqu61iOfXry6unatXkBBwvL6OW9oeFhzF4x2DypMxDswLGXwJNnCirClhycoStcnRwZEjZIQRdD2Lz+c16h2NyPXvCq1e22ysqbiWop0/lisSaNeUdwgMHYOBANUNPsbzUqWHtWliyRC7qLVQIZs40aN7vspPLOHv/LCPKj8Dezrgr/jt3ZMuFVq0gTZqYhR7ftCnchqzJszJw+0DCRbje4ZhUvnzw7bcwfTq8eaN3NMaLOwkqMFBWw/T1hf794eBB8PDQOyrb1qsX1xs21DsK26Vp8k79qVNQurS8a121KoSERLpLaFgow3YOo3Dawnyf53ujTzl9upzt3qtXbAKPuV4le9GrpE4n/0yvXtCwYfQzChPYJ2BEuREcv3Oc1adXWyAyy/rxRzl/Z9kyvSMxns0nKLs3b+R1bPnysrfP7t0wZoyqBmEK333HA1XyKfYyZJC9xGbOlK/P/PnlzL8IrqYWHl3IpUeXGFVhFHaacX+ez5/L8pF160KOHKYK3jjf5fqO73J9p8/JP/Pdd1Cq1AODtm1SoAkFUhdg8I7BvAu3fK1Fc6pcWV7Ajx9ve72ibDtBHTyIZ4cOcppKly5yXq25+wnEJ8HBOF27pncUcYOmyWlVx4/LcRdvb2jQgASPH3/Y5GXoS4bvHE5p99JUy17N6FMsWACPHkHfvqYM3DjB94OtpmttcDBcu2bY4mY7zY5RFUZx/uF5Fh9bbObILEvTYMAA+XysW6d3NMax3QT1+DFUrIj9q1eyydz06eBsXJ0yJRodO5LL1lf6WZvs2eUC8fHjYeNGvm7TBjZsAODXfb9y6/ktxlcaj2bk4qXQULkos2xZKF7cHIEbpuOmjnTc1FG/AD7SsSNMmmT4Qvzvcn5H8fTFGbZzGK/fvTZjZJZXr568qh4zxrbKH9lugnJ1hTVrOLRwoezVoyi2wt5eXuYcPMjb5Mmhdm0etGvKuN3jqJWrFqUzljb6kMuXw7VrctKgEjOapjG24lhCnoYwbf80vcMxKXt72Qz86FE52mwrbDdBAVSuzDvVQ0CxVQULcnj2bOjfn7Ehy3n++iljktQ2+jDv3snVFB4eUKOGGeKMR8pnKU+17NUYs3sMD1891Dsck2reXN4OtaXiMLadoBTFxokECbj2kw/TSiWg5eVk5Puuraz0aUQznxUr5OLcIUPid8dcUxlXaRxPXj9h7D9j9Q7FpBImlFfY//wjv2yBSlCKorOhgUPR7OwY/vNB6NZNVnktXBj27Yt237AwefVUsKCstqTEXsE0BWlRqAXTDkzj2pO4NUmoXTtImdJ2rqJUglIiN2gQV1WfcLO6+PwiS44voWuxrrinzSmTU0CAXP5furRcaB5FG49Vq+TsrCFDZPNfvQ0qO4hBZQfpHQYAgwaBt/fVGO07svxIgDhXSDZxYrk+zN/foM8/urOCl7RitSpV4pGnp95RxFlCCGZenImroysDvxn4/x9UrAgnT8pyEGPGRNoUMSxMFk7Pn1+ufbIGlbJWolJW65i0VKkSeHo+itG+7i7u/FD8B5YeX8rx26ZroWINunaVhXYG20DuVQlKidyxYyQxooacYpzN5zdz5PERhnoNJblT8k9/6OIiFzZt3Ah378ok9VkbDz8/OHtWvtFYw9UTwLHbxzh223wdho1x7BhcuBDzSVT9v+mPq6Mrvbf2jlOFZJMkkcV2AgKsv6GhQS9rTdOqapoWrGnaBU3T+kXw82aapp347ytI07RCpg9VsbgePcg+fbreUcRJoWGh9N7aG3cn96hbpNesKUslNWz4/zYep04RFgYjRkDevLI2rbXo4d+DHv499A4DgB49YPr07DHe39XRlWHlhhFwKYBN5zaZMDL9+fhAunTyw401595oE5SmafbADKAakBdoomla3s82uwx4CSEKAiOBuaYOVFHikjmH5/Dv/X/xyepDAvsEUW/s5ia7Qfv5ycVOnp4sabSJM2dkI19ruXqKizoV7USelHnotaUXb8Mivxdoa5yc5D263bthyxa9o4mcIS/tYsAFIcQlIcRbYAXwyXwhIUSQEOL9YO8+IINpw1SUuOPRq0cMCxxGhSwVKOlmRGmuevXg9Gle1azPkDWFKOZ8inq5Y94UUYleAvsETPp2Eucfno9zi3fbtoVMmWSistarKEP6UKQHPi4JHAJEVUylLfBXRD/QNK0D0AEgTZo0BJpgAPT58+cmOY6l2FK8Ho8fExYWZjPxgm08vzMuzODhq4c0SdGEFy9eGB3vytQjCMGdRfggimzlcosWXG/cGGGBtjLRPb+P/6staA2/g8ePPUzy+nXEkeIpijN0+1CyPc+Ga0JX0wQYAUu/fhs1SsvPP+dm9OhTlCljfFdDs8crhIjyC2gAzP/oe29gWiTblgfOAm7RHdfT01OYwo4dO0xyHEuxqXi9vMSjQoX0jsIo1v78nrpzStgPtxft1rcTQhgf78OHQiRPLkS1akKIO3eEaNBACBCicGEhjh0zfcCfiS5er0VewmuRl9njMISXlxCFCj0yybHO3jsr7Ifbi44bO5rkeJGx9Os3NFSI3LmFyJlTiLdvjd/fVPECh0QEecKQIb4QwP2j7zMANz/fSNO0gsB8oLYQwrAa94p1GzOGS+3a6R1FnCGEoOtfXUmWKBljK8WsSsH48bJO8tixyKaIq1bJe1M3bkDRonIihY6d6cZUHMOYitaxCnTMGGjX7pJJjpU7ZW66fN2FeUfmcfTWUZMc0xo4OMAvv8C5czB7tt7RfMmQBHUQyKFpWhZN0xICjYENH2+gaVpGYC3gLYQ4Z/owFV2UKsXT/Pn1jiLOWHl6JYFXAhlTcQwpE6c0ev8bN+DXX2VNtUIfz5OtVw/OnIEmTeRU9MKFYe9e0wVuhFLupSjlbh09xEqVgvz5n5rseMPKDSNl4pR0+rNTnOq8W6OGXHo3bJhs12JNok1QQoh3QFfgb+Tw3SohxGlN03w0TfP5b7MhgBswU9O0Y5qmHTJbxIrlBAWR7NQpvaOIE569eUavLb0o8lUR2hdpH6Nj9OsH4eFyevkX3Nxke/nNm2XnwtKl5Tzr589jF7iRgq4HEXQ9yKLnjExQEJw6lcxkx0vulJwJlSew/8Z+FhxZYLLj6k3TYOJEmZxGjdI7mk8ZNEFVCLFZCJFTCJFNCDH6v8dmCyFm//f/7YQQyYUQHv99FTVn0IqFDBhA1vnz9Y4iThi5ayQ3n91kRvUZ2NvZG73/nj2yCW+fPpA5cxQbVqsGp0/L5ohTp8rmiJs3xzhuYw3YNoAB2wZY7HxRGTAA5s/PatJjNi/YnLKZyvJTwE/ce3HPpMfWU6FC0KYNTJsG1rQ2X62gUBQzO333NJP3TaaNRxtKZChh9P5hYbI8jbu7rAAQraRJZe/33btl2YAaNaBxY7h92/jglU9omsbM6jN59vYZ/QK+qFlg00aOlBXPf/pJ70j+TyUoRTGjsPAw2m1sh0siF8ZVGhejY8ybJ8v2TJhgZNPoUqXgyBE5JrhuHeTJA3PmyHFCJcbypc5Hr5K9WHhsIXuu7dE7HJP56is5jLx2rWxSbg1UglIUM5pxcAb7QvYxpeoUUjmnMnr/Bw9kQfPy5aFBgxgEkCiRrGdz4oTsaOjjA2XKyGK0SowNLjuYjC4Z6bCpA2/e6Tdr0tR695at4Tt3htdW0PVeJShFMZOrj68yYNsAqmavSrMCzWJ0jMGD4ckTeTspVs0Ic+WC7dth8WI5p7hwYflu9OxZLA4afzkndGZ2jdmcuXeGUbusbGZBLDg6wsyZ8j7UWCvo16gSlBK5KVO40LWr3lHYJCEEPn/KSa6za8xGi0F22btXrk3p0kW21Ig1TYMWLWQDqTZt5NStPHlg9WqT1bqZUnUKU6pOMcmxYmvKFOja1Xx3/KvlqEbLQi0Zu3tsnFobVakSNG0K48bJl4qeVIJSIufhwfPsMa8GHZ8tO7kM/wv+jKk4hkyumYze/80bWSvN3d0MU3/d3GDuXDkPO1UqWSm9ShXZuyOWPNJ64JHWwwRBxp6HB2TPbt5p9pO/nUwq51S0Xt86ThWTnTRJFpTt1EnfOn0qQSmRCwgg+eHDekdhc248vUG3v7pRIkMJunzdJUbHGDlS5ou5c+WkPLMoWRIOHpTjhwcPyr7xffrA05gvbg24FEDApQATBhlzAQFw+HDy6DeMheROyZldYzbH7xxn/O7xZj2XJaVJI6+gduyApUv1i0MlKCVyo0aRSc9Xpw0KF+G0Wt+KN2FvWFJnSYzWPB07Jt8cWraEb781Q5Afc3CAbt3kfamWLeWwX65c4Osbo9l+o3aNspp7MqNGwdKlxl+9Gqt27to0yd+EkbtGxqnuux06yM8wP/wgq5joQSUoRTGh6QemE3ApgElVJpHDLYfR+4eGyttDKVPKYRaLSZ0a5s+HffvkSuDWraF4cblCWInW1GpTcUvsRtO1TXkZ+lLvcEzCzk7OqXn7Vr4m9RjqUwlKUUzkzL0z/BTwEzVz1qSDZ4cYHWPcODh6VK6zTZHCxAEaolix/5etuHVLTklv3BguX9YhGNuRMnFKltRZwpl7Z+i9pbfe4ZhMjhxy/d2WLfoUk1UJSlFM4G3YW5qtbUbShEmZ/938GM3aCwqSHXKbNJH1X3VjZwfNmskpXEOGwIYNkDs39OmDg4Vr+9mSytkq07tkb2YdmsX6f9frHY7J+PjIoebeveH8ecueWyUoRTGBPlv6cOz2MeZ9N480SdIYvf/jx3Jqb8aMMGuWGQKMCWdnmTHPn5fBTZxI8WbNYPJkXVt6WLPRFUdT5KsitN3QlpvPvuhKZJM0DRYskGWQWrSAd+8sd26VoJTIzZlD8I8/6h2F1Vt5aiVTD0zlh+I/UDt3baP3F0LekL5xA5YvBxcXMwQZG+nTw6JFcOQIz3LmhB9/lBMpli6VhQI/MqfmHObUnKNToJ+aMwd+/NGyC3kS2idk2ffLePXuFc3XNudduAXfzc0ofXr5wWnfPrl43FJUglIilysXrzJm1DsKq/bv/X9pt7EdJTOU5OfKP8foGAsX1dEeTwAAGX5JREFUyrWyI0fKeQlWy8ODE7/8Igu1ubnJj9MeHvDHHx/uoOdKmYtcKXPpHKiUKxdkzPjK8udNmYuZ1Wey48oO+gcYUt3XNjRuLD9IjRsnR30tQSUoJXIbN+IWZB29fazRi7cvqL+qPo4OjqxqsIqE9gmNPsaFC0no1k02jOvb1wxBmkOlSnLd1IoVcqivbl2ZWbdsYeO/G9gYvFHvCAHYuBGCgtx0OXdLj5Z0LtqZCXsnsPLUSl1iMIdff4UiReRnk0umaVYcJZWglMhNnIj7qlV6R2GVhBB02NSBM/fOsLzecjIky2D0Me7ehUGD8pMihZw0Z2dLf412dtCokezku2AB3LkD335L5lreBM4fpG/5gf9MnAirVrnrdv7JVSdT2r00bTa04eSduFGc19ER/Pzkr79+fXj71rwvWlv6k1AUqzFy10iWnVzGqAqjqJS1ktH7v30r/8AfPUrA+vWQNq0ZgrQEBwe5SObcOZgxg7T3XzNxwgn45hs5FGgFiUovCe0TsrrBalwSuVB3ZV0evbKyfuoxlCWLvP149ChMnWreUmgqQSmKkZadXMbQwKG0KNSC/mVido+he3f45x/o2zcYT08TB6iHRImgc2eaji/OJO8ccPWqrO9XvDisXx9ve1B9lfQr/Br6ce3JNequrBtnWnPUqCEnS6RJ88asn0FUglIUI+y5tofW61tTNlNZ5tacG6P1TtOnyxlmP/0EFSveNUOU+glNYMeGCulkv4a5c2VDqzp1ZE/xpUtlqYx4ppR7KXzr+LLz6k5arW9FuIgbyXrECPD2vhq7NjDRUAlKUQx04eEF6qysQyaXTKxtuJZEDomMPsaKFfLqqVYtGD3aDEFai0SJoH17udj3t9/kUF+LFpAtm6zhFM/6UDUt0JTxlcaz4tQKftpqRT3VrZxKUErkli7l7IABekdhFa49uUbFJRURQvBn0z9xS2z87DB/f/D2ltWDVqwAe+PryFq9pXWXsrTuRwWGHRxkVYoTJ2DTJsiaFXr1kn1EeveWQ4HmimUpDBgQ+xYiptKnVB+6fN2FCXsnMHX/VL3DsQkqQSmRc3fnTerUekehu5vPblJhcQWevH7CVu+tMSoCGxQkyxflzy+nPzs5mSFQK+Du4o67SwQz5+zs5I2LwEC52rNqVdlRMGtW2cv+n39MPqHC3R1Sp7aeez6apvFr1V+pk7sOP/j/wPwj8/UOyeqpBKVEbuVKUm3frncUurr34h6VllTizos7+Df3p/BXhY0+xqFD8r05XTp5FWV1lSJMaOWpldGv+yleXF5CXrokr6ICAqBsWXmfas4cMFG9v5UrYfv2VCY5lqnY29mzvN5yqmWvRvuN7VWSioZKUErkZs0ivaWWjFuhO8/vUGlpJa48vsKmJpsokaGE0cfYtQsqVABXVznrOo3xZfpsyqxDs5h1yMBighkzwvjxssbTvHlyzNPHR9bV6dIFjseut9KsWbBhQ/pYHcMcHB0cWdtoLVWzV6X9xvYsOLJA75CslkpQihKBS48uUXphaS48vMD6xuvxyuxl9DH8/WUV6PTpYfdu2WZJiUDixNCuHRw5Ilt91KolF/96eECJEjJ5xaLLrzVydHBkXaN1H5LUrIPWUiHYuqgEpSifOXHnBKUXlubR60dsa7GNytkqG32MVavk+2yePPIqKr31fZC3PpoGpUrJ2Q03b8p7VM+eyQJwadPKGSbbtn1RoNZWvU9SNXLWoPPmzvQP6B9npqCbikpQivKRwCuBlF1UFnvNnn9a/2P0sF54uOxQ0aiR7P23fTuksq7bILYhRQrZa/zUKdi/X7aj37hR1gHMlEkWLjxxQu8oY+19kupQpAPj9oxj7L9jeRv2Vu+wrIZKUIqCrK03df9UKi2pxFdJv2JPmz3kTZXXqGO8eAENG8KwYfLDfkCAvPekxIKmyUw/a5bs8LtihaxWOnmynFSRL59cMRps2bYapuRg58DsmrMZXWE0AXcD+Pa3b7n34p7eYVkFlaCUyPn5cXr4cL2jMLtXoa9otb4VP/j/QI2cNdjXdh+ZXDMZdYyLF6F0aVi3TrbIXrxYFtaMb/wa+uHX0M88B3dykpemGzbIZDVjhmz7MWyY7Pjr4SF7lpw+DULg5wfDh582TywmpmkaA74ZwIDcA9h7fS+F5xQm6LrqJKASlBK5lCkJjctzooFzD85RZlEZlhxfwjCvYaxrtA4XR8P/zULIfk6FCsk1p5s2yXWo5iz/Ys1SJk5JysQpLXCilNC5s7zBd/26vF/l7Cxb1OfPD7lzk/KXn3C/dsSm7llVTlOZvW33ksghEV6+XkzZNwURjwvuqgSlRM7Xl7T+/npHYRbhIpwZB2bgMduDy48us77xeoaWG4qdZvifxIMHsiJ527bw9dfylki1amYM2gb4HvPF95ivZU+aPr28X7Vnj5yyPnMmZMxI+MRJFOneXU6waNlSLox6+NCyscVA4a8Kc7jDYWrmrEnPv3tSa0Utbjy9oXdYulAJSolcHE1QIU9DqPpbVbr+1RWvzF6c6nyKWrlqGby/ELK8XL588r79+PHyfpO7fq2HrIYuCepj6dJBp06wdSvflbhP34wL5Fz/jRtlS9hUqeRMwREjZHkPKy1e6+roytqGa/m16q9su7SNfDPzsfDownh3NaUSlBJvvHn3hrH/jCX39Nzsub6HWTVmsbnpZtIlTWfwMU6fhvLl5SSITJnkBLO+feNmXT1b98LBhS3Jv5efJu7elQlp0CB4907etypdWt7DqlVLDhEeO2ZVbUE0TaN78e6c6HSCQmkL0XZDW6r+XpXg+7Y7IcRYKkEpcZ4Qgk3nNpF/Vn4GbB9A5WyVOdXpFD5FfQxul3Hjhrzl4eEBJ0/KThJ790Jh4ysfKXpwcICSJeUagAMH4P59WL0amjaVXYF79pS/zPcJ6+ef5ZDhG/1r+WVPkZ0dLXcwo/oM9l7fS/5Z+em2uRv3X97XOzSzc9A7AEUxFyEEWy9tZfjO4QRdDyJ3ytz83fxvqmSrYvAx7tyBsWNh9mz54bpDB/kel9IC8wAUM0qRQt5ArF9ffh8SAjt3ymK2u3bJIUGAhAnB01PWDyxRQv43UyaLz4Kx0+zo/HVn6uetz7DAYcw8NJOlJ5bSt3RfunzdxaiJPbZEXUEpcU5Y+P/aO/fgqKo8j39+3UlIwvuRECAvUJ47USDo6IJOlBmHYayVLcVxVhSDo8W61uyU/oErlFVjlVWwUjq7swI17jjDOIws4zguMLFEWILFjDCCJjxEQhjejwB5kZAXSZ/949xA03TSHUh3305+n6pT99x7T9/+5self/f+zu+c08bGso1Mf2c63/3tdzlee5y3Zr9F6cLSsJ1TaalNfsjJsQsMzpt3ZVVzdU49kcxMuyzI22/bMVUVFXbMwI9/bOO3q1bZPqzRo20/1qxZsHgxfPCBnfQ2SqHB9L7prPj+Cvb+815mZM9g8f8tJvtn2by85WXOXepZi1+CvkEpnVFUxJ5PP+XeWOsIk8qGStaeWMuCny/gSM0RsgZksfL7KymcXBjW4oINDfDhhzZ8t22bnSKusBBeeAHGdn2FjV5J0eNFsZZwhaIi+PTTPXAjd3B6ul0JeM4cu3/5so3t7twJu3fbKeqXLbuawt6/vx1rkJdn09zz8mwWzZAh3fb3+DMpbRIb/2kju0/vZtmfl7F0+1Le3PEmcyfN5ZmpzzAje8YNrfbsNtRBKR2TmorP5aNNGy83UnSoiLX717Lh4Aaa25q5N+deln57KXMmzCHJm9Tp51tabFRnzRr7MFxfbyd1ff11+wY1eHBU/oweQ2piaqwlXCE1FZKTu+nNJjHRzmAxderVY42NNmumpMSW0lL43e+gtvZqm/R0OyHjxIkwfjyMG2efdnJz7TVvkvyR+aybu46yyjLe/OxN1uxdw7t73mXCsAkUTi7kkUmPMGbwmJv+nlihDkrpmBUrGFlWBgUFsVZyDecvnWfT4U0UlRex4eAG6lrqSO+bzjNTn2GKbwoLHlzQ6ecrKmDTJtvN8PHHdqLsgQNtBGfePLjnHru+ntJ1Vny+AoDn7nguxkrscKiyspGRu31TUmDaNFvaMcZm1Ozda53X11/DgQN2DFZ19dV2Xq+NH99yiy1jxkBuLv0rK2HSJBtG7MIb0Lih41j54EqWP7CcdfvX8fYXb7No8yIWbV7ElIwpPDzxYWaPnc3tGbd3aaxfrFEHpXTMunWk19TEWgUXGi7wlxN/Yfvx7RQfLWbX6V0YDGmpacydNJcf5v2QgtwCEjwJFBcXX/NZY+w0RH/9q+373rbN/maAHb/56KPw4IN2qIzLXxbjgnX71wHucFDr1kFNTZRXhBax/VmZmdeO2jbGjuwuK7Pl0CF7Yx4+fI3zygc7jis52Q6sy8qy1xo16moZMcKWjAybxOFH36S+FE4ppHBKIUeqj/DBgQ94/8D7LNm6hCVbl5CWmsbMMTO5P/d+7s66m4nDJuL1uHeMhDooxTX4jI8TtSf46vxXlJwtoaSihJKzJZRVlgGQ6EnkjlF38NOCnzLr1lnkj8y/5mmwpgb27x/A4cM2c7ikxHYXtEdcBgyAGTNsv9L999tojb4pKVFBxGbXDBtmBwoHUlsLx46xd8MG8vr3t9M3HT9uy9atdu7B1tbrPzdkiA0jDh9ut2lp9jvS0hg9bBgvDsnjxckFnL67lc21X7L5zJ/55Mhm1u5bC0C/pH7cOepOpmRM4Rvp3yAvPY9JaZNISUyJsEHCIywHJSKzgP8AvMB/G2OWBpwX5/xsoAF4yhjzRTdrVaLJmjWwY4d9YsvNhddes1lON0FzazMVlyo4W3+WUxdPcbz2OMdqj3Gs9hiHKg9xqOoQTa1NV9qPHjSa2zNup3ByIVPTppPlmUZtZQqnTsFnpfD+KTh6FI4csYlUlZUAto8gOdn2UT/2mI3A5OfDbbfpgNreQgRu38gycCDcdhuVVVXBQ+ptbXD+vA0fnj1rHdaZMzZeXVFhByLv2WPHd1VV2Tc2P0YCTwJPejyYgQM4lJ3JzhwvO4e3sqPmC/7rcDHNHttfJwijPAO5NSmDW1Mzyek7iqwBmWQOymbU4ByGD81m0KARSN++ETdLSAclIl7gLeA7wEngcxFZb4z5yq/Z94CxTvkmsNLZKi7HGIPP+GgzbbT6WmnztdH6P+9x+cWf0JrUzIW+l7lw6gTN//YjWpqP0vzATBovN9HQYkt9cwP1zZeoa75EXUs9tY0Xudh8kdrmWmqba6huqqSmuYralkrqWq8PFyaRykCyGdB2KxNavkPKpfF4qydgzt5G3flB7K6Gjy/Y/uhAEhNtGH/0aDucZcwYaGvby6OP5pGbq86ot7JmjR2v1j7G9tgxuw8ud1Kd4fXakF5GRui2bW3WSV24YJ/aqqrstroaqqqQ6mrG1dQwrraWJw7UQk0NbfUXKZdq9qXUsz/NcHhwDeVDalg/5GvO9bv+KxLbIP0S3FszhIKCyu7/ex3CeYO6Eyg3xvwNQETWAg8B/g7qIeA3xk4UtUNEBonICGPMmW5X7EefFybS6q2DP0XyW7oJcZ5oDBAyE9fv6UcC594yV7dirjlmrhxr3/qu7Jsrx31OaXO2Hczt9Xx75YSzbYITS+CXSzqX3toHmgZC8wBoGgSNQ6HxVmgYCpeGQ32GLXUjoSaHlsYhnEeoTrCZuv3721Dc4MH2yXfKFBuxaI9epKdfDcUPHXp9iK64uJJbbulcotKzWbzYDhnwp6HBHo9bB9UVvF77n6ULK2V6gfHAeGN4uKHBprPW1UFdHU0XqzhVfYyTF09ysv405xorOddSRUVCDf1TIvsWJaEmHxSRR4BZxpgfOftPAN80xjzv12YjsNQYs93Z3wIsMsbsCrjWs8CzAMOHD89fu3btTYl/+g+raWprjJusFEHw+Xx4wur4kCC1wCNypS7GOSbi1AXh+q0YD4IH8ODB1gWPczwBD148dQ14jBePScDXpy99mlrxmgQSSMA7OJ0EkkmkD4mSRJIk08fThyRJpY8k0ychEa/XR0KCcYqPxES7TUq6tqSk+OjTp43kZB+Jib5uGZxfX19Pv35BHvlciurtfnbvvlrPzKzn5MmrevPzYyCoC8SDff3pLr333XffbmPMtOtOGGM6LcBcbL9T+/4TwM8D2vwJmOG3vwXI7+y6+fn5pjvYunVrt1wnWsSF3pwcY2wU22xdvvxK3eTkxFpZSOLCvn6o3u7H7/Y1y5dvjafbNy7s60936QV2mSB+IpxH+ZOA/0ICmcDpG2ijxAuvvWZHOfqTmmqPK4rL0du35xCOg/ocGCsio0UkCXgMWB/QZj3wpFjuAmpNhPuflAjy+ON2vp8cZ9nznBy73ysC+Eq8o7dvzyFkkoQxplVEngc+xvalvWOM2S8iC53zq7Dd/rOBcmyaeWHkJCtR4fHHbSkutrncihJH6O3bMwhrHJQxpoiA3DPHMbXXDfAv3StNiTmvvMLggQNdN9WR4k68r3rJS8+j1dfKxLSJrJ6zOmZz8/XrZxPRlPgmPtLflOjT1gavvkp1V9Ke2md2VnolKQkplCwsYd9z+0jyJrFq16rQH1KUTlAH1Rs5ehQmTID58+30Co88YgeK5ObCq6/a+YB+/3t46inStm2zn9myxQ5KysuDBQuujoIM/IyiAPdk30N5VXmsZShxjjqo3srBg3Z4/Z49dmTsCjsLNcnJsH27nSOonaYmeOopO6nl3r12TrCVK6+eD/YZpdfS6mvlo/KPyEvPi7UUJc5RB9VbycqC6dNtfd4862AAfvCD69sePGjnExo3zu7Pn2+nBm8n2GeUXkdjayOTV01m2i+mkT0gm6enPh1rSUqco7OZ91YCp21o3w82AWSI2UaCfkbpdbT3QSlKd6FvUL2V48fhs89s/b33bB9SR0yYYPutyp0+hXffhW99K+ISFUXp3aiD6q1MnAirV9skiaoqu0haRyQnw69+BXPn2iQJjwcWLoyeVkXpIg0Ndp2/uXPvJjMT3ngj1oqUG0FDfL0VjwdWBaQBB45o/PWvOd++Qu3MmfDll9dfR0dBKg71L7tn4JHPLm1EcfFnFOg4vrhF36AURVEUV6IOqjeSmwv79sVahaIoSqeog1IURVFciTooRVEUxZWog1IURVFciTooRVEUxZWog1IURVFciTooRVEUxZWog1IURVFciTooRVEUxZWog1IURVFciZhQSylE6otFzgPHuuFSw4AL3XCdaKF6I4vqjSyqN7L0Vr05xpi0wIMxc1DdhYjsMsZMi7WOcFG9kUX1RhbVG1lU77VoiE9RFEVxJeqgFEVRFFfSExzUL2ItoIuo3siieiOL6o0sqtePuO+DUhRFUXomPeENSlEURemBqINSFEVRXEncOSgReV1EvhaRPSLyRxEZ1EG7WSJyUETKReSlaOv00zFXRPaLiE9EOkzHFJGjIrJXREpEZFc0NQboCFevW+w7REQ+EZFDznZwB+1iat9Q9hLLfzrn94jI1GhrDNATSm+BiNQ69iwRkVdiodPR8o6InBORoMtEu9C2ofS6xraOniwR2SoiB5zfhn8N0iYyNjbGxFUBHgASnPoyYFmQNl7gMDAGSAJKgUkx0jsRGA8UA9M6aXcUGOYC+4bU6zL7/jvwklN/Kdj9EGv7hmMvYDbwESDAXcDOGN4D4egtADbGSmOAlnuBqcC+Ds67xrZh6nWNbR09I4CpTr0/UBat+zfu3qCMMZuMMa3O7g4gM0izO4FyY8zfjDEtwFrgoWhp9McYc8AYczAW330jhKnXNfZ1vne1U18NzImRjs4Ix14PAb8xlh3AIBEZEW2hDm769w2JMeZToKqTJm6ybTh6XYUx5owx5gunXgccAEYFNIuIjePOQQWwAOu1AxkFnPDbP8n1BnUbBtgkIrtF5NlYiwmBm+w73BhzBux/JCC9g3axtG849nKTTcPVcreIlIrIRyLyd9GRdkO4ybbh4krbikguMAXYGXAqIjZOuNkLRAIR2QxkBDm12Bjzv06bxUArsCbYJYIci1g+fTh6w2C6Mea0iKQDn4jI186TVrfTDXpdY98uXCZq9g1COPaKqk1DEI6WL7Dzp9WLyGzgQ2BsxJXdGG6ybTi40rYi0g/4A/ATY8zFwNNBPnLTNnalgzLGfLuz8yIyH3gQmGmcAGgAJ4Esv/1M4HT3KbyWUHrDvMZpZ3tORP6IDbNE5Ae0G/S6xr4iUiEiI4wxZ5yQwrkOrhE1+wYhHHtF1aYhCKnF/wfKGFMkIitEZJgxxo0TnbrJtiFxo21FJBHrnNYYYz4I0iQiNo67EJ+IzAIWAf9gjGnooNnnwFgRGS0iScBjwPpoaewqItJXRPq317GJIEEzfFyCm+y7Hpjv1OcD170BusC+4dhrPfCkkw11F1DbHrqMASH1ikiGiIhTvxP7W1IZdaXh4SbbhsRttnW0/BI4YIx5o4NmkbFxrDNEulqAcmyss8Qpq5zjI4Eiv3azsdkmh7Ghq1jp/Ufs00UzUAF8HKgXmy1V6pT9btfrMvsOBbYAh5ztEDfaN5i9gIXAQqcuwFvO+b10kvHpEr3PO7YsxSYr/X0Mtb4HnAEuO/fu0y63bSi9rrGto2cGNly3x+93d3Y0bKxTHSmKoiiuJO5CfIqiKErvQB2UoiiK4krUQSmKoiiuRB2UoiiK4krUQSmKoiiuRB2UoiiK4krUQSmKoiiu5P8BmwOyAmBPFpcAAAAASUVORK5CYII=\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "これはカルマンフィルタでも考えることができ,\n\n- 状態システムモデルでの予測値を位置として,重みをその誤差(ex. 等速直線運動の誤差やバネ-ダンパ系の力の誤差)\n- センサによる観測値を位置として,重みをその誤差(観測誤差)(ex.オドメトリやGPSの誤差など)\n\nこのとき,内分点がフィルタリングステップの推定値になる.\n\n- もしシステムモデルの誤差<観測誤差: 観測値よりシステムモデルのほう予測値を優先するように重み付けする\n- 逆に,観測誤差<システムモデルの誤差:観測値の方を優先するように重み付け\n\nこの重みがカルマンゲインになる.\n\n参考:https://qiita.com/MoriKen/items/0c80ef75749977767b43"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"hide_input": false,
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.7.4",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"toc": {
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"base_numbering": 1,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {
"height": "calc(100% - 180px)",
"left": "10px",
"top": "150px",
"width": "165px"
},
"toc_section_display": true,
"toc_window_display": true
},
"gist": {
"id": "",
"data": {
"description": "内分点と重み付け平均",
"public": true
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment