{ "cells": [ { "cell_type": "markdown", "metadata": { "toc": "true" }, "source": [ "

Table of Contents

\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 解答例\n" ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true }, "source": [ "## 1\n", "\n", "代入して方程式の解を求める典型的な問題です.\n", "\n", "一歩づつ,出力しながら変形していくのがコツ.\n", "数式処理ソフトはやり方を教えないと動かないよ.\n", "\n", "```\n", "代入: subs\n", "展開: expand\n", "方程式の解: solve(eq, a)\n", "```\n", "\n", "sympyでは方程式の解solveに渡す式(eq)=0が成り立つ未知数(a)をとく.eqにはあらかじめ0となるように右辺を移項した式を求めておく必要がある." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "hidden": true }, "outputs": [], "source": [ "from sympy import *\n", "# init_session() # こいつ悪さします.消しといてください." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "hidden": true }, "outputs": [], "source": [ "x,a = symbols('x a')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "hidden": true }, "outputs": [], "source": [ "P = x*(x+3)*(2*x-3)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "hidden": true }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle 2 a^{3} + 9 a^{2} + 3 a - 4$" ], "text/plain": [ "2*a**3 + 9*a**2 + 3*a - 4" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "P0 = expand(P.subs({x:a+1}))\n", "P0" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "hidden": true }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle 2 a^{3} + 3 a^{2} - 9 a$" ], "text/plain": [ "2*a**3 + 3*a**2 - 9*a" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "P1 = expand(P.subs({x:a}))\n", "P1" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "hidden": true }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle 3 a^{2} + 6 a - 2$" ], "text/plain": [ "3*a**2 + 6*a - 2" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eq1 = (P0-P1)/2\n", "eq1" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "hidden": true }, "outputs": [ { "data": { "text/plain": [ "[-1 + sqrt(15)/3, -sqrt(15)/3 - 1]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solve(eq1,a)" ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true }, "source": [ "## 2\n", "\n", "高校の一年生の時にやる平方完成ですが,sympyに限らず数式処理ソフトは苦手なようです.微分して頂点の座標を求めて作って行きます." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "hidden": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "IPython console for SymPy 1.6.2 (Python 3.8.5-64-bit) (ground types: gmpy)\n", "\n", "These commands were executed:\n", ">>> from __future__ import division\n", ">>> from sympy import *\n", ">>> x, y, z, t = symbols('x y z t')\n", ">>> k, m, n = symbols('k m n', integer=True)\n", ">>> f, g, h = symbols('f g h', cls=Function)\n", ">>> init_printing()\n", "\n", "Documentation can be found at https://docs.sympy.org/1.6.2/\n", "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADkAAAAQCAYAAACsu9d7AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACeElEQVRIDc2W7VEiQRCGF4sA1BA0A8UMMIPzLgI1Ay1/wb8rzUAvhCMDycDTDDQEJAN8nmFmanaROoqSxbeqd3r7Y7t7ej62M5vNquFweFBV1TUketAEukb+ouC7I+Z/GfPcZbSeW+RjZZ3BYKDgHsGpAgF/y3AFnSZD5d8R5GdRFpSKrOB/IPsLncGPdjSAsgG8RnZ1Cmm4cRCvD12sGUi/C/wtLCF0kJcbBRbZh14xckZKaLiL3E5vGsZuxl81plvKhkgB5Jx5BV3IYo6aCpUR6wZP/hsdydv898ogyFJX75V3EZyVBgV/JI8+Hz7wFpyW1Qn8OWSnf0HiCZvRnN3Ok/iuzLAF4R/Mwk4uAKUFmnw6cZNN3uDYeDD9gSzMk9hZ8+NbKTLmbIFOvo35BwV8WiQaD5wRjndzs9BRO2gRCa57l4XdFPtQqQ/Cth7kamFh1cGb1zNjOF073pMlUNiRA8Z8pajn3X1bLl3tesiO1a8CbPVxtptwgsRkPtSeL/gt21I1w/IFn3fe3V57tU6isFv7jLUCdUaWC/Qd/IR+B27FB9+oXVXJDbkz78TmlZN0/xvxWTg7oo/L1Qnte4UExECHjHnW4A28cIUg09lZyvsPmdeNsrbxTECX5tLYoZMYOBsnjM2Dxhl+iB9wn6ZfJTsyRf7GmHDziX/SbXKc8vExsR1L9OLLuIvSTlmAhu6ZEn1kd5DF2j1PUWestneQqXuCtoFmY6qYr3lewk/t5CNkoen+g81I+9AL1zvHYvyIzo+Qk+JymcDnpatNWyCuK81mlA2ynvzfvXC6tpVcGYcE1z54yu8s43eWKVqWu5+ae+rLUvgA4gLyzNUAqaQAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle 2 x + 3$" ], "text/plain": [ "2⋅x + 3" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sympy import *\n", "init_session()\n", "x = symbols('x')\n", "\n", "f = x**2+3*x-2\n", "eq1 = diff(f,x)\n", "eq1" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACsAAAAzCAYAAAAO2PE2AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACw0lEQVRoBe2a31HjMBCHk5srIFwJoQP+dBA6IC1ACcw9Ja/QAbQQOgA6IHQAJcB1cPf9fBYjyZYszTBrHrwzGknrtfV5vVopmsw3m81i1iPb7fZPj9pExdi9TD8YfU/5iMq1CVV6kF3EI77dHM++0rjkbR7T9457BbYLCNY/LTEYdMl4l+2Y+tTqX5c6ygwWIMFdUTvYGe1zdA/Ua8o97awoZq1En/KiBXRjutD77RS52hL2BRBlGJVGAP9sO12utgwDefHAh/G8fOvrU21LzwYMgK5QKEUqE90FFxMdM8+68QE7oi3QU4pC45lSJGPAClBlBriywZ7622UD8QUCpNKVJtmO9iK42NMxi1lgjlR6GFwYKDSyYgYLhfYg+uSDHkwRW8asPvcjsKp9OWk7boHwrwVtS9irYGQ6gGuCydNKX/FLxOYzM1hg7igrir8ALCE6QzfoVZGbwWqwFqoITPaxWE6weOzq/gRb7bLCGybPFjqq2mzybLXLCm/I5lnyolaXJ4rqUtF2r9kCuhvo/3XtoRrbecpmCFZL4HHq5lJ9DqD0GbKbYrbGWzW2k2drvFVjm51gNQ8qsWWiLbFz+1ptut/VRx9kj9SzzGBb0FvqMwdDW+cG+qlTtKe1jNnmQMOBqgZSXlZ61HnsoFjCrqB5BTBeYLQZX6BXiGTFElZQb0DJk30Sv0THxjJm153R/yuaswReYnCSWXq2wwqgQPX5XYbo2PiKUWEB0cS6B/rGh0q1R4MFUD/JFcOp8OgwjwILoI7sf1F/5twOWY/CHBZAncIc+h6lvVTp4QtUprAAaUKdUscTSi+gpTcrlqlLntOE0uGcf4QkQB0rDU4yM1iAHigCVrzGMphjdYMZLJ47jAlr+6YxWwsX20+wsUe+qu9iVnku2PXQT+2Ovmrs5HNiFgwbNhcGSiX+HyS+258jGp5/R7zM+TmH0KYAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\left[ - \\frac{3}{2}\\right]$" ], "text/plain": [ "[-3/2]" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solve(eq1,x)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADMAAAAPCAYAAABJGff8AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACLklEQVRIDdWW7VECMRCGT4cCEDvADvzoQDqQsQPpQH/CP0c7wBKUDoQKHOkASlA7wOfJXM67jDccw/nDnQmb3du82a+EZJvNJvsvYzwen6a+ousy+uo72R/QZDI5BXYEHzWBx66P3V1uew7/UEa/zHWRLdB1EaLeuXTmz6E/f0AvYPaa4OaBTOEheLiO6ew788sEwyC/GCbLQGaMM+zUtV8ZgG8F3oEesK1UEAyrcoPepByVsJbohyW5Mm21MmxkxsxSyFRlp3rB7K9Ya6bLNEfoorcFG1GrwbDjNZs/Ndr5x0in16yrS0Aa5M/KZNbaBYAzttc0wd8qsq6ubaxyxvd42AMWsu1ngMcMq3YfbVqpDGCCfsHX8L0JHAMRM95wEdMgnvn+yPCbo7goWgkGQG+iXduLZbXkwZ/pdNkCecAo2pG5ybNNQ0d0UBjtgiFvSkPWhfLDLfvO7VW3EXhieYbq2i9dakCX2PcNxkjDn05qtU0WABtvnLbay8T0wBuke6N7zb/V+drd9wIwmAs2si3KFHo+15vltPfLtmGOzRWTE3hREebiZ3CTFV8GqsrUU8BmuVcwANivjgqh/0QxhxeOVQwSATuDNylp0AYYz+LTL99F8n8q+LBXMCLVkOevcgZxRNkg/RcvWoW52beyBp+ePc9CvAR88oRnD7aBkONrIyTtwNdmW5Q7o3NmS/Lt9BYdgq+Qdbp4vuS60E4uSOi3wGP1bC/faj59PPfZN6p1Yq5UeThLAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle -4.25$" ], "text/plain": [ "-4.25000000000000" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f.subs({x:-3/2})" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[ - \\frac{3}{2} + \\frac{\\sqrt{17}}{2}, \\ - \\frac{\\sqrt{17}}{2} - \\frac{3}{2}\\right]$" ], "text/plain": [ "⎡ 3 √17 √17 3⎤\n", "⎢- ─ + ───, - ─── - ─⎥\n", "⎣ 2 2 2 2⎦" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solve(f,x)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "hidden": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "7*x - 6\n" ] } ], "source": [ "def l_y(x, x1):\n", " m = diff(f,x)\n", " eq = m.subs({x:x1})*(x-x1)+f.subs({x:x1})\n", " return eq\n", "\n", "print(l_y(x,2))" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%matplotlib inline\n", "plot(f,l_y(x,2), (x,-4,4))" ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true }, "source": [ "## 3\n", "\n", "頂点を一致させる問題です.1番の問題と本質的には同じなんですが,未知数が二つになったので途端に見通しが悪くなります.\n", "\n", "一般の解答例では,紙面の都合上,解の導出を短く表示していますが,解いていく最中では,一つ一つ積み上げていってます.解答例を見ながら,「かっこの中側から打つ」ということの意味を理解して,実践してください." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "hidden": true, "scrolled": true }, "outputs": [], "source": [ "from sympy import *\n", "#init_session()\n", "init_printing()" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "まずは二つの曲線の方程式をy1, y2として打ち込みます.変数として宣言しとくことを忘れないように." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "hidden": true }, "outputs": [], "source": [ "x, y,a,b = symbols('x y a b')\n", "y1 = 4*x**2-8*x+5\n", "y2 = -2*(x+a)**2+b" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "y1の頂点を求めます.微分して傾きがゼロになるxをx0とします. [0]は配列の中身を取り出すためです." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAYAAAASVl2WAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAZElEQVQYGWP8//8/Aww0NDQYAdmrgdgYyP4AEmcBMgSA9GwgfgfEJkCsBMRwAFIAUhkKEgGyy4AUyBQ4YIKzcDBGFUACBj0chKHhJQQLN0ZQZAGDGBRBIOACxKC4OQfE94B4NwDm+hiAOyllRAAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle 1$" ], "text/plain": [ "1" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x0=solve(diff(y1,x),x)[0]\n", "x0" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "これ(x=x0)をy1に代入して,その値をy0とします." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAYAAAASVl2WAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAZElEQVQYGWP8//8/Aww0NDQYAdmrgdgYyP4AEmcBMgSA9GwgfgfEJkCsBMRwAFIAUhkKEgGyy4AUyBQ4YIKzcDBGFUACBj0chKHhJQQLN0ZQZAGDGBRBIOACxKC4OQfE94B4NwDm+hiAOyllRAAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle 1$" ], "text/plain": [ "1" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y0 = y1.subs({x:x0})\n", "y0" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "x=x0でy2が頂点となるようなa0を求めます." ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAOCAYAAAA1+Nx+AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAj0lEQVQ4EWP8//8/A7VAQ0ODEdCs1UBsDGR/AJnLAiIoAUCDBID6ZwPxOyA2AWIlIIYDalgAcmkoyESgZWVACuQLOGCCs2jEGLWAYMDSPIhYoMlsL9ApoORGLAgF6jtHjGKQBaBkZkyMYnLU0DyIhpwFwtBgFIIFJyM1CjtgPIIKOBBwAWJQYgElgHtAvBsAO3sgJ/LwrLIAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle -1$" ], "text/plain": [ "-1" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a0=solve(solve(diff(y2,x),x)[0]-x0,a)[0]\n", "a0" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "一度にやると上のようですが,これの中身を見て,一つ一つのstepをsympyに教えてやっているのを見盗ってください." ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFMAAAAOCAYAAABToiApAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACTElEQVRYCdWY0U3DQAyGA2KACjboCKBuABsAnQDYgIq3vqGyATABgg0oExS6AWwAdIPyfeFSQiA0JZciLFmX8zn2f3/sXNqV6XSaxJZ+v79JzCPGo9ixm45XB/tqQ+CuibveUOymw/4ae3QyebLHTe+2qfh1sUclM7TIhM2q/0piYI9KJux1AXXxr1j8AFsb+9pHrHpXoUXO50XBr43PAH1Cn9EbdBf7GeOfSBXs+LQAdxgAdhgPUPfSDbZRlMoMBE0YJahUWN9m8QHtca1KoA9gwLVgly7klZC52PER41nAPGJ+iW4z7zGKfRCFTAL5GfRje7NuQk9KScyT7vUTtgnjX0gV7Fak3ZSJWHfRbM9+uQzWwibvmLjZqrLHfWOdGU00t73xEUwL/wwA01SsVlv9R+E+8f0a53fBF8B+j2++ALaIN8aWFgDjnvElU4OLCwv32iISlE9UFmefhWF+kfskyBi3eft313VwlsSrjJ3caeHk4riX09w8vax7AAmoQzLbNy/+AmoHu0SbWOKKpAkqwe8TydqWIJWwg8134kyY20nuZdZN2JwntcgMJHwhAvsrsYeMaflnybAVK3gHW/a68B1k6xR9MMcX8oi7KnaLxQNIf38iFw+sE9Z6qyw0IT6p9GkZnEQTBoFYDalgkzwr+P7dkuxgWwqRIV/Z8Ak7Tlai+gI+117QmWBzzdM9WYn5RweBPYgkzASKrTDC7ieFQPycMPEGeoVKsgeTNiu5+G7CvBwpw052D0wxPooEP/diIdhVfuZJctryb3gJ8/vujraPAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle - 4 a - 4 x$" ], "text/plain": [ "-4⋅a - 4⋅x" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diff(y2,x)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACMAAAAVCAYAAADM+lfpAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABV0lEQVRIDe2W4W3CMBCFDeoACDZghHaFskFhhW7Q/kz+0g1oJ6jKBoENaEdgA6SO0O+BE10SW6paW/zJSS85zs69lzvbZFQUxZNz7hHIlmVZfl3c/Fe4WtwjxKyhrRjY5acPM8B91jAOD18nOoiJ1X2oTKwyN7GBFHF2yZw82ilHcAJb8ED8hXvPsrUJwnvYPsEzviABG7DGn3DvWRYxnuwDNolQVWqTfyT2XQfsPdgmn2zPxOAb2ATGt6e3WjMhz6sZl6tqqVVBi4mR8rvgE78LrpjWOtH9C2oNVbEUydvkSVXRLqkEOsZbIq2w5GJMcrtWFF6A858wgrSjVKWWJRcDiVqst2/IRM7vW3AAsgWxrlgXXDOX+f+6Lnn6DUJ9IszAO1BltK0V0xbvWRYxEKo6EtS1UKyZk7xNTeY/OIOYWNHqNbOhz5pjT9HYM8nifjHr+3sKqh/C7113FNtykAAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\left[ - a\\right]$" ], "text/plain": [ "[-a]" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solve(diff(y2,x),x)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABoAAAAJCAYAAAAsCDz7AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA3UlEQVQoFa2S0Q3CMAxEU9QBitiAEegKdIPCKvzmF0aACRBsQJkA1BGyARIbhHeRVVV8IVJLJztufJdcU8QY3RThvV/CswcBvMAVtPQPZFdMIQTZGq4LqKkl5Mg3kvpz6vdMzZyApGJeIjvqJGJ8qoNEtC5t451aA7/GhrneNsuuivXxa1i3kX0pJCTF2tb/pC1D3XjQDq9/JvtSZFlnhHJiIDReiTu+Dwco7UNuGv8bcTUgWYtYqzr3RrJdp5ZNKYx4xeJprYZeyH7ekMi6E3iABTgDHUCPRL2OPf0H7BBNUWJOkNAAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle - a$" ], "text/plain": [ "-a" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solve(diff(y2,x),x)[0]" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADwAAAAOCAYAAABzTn/UAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABV0lEQVRIDeWX0VHCQBCGwaEARjuwBLEE6QAsRV/zCh2oFTjaAViBaAl0oGMH4fvwkok3wAxzQTJhZ/5kb+/I7n+7twndPM87bZUsy67g9gIG6D/y7Hlpk0CsD58n8A2uwSUopY2EzeRYhpC/42aWSzkrtRNRTo5wbSVN+XhWJmAJvsArGGGfcm+M1JJhSN3A6APcowtJPoAJuk2kMZJMOBCy9UvU7BaivsS2fh0UxmPfeyHgNwLZJxNjfvcZgreM+4wfIzJm3bLeKTX43/n8eFLCZmAQT+wxvmXtvLo+kPBMz6r2TXoN/jc9dqstqaQDMSsjJuYmdJj/sxFbo/jHiSTClTirZ1fzEKxLHtJ2arPdCEkiDBGPg1ksCUmQsV83C6AMscUb8jtz+OtFcHFeuOqm/nmAjCXtt+s70MEzcCNsZtrmrCkaHMPDC/58ayg2TuPTv5s+WwHi+2T8LcNNuwAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle - a - 1$" ], "text/plain": [ "-a - 1" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solve(diff(y2,x),x)[0]-x0" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACIAAAAVCAYAAAAjODzXAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA9ElEQVRIDWOsr68vY2BgSAdiEAhtaGg4B2HSlgTag2IvI9AhnUArdwMl9tDWauymA+0F28+CXZp6okCLjICmrQZiYyD7Ay6TaeIQoIUCQAtnA/E7IDYBYiUgxgto5RCQz0NBNgMdBUoLoFDBC5jwytJRctQh6IE9GiLoIYI110Cz316gYlA2JBZQVCrjcggo+xkT6wJqqBtNI+ihSI8QEYZaKoRuOTIfaxpBVkAuG5jgQRUdCLhAKIbVQLF7QDaopp8FFYNTtHQIuK6B20SAQY+oIeAEiPSoQ9CDCZZGZgITEEiOotIR3XB8fKB9sDYrKDftBgDcPTbV0pJc6gAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\left[ -1\\right]$" ], "text/plain": [ "[-1]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solve(solve(diff(y2,x),x)[0]-x0,a)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAOCAYAAAA1+Nx+AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAj0lEQVQ4EWP8//8/A7VAQ0ODEdCs1UBsDGR/AJnLAiIoAUCDBID6ZwPxOyA2AWIlIIYDalgAcmkoyESgZWVACuQLOGCCs2jEGLWAYMDSPIhYoMlsL9ApoORGLAgF6jtHjGKQBaBkZkyMYnLU0DyIhpwFwtBgFIIFJyM1CjtgPIIKOBBwAWJQYgElgHtAvBsAO3sgJ/LwrLIAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle -1$" ], "text/plain": [ "-1" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solve(solve(diff(y2,x),x)[0]-x0,a)[0]" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "出てきた答えをそのまま次のステップの代入にして,次々と操作を加えていく様子が見えますでしょうか? \n", "\n", "わからんようになったら,間の結果を変数として取り出して,それを次の式に代入(subs)していくと見やすいです." ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAYAAAASVl2WAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAZElEQVQYGWP8//8/Aww0NDQYAdmrgdgYyP4AEmcBMgSA9GwgfgfEJkCsBMRwAFIAUhkKEgGyy4AUyBQ4YIKzcDBGFUACBj0chKHhJQQLN0ZQZAGDGBRBIOACxKC4OQfE94B4NwDm+hiAOyllRAAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle 1$" ], "text/plain": [ "1" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b0 =solve((y2-y0).subs({a:a0}).subs({x:x0}),b)[0]\n", "b0" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%matplotlib inline\n", "line_1 = y1\n", "line_2 = y2.subs({a:a0}).subs({b:b0})\n", "line_2\n", "plot(line_1, line_2, (x,-1,3))" ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true }, "source": [ "## 別解\n", "こういった問題では,判別式を使った解法を指導しているというTAさんからの指導(?)があったんで,やって見た." ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "hidden": true }, "outputs": [], "source": [ "from sympy import *\n", "# init_session()\n", "\n" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "hidden": true }, "outputs": [], "source": [ "x, y,a,b = symbols('x y a b')\n", "y1 = 4*x**2-8*x+5\n", "y2 = -2*(x+a)**2+b" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 2 a^{2} + 4 a x - b + 6 x^{2} - 8 x + 5$" ], "text/plain": [ " 2 2 \n", "2⋅a + 4⋅a⋅x - b + 6⋅x - 8⋅x + 5" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y3 = expand(y1-y2)\n", "y3" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "hidden": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "6 4*a - 8 2*a**2 - b + 5\n" ] } ], "source": [ "cc=y3.coeff(x,0)\n", "bb=y3.coeff(x,1)\n", "aa=y3.coeff(x,2)\n", "print(aa,bb,cc)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle - 32 a^{2} - 64 a + 24 b - 56$" ], "text/plain": [ " 2 \n", "- 32⋅a - 64⋅a + 24⋅b - 56" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "expand(bb**2-4*aa*cc)" ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true }, "source": [ "## 4\n", "\n", "頂点を代数式で出す問題で,式変形が必要になる典型的な問題です.factorとかsimplifyとかは試行錯誤が必要です.fractionは分数式での基本となるやり方なんで,idiom的に覚えてください.\n", "\n", "```\n", "代入: subs\n", "展開: expand\n", "簡単化: simplify\n", "通分: together\n", "因数分解:factor\n", "分数: fraction\n", "分母: d(enominator)\n", "分子: n(umerator)\n", "```" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "hidden": true }, "outputs": [], "source": [ "from sympy import *\n", "#init_session()\n", "init_printing()\n", "x, y,a,b = symbols('x y a b')\n", "\n", "y = a*x**2-b*x-a+b" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGUAAAAQCAYAAAAPk7G9AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADcklEQVRYCe2Y21UUQRCGBw8BgGbAZgBrBK4ZgEYAZCDHN948kIEQAZcMxAiEDYEMVDLA72u65swMex2dWR6sc3qrpvpSf1dVVzesPT4+FtLx8fEW7DB9FMUG3O8T9DdZ92LZItgZ456uaEPaL74Hq94QGE4aGC7QjdcMCoKADUAERd0uOjexh3zdmPxiPsG2FHbG3wH+Fl7ute/NYNuE17dHyCnp4X5vwwevMqAD+AEKAxEUJ+RzKLri2B3RxNCGlsW+jZFvbQz9wzkGwFMRPnZpk+teIYIyRn7ITX3BBL/7IgHZ2tDC2NnTKBuoOqONzdZzwGDimxhn1UXQv7epW/eHD0FuKgehi1PzNXQvkS+J3U3fM6fPhGu6zbL5MAtDCkpzFhPMKC+hQ+RaRB2Lzppov8ftJ807Zxf9KXylBIZZ2O0bM+ZTBvkWbhnp884cYtPE8LR8pOk/Hx1X6NIJrgUlDxS4YC0Lt7QaMcZ+a+IOcqqBcGv0CH5GW0kWYtdNTsVOv+XRMdK+OLPuN3xAS3t56u70N8r0EJtHYQlZHOK6jjsl9aEwi05peyguaHfIUcYKZBeMV0N1E8orLQtgm4kdfAZMesfYlDiZK5d7TCM6+sn+c3VfWc0KdIn+3DHr0+zTeU0TsMdqM8uWrA3k5oJueG4JYJ73UzgHsaTXSvRPeqbqbJNkYWL8JOzeJ66VAlJZbAP5TeW7JjLe/u80+aLknxFWmmlUTegY41Pdl+QwBYUF0rGesJDlSyeG0z8g114uGbR3zNxnJmMnOb1Ab6ZuwZe+k5izKPbYA6aeiLnqpB9P7PkvYwzizvOe5TWuRXOia06jrShfRslSNTUbcp/9TecbqIL+WrDU9URzsWccJk7T+XEC+8Sural+pu8+gmLk4sgjluRLQaqCbh69VBYcRGB8gbn5PqkVdnDqGBPKF6Zr9EWW8Ek+8jR6km4iKL4CaieATkuKwBPoDNzglAvmMZaPeKX5B1AzaHR3SnOxZ+veeZFkqnywXIK3eT/a1xlhTxw3cO/nRMiRIPsq0v++FOiwvsZxVqXz/X9YeUry5HP0lgEvR19oZpkG1Gls1gXHkOfEnNZ3iqsxfxnsJo1OsFz3GhCxBmE7PZrytw+dL+iS78qgxOBVcMD8VVBWgblLm1G+urSxyNqeNtt/wgN/ANT5nA5H/GspAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle 3 a + 3 b - 6$" ], "text/plain": [ "3⋅a + 3⋅b - 6" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y.subs({x:-2})-6" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADcAAAAVCAYAAADiv3Z7AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACE0lEQVRYCe2X7VECMRCGg2MBDHYAHfjRAXYAlqAd6E/4ix2gFTjSAVgCdiAd6FCCz3smN3e5DTgOCplxZ5Ysm80mb/bj7lqj0ejWOXcDi4bj8fj1S8zvl7PXsLQANwHGnIlFfnDsE4OlwHRsTzuHQZe5Oz9/zvih/+iziawJzgObMl56cA5Zt7GUDs4iykfh8NEoIKEOiykAKYpr+LlQZPCTAtfn7G8AakcYFLE2eqXswVMKnECsAKFIWRSDtmz2rkvV3DBxslPpAb2XpuIzRiWzgt/hGTxAf8/YoFTkGoY4EDClY+igDZvfVLC/SmWp/ZHFAjSFJ8hmJn0bHE7USGbeKeLfkT+89hcoRS2Q5GT5mGkZVoYRh7ohOUmlazB12OgWX2DzNkvDurDtzUipqEb2UF/mFE2lpklbweHwmpUdxvKZZ3rySuzWiGebbH4wd8Wa2rOVfXR5KpN5yt/GtMTBgIU9xjJiyF1xyuGu9ewlEOIYhAA75mugpQuUBMciNZALxriBCLBexf6aqrWmvZVJRdfmjOqYjQs309IbqoAXyKq3KvXRma23arQrmb3WsKJTHp7/umBdfoiaXgkbtWeCY5FSQM5UbzHt4xmnsngEgD5pTuAnWJHTY0C6OAConDPBsaBXzB7ID+dRkyrrvnIsS1dOJ2uutMhY+AeXa/BCzenDVBi2vSkcNE7fXPQd2oHnn8hCpytgPp3nAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left[ 2 - a\\right]$" ], "text/plain": [ "[2 - a]" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b0=solve(y.subs({x:-2})-6,b)\n", "b0" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEMAAAAOCAYAAAB0DKHBAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACwElEQVRIDd2XPU5bQRDHnwMHsOAGpk2VQG8p5gZATkC4QVA6dxHcANMlFR8lHY7kIqmccAO4QZDLdM7v97S72rc8oRTJk+KRxrszsx/zn52dfe4tl8tqPB4Pqqo6hqVt+BE+Rn+nYlUIPH2wXME1RuStHNsagoE4w3AwHA5v4MlsNnuJ7hPtN+SHfML/3AfLL/gzuA7A8ZX+TY7nBcIJfJQrCYxZsoCN4irSK0DdlsAMxgi+DymU26cIffRmzsoQeMQria9BBkPlA4PMhDbynq0S7QKmFW/PAtpGBOce/YC2l9uRzRSvlrXkJ3wN76E/pU2EbBDfBcUO7SHs3LdBN2eMczsl9vzBhvo+Dxvr24W+mBlPCIN3SsfjC1OPQW+KuZgvjWwAzuAT+mUGqTsNY9z4HB4hu6ZjDWinFHyM2CbBNw/piv6gNRga4eswuHY4LKTeIOQvjP1G2mE3I3KwC+Q9eAJLG3Bur5Ud/MR68QYf9akKbe3feukARk9acPuFTectqBFQNLtBme7fGZcH7DVj7tBFB8q141qpZWwf4Qts+6e0z7znvo2sF8mPbFH32GwEg4U80Q1aJ5Xk29yowMFhr1PjmWpxyLkfywWfk1nDwBnEv0lPDo591EnzFAyUpvEWbTo1+gKV/CI1eg3QyIKsGNcIkrpI2NzMuSl70Ck7T8Bdknhi4Yz7RrzTOhg4ZVHZoW0UTHT5PXdynvrKddrZYa5jTVEDZ22xgBokP+gW9PO5H5DLvRjWCSU/8MFD8UCP6C/W+TFaOj+lb73IaYSufjJpBRYzpUIWvEGMWbGLzqKr3myw0LqZwUmETlt5Osn+jztm5zbsoUnivsSnug6aGaa+IOM3Ad1EcZIK0+mcie9pN+EL2MwwA9TFQBocFxd0hc2o38LafZYf6acr45gO6ZC9xOAfNA/KJzU9CL8BqfAS7MaGYcYAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle 2 a x - b$" ], "text/plain": [ "2⋅a⋅x - b" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = diff(y,x)\n", "df" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACYAAAAzCAYAAAD7JnqGAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADJklEQVRYCe2Z7VHcMBCGuQwFMEkHRweZUEFIB5AOEjpIfh5/SQeQCvjoIHSQgQ6ggxA6SJ7HkTy27ku2BOTH7YxO0traff3uSrZ0k9lstrO1QI6Pjx8XqKur8LPQ/ys83VB+J+WkOoLlBi8T32K5nMDYHY0jkF8vH/t8V8DxGW+H26UuQyh86neUB/q7pTYdbyiLBCCPlA8YuadUY70YWOep3tL+0ekXNasAg7H9gOK/Y6wJpWEtoqkzuDj5gy0ZuwXYl9Dfoz6nfxX6g6viUOLcBdL8mlLO6H+j/kS5pK1ulBQDw2vMr/cAaUIZatsHo1AxqAYw88swpvklk29eEpiM9WYjICOLP18SmHmUAjgMgHqAh4CsEUr9ueo3AluG8CPF928a3n83ZfzWAOaS4Hsyiu/NC0CdRcWYenvMoGSMS8N3gPjyli2XiSJQ2i8GFsIVc0qbVaRGKKsASY1sgKWMrOtvGFvHUHp9w1jKyLr+2nWMderPOiNjrmN3smpcDrCVBlYZL7m2ybGh7G0YG8rY2uSPBplFU9pfQ785p7CP/jbeU7POAhZAnVK78WiEtkdVN+oooz+hg7m5KjfHBHHUHQ0Y2fPT2S/W6pILbB/Pd4DxC7UrMrWD3jBXlVxgArgHwLLNRQq4GGRuji37dPZoYAvAvQkQGDT87p5+UdywHKD3+CBLchmbM4aTeF4RZ2pzD3rD7rmuM9YimFPKCe1sZkcDw5FJfxUc02yY07F6AbV7Tfq2V6UCl/syChhOZUBHaYgNn5Mh3b7J4qAjqcHAcOqp8mvqdk2jH8UdeG9N4z5ZnFIGHYNmJX/0ihOPlXapW6Zo61R5oAgiBSDYLe7rAVa3SrIZw7DJvkfdS3Z0ghVUlG5uqWuOqWww1pkZH0TVUsliLBgzqa9pm19d2UfXLAPUstI6pi9oHyiy5esrK9eygGHY8OjQ/Eqlu4YZYs8xPIv10O6cImMuFerSh0K1WLKAYTTr3w7ue8RNm38dl4t0ncvzzewcmx/6tJoNsKH8xhybkh+uQa2EfGn7T9VI/eKnwRFD6Wzp/pnqq+W5xGVozvdfTYDvAIYClG4AAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\left[ \\frac{b}{2 a}\\right]$" ], "text/plain": [ "⎡ b ⎤\n", "⎢───⎥\n", "⎣2⋅a⎦" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s1 = solve(df,x)\n", "s1" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAC8AAAArCAYAAADottG6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACzElEQVRYCe2Y7VHjMBCGHYYCGK6D0MEd10HoACgBOjh+Jn+5DoAKmEsHQAnQAXQAQwfheX1aj+MPWbajxMx4ZzS7Wq20r1cr2d7JarVKRIvFYgq7SjtJcgz/UB/9i9MNjk0E3gG/gZ8YQuRr5D+0E+RH0w+J7zkwAnqZBwZg7cIn7V9ePyTZwM8A9QrggwI4RfwAvVJqcGTgBfINkIp0FRUfqspm67o05+u88jCvjE3hkzqbmHq340rpN9o7bUk7Rf8XnljkJa8RBj9RKF3sBlobj93Bv1L5Wf6R1QT4hnaNnGZCLXiMdFCXbhLi9siBk3+BVtSNJGfpvW/aPGeCnlBGZ3l9lewcPTHW5lycMc/3/lCq6KK4LfjUbih1UiqBZ8IFI4fw7M53tpUMOx3yX5WD3ZXnTF17t+BHwVEaP9iya2mDwSkDR/As4sg6sJq0FcKXQKplIJ1jPVDCePZQWeRR6oD+hhcPqB6ouH1aJzblc12+lAlpqoFRmF5S8HQUWR2QR2Tle55m6NKrKa+MJePrk6boZrtNX2AVXIu6PlmWFnltkYyV70XyHayi7ab6Sts7AOrb6gftnqbI65qULg2w9yWF0aBpb9DoGsCN4BsCFG14jHy00DYsPEa+IUDRhr915Cfz+fx/7SNafOItPL5h48XWv/K3zvkRvH9z443a93wnD3xbT5lof17HyB/qo9/KP0Dn28YB32lxtk/O77w42wf8jBTZaXG2D3j9DGfVK+QiqXwRlTrnfB0qzkJlcdadkdqiad16Pn2fyJfWBWBlcRa9UsxbNC0tFqDYKHj8lYqzAFf6NBZNA7CWTDYGHpB1xdmgomkJWYBiI+AB7ivOBhVNA7CWTHq9YbUawFWKKxVnnSe9cYOKps6+FesVeYD7irMCbuQtmrLO1Azb8M6Rdw4bi7PYBRVN24A2287gWSC0OBtUNDVAbfgXaPIbuhWiWnYAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\frac{2 - a}{2 a}$" ], "text/plain": [ "2 - a\n", "─────\n", " 2⋅a " ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x0 = s1[0].subs({b:b0[0]})\n", "x0" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle - 2 a + 2 - \\frac{\\left(a - 2\\right)^{2}}{4 a}$" ], "text/plain": [ " 2\n", " (a - 2) \n", "-2⋅a + 2 - ────────\n", " 4⋅a " ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simplify((y.subs({x:x0}).subs({b:b0[0]})))" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "簡単化しなさいというのに反応していない典型的な例です.まぁ,簡単というのは人間とコンピュータで違うのでしょうね.地道にばらして,教えて行きましょう." ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\frac{- 8 a^{2} + 8 a - \\left(2 - a\\right)^{2}}{4 a}$" ], "text/plain": [ " 2 2\n", "- 8⋅a + 8⋅a - (2 - a) \n", "───────────────────────\n", " 4⋅a " ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eq2 = together((y.subs({x:x0}).subs({b:b0[0]})))\n", "eq2" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "hidden": true }, "outputs": [], "source": [ "n,d = fraction(eq2)" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "hidden": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGQAAAAaCAYAAABByvnlAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEKklEQVRoBe2Y7VHcMBBAD4YCIOkAOoBQQaCDQAeBDsLkH39JB5AKMtAB0EFIB9BBmOuAvOdINzrZvrMJMpfkdkaz8nql/dRq7ZWnp6fREob1wOnp6ToSPwepmwF/hD5eG1aVpbTggTOcfxy9wfyc+R1jazUSl3hQDxwRhL1E4hnzTWjby4AkXhlw6un43iRvZXmHNLllWBonwxPyATxMyUJQvLiGtfQVpPW1Ff5tg8HYUd3iJQuBn5Cj0P8FvAu0eS6E4Hk6dpiPXVC0ZCHEyO+CTxQWISgSuwxbQE+QncdN5FlEHPSOtrxDx0fGCfQfqb48G5Ax+CKlp/O4F7jyQ3guFxAE6OhbcHUUozKBnrd9Bu6SccD7q8i7SBi9TJpz8H7Ui7nZrfP3mU8lE8+2se/BVebHNWJo1V5MY3AlG5iTkiVLZe2vcziCYNtnECJEY+LHUqQvEtaeeKorvbBBh+pwkykHbXdNExgs215xHPpkXDIghwhoOrIeb42YZI6K8LzooAPv0XU9U9RkWodu1k8g2K4Pcv4RtA3GSj5cXORLHUFm/8NEu2TCOw3YSEijwC+p6USlrK85V+9tdG1Lnprj4dcHh4ymxIRchyIBQYx1NpahutSEgoFmXlUOmNcUh2bm+V7jfjK8Y+zZv4AHA+QdtAirOkjeT13sgVcf6IuaXS17lTkhCLMDmZntGKAhBmOXoTG1L1d4fG99ti2sThz4muc98AWjLVthKQ/I1wYTJr2cU8H3PGhDZ1jrzNmP0eP7OGsJxhiEKquYW+LuwJMui7l7GAzbyrT8OX+A9qrBQAdB/a7Qpe206oOpu8VFs2AtGH4Lkw7oCjqucmbLgjfQOzuMvTRK/kuwF55zy5SXZX7czbi5rTHrtOel7WLL38D+VgATo62UyWjyqEdnMCAaP/Wt0Hn1MxiR11ZzLVk6Ozrcy3DqHmKtxplxlq2ZUNIu9rZ1fwOefJO0KNMrMd1jtWWjPyV7VNsyo+q7g3Mb5YR3rs8db5BGvJ8KVOMmhYjItrxugScng7m/S5pKkzboi85QKiAe1SYFVWzMiCXK5wg2AkLq7PTu8J0ZWZVKHdPiBPmKAPI83bVfQdAMUpPjPSG5DZDaodSlrtPsnpqg1pHoXBjNpmPmBmwENjCToAYeHRID5u+KuXeJe70EIEtdvMRvmOcd5B60povdq6BKoK46lArIt6B8TQ8Ut13VgNQojc3/B1kSvsLnv6K3DPf0hPgfTFq6nsfiYPlUT++PHNqc7n049bslX5g/F/vbi9Pswed1Y7k+/8wz9hu8a/BWH6NW+zD35LVt7ZUdPfdfdHZLsz7oBcUCQmb4/dDWffRS8m9jDqdD2/NvqLmmFAtIkOw9MHStn2v0AAza/KzqUOwOiUaHbBn8Z2CUPzTGXhsO2/pe7W7U8xe2TX7sR48GlgAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle - \\left(3 a - 2\\right)^{2}$" ], "text/plain": [ " 2\n", "-(3⋅a - 2) " ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "factor(expand(n))" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "時々sympyとの意見があって,スパッと綺麗にしてくれることがあります.たまにです.嬉しくなりますが..." ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "hidden": true, "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle - \\frac{\\left(3 a - 2\\right)^{2}}{4 a}$" ], "text/plain": [ " 2 \n", "-(3⋅a - 2) \n", "────────────\n", " 4⋅a " ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "factor(together((y.subs({x:x0}).subs({b:b0[0]}))))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "hidden": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "toc": { "base_numbering": 1, "nav_menu": { "height": "49px", "width": "252px" }, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": true, "toc_position": {}, "toc_section_display": "block", "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 2 }