{"id":7021,"date":"2023-11-17T15:41:18","date_gmt":"2023-11-17T06:41:18","guid":{"rendered":"https:\/\/home.hirosaki-u.ac.jp\/relativity\/?p=7021"},"modified":"2023-11-17T15:47:26","modified_gmt":"2023-11-17T06:47:26","slug":"%e6%a5%95%e5%86%86%e8%bb%8c%e9%81%93%e4%b8%8a%e3%81%ae%e6%99%82%e5%88%bb%e3%81%94%e3%81%a8%e3%81%ae%e4%bd%8d%e7%bd%ae%e3%82%92-python-%e3%81%a7%e6%95%b0%e5%80%a4%e7%9a%84%e3%81%ab%e6%b1%82%e3%82%81","status":"publish","type":"post","link":"https:\/\/home.hirosaki-u.ac.jp\/relativity\/7021\/","title":{"rendered":"\u6955\u5186\u8ecc\u9053\u4e0a\u306e\u6642\u523b\u3054\u3068\u306e\u4f4d\u7f6e\u3092 Python \u3067\u6570\u5024\u7684\u306b\u6c42\u3081\u308b"},"content":{"rendered":"<p>\u300c<a href=\"https:\/\/home.hirosaki-u.ac.jp\/relativity\/6998\/\">\u6955\u5186\u8ecc\u9053\u4e0a\u306e\u6642\u523b\u3054\u3068\u306e\u4f4d\u7f6e\u3092\u6c42\u3081\u308b\u305f\u3081\u306e\u4e0b\u3054\u3057\u3089\u3048<\/a>\u300d\u3067\u4e0b\u3054\u3057\u3089\u3048\u3057\u305f\u5f0f\u3092 Python \u3067\u6570\u5024\u7684\u306b\u89e3\u304f\u3002<br \/>\n<!--more--><\/p>\n<div class=\"cell border-box-sizing text_cell rendered\">\n<div class=\"prompt input_prompt\"><\/div>\n<div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h3 id=\"\u30e9\u30a4\u30d6\u30e9\u30ea\u306e-import\">\u30e9\u30a4\u30d6\u30e9\u30ea\u306e import<\/h3>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[1]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython3\">\n<pre><span class=\"kn\">import<\/span> <span class=\"nn\">numpy<\/span> <span class=\"k\">as<\/span> <span class=\"nn\">np<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">matplotlib.pyplot<\/span> <span class=\"k\">as<\/span> <span class=\"nn\">plt<\/span>\r\n\r\n<span class=\"c1\"># \u4ee5\u4e0b\u306f\u30b0\u30e9\u30d5\u3092 SVG \u3067 Notebook \u306b\u30a4\u30f3\u30e9\u30a4\u30f3\u8868\u793a\u3055\u305b\u308b\u8a2d\u5b9a<\/span>\r\n<span class=\"o\">%<\/span><span class=\"k\">config<\/span> InlineBackend.figure_formats = ['svg']\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing text_cell rendered\">\n<div class=\"prompt input_prompt\"><\/div>\n<div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h3 id=\"\u7121\u6b21\u5143\u5316\u3055\u308c\u305f\u5f0f\">\u7121\u6b21\u5143\u5316\u3055\u308c\u305f\u5f0f<\/h3>\n<p>\u300c<a href=\"https:\/\/home.hirosaki-u.ac.jp\/relativity\/6998\/\">\u6955\u5186\u8ecc\u9053\u4e0a\u306e\u6642\u523b\u3054\u3068\u306e\u4f4d\u7f6e\u3092\u6c42\u3081\u308b\u305f\u3081\u306e\u4e0b\u3054\u3057\u3089\u3048<\/a>\u300d\u3067\u4e0b\u3054\u3057\u3089\u3048\u3057\u305f\u5f0f\uff08\u7121\u6b21\u5143\u5316\u6e08\u307f\uff09\u3002<\/p>\n<p><code>scipy.integrate.solve_ivp()<\/code> \u306f $\\displaystyle \\frac{dy}{dt} = f(t, y)$ \u306e\u5f62\u306e\u5f0f\u3092\u89e3\u304f\u306e\u3067\uff0c\u5909\u6570\u3092\u63c3\u3048\u308b\u3002<\/p>\n<p>$ \\phi \\rightarrow y, \\ T \\rightarrow t$<\/p>\n<p>\\begin{eqnarray}<br \/>\n\\frac{dy}{dt} &amp;=&amp; f(t, y) = 2 \\pi \\frac{(1+e \\cos y)^2}{(1-e^2)^{3\/2}} \\tag{1}\\\\<br \/>\nR(y) &amp;\\equiv&amp; \\frac{r}{a} = \\frac{1-e^2}{1+e\\cos y} \\tag{2}\\\\<br \/>\nX(y) &amp;\\equiv&amp; \\frac{x}{a} = R(y) \\cos y \\tag{3}\\\\<br \/>\nY(y) &amp;\\equiv&amp; \\frac{y}{a} = R(y) \\sin y \\tag{4}<br \/>\n\\end{eqnarray}<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[2]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython3\">\n<pre><span class=\"c1\"># \u5fae\u5206\u65b9\u7a0b\u5f0f\u306e\u53f3\u8fba \u72ec\u7acb\u5909\u6570\u306f t, y \u6c7a\u3081\u6253\u3061<\/span>\r\n<span class=\"k\">def<\/span> <span class=\"nf\">f<\/span><span class=\"p\">(<\/span><span class=\"n\">t<\/span><span class=\"p\">,<\/span> <span class=\"n\">y<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"k\">global<\/span> <span class=\"n\">e<\/span>\r\n    <span class=\"k\">return<\/span> <span class=\"mi\">2<\/span><span class=\"o\">*<\/span><span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">pi<\/span><span class=\"o\">*<\/span><span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">+<\/span><span class=\"n\">e<\/span><span class=\"o\">*<\/span><span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">cos<\/span><span class=\"p\">(<\/span><span class=\"n\">y<\/span><span class=\"p\">))<\/span><span class=\"o\">**<\/span><span class=\"mi\">2<\/span><span class=\"o\">\/<\/span><span class=\"p\">((<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"n\">e<\/span><span class=\"o\">**<\/span><span class=\"mi\">2<\/span><span class=\"p\">)<\/span><span class=\"o\">**<\/span><span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"o\">\/<\/span><span class=\"mi\">2<\/span><span class=\"p\">))<\/span>\r\n\r\n<span class=\"k\">def<\/span> <span class=\"nf\">R<\/span><span class=\"p\">(<\/span><span class=\"n\">y<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"k\">global<\/span> <span class=\"n\">e<\/span>\r\n    <span class=\"k\">return<\/span> <span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"n\">e<\/span><span class=\"o\">**<\/span><span class=\"mi\">2<\/span><span class=\"p\">)<\/span><span class=\"o\">\/<\/span><span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">+<\/span><span class=\"n\">e<\/span><span class=\"o\">*<\/span><span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">cos<\/span><span class=\"p\">(<\/span><span class=\"n\">y<\/span><span class=\"p\">))<\/span>\r\n\r\n<span class=\"k\">def<\/span> <span class=\"nf\">X<\/span><span class=\"p\">(<\/span><span class=\"n\">y<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"k\">global<\/span> <span class=\"n\">e<\/span>\r\n    <span class=\"k\">return<\/span> <span class=\"n\">R<\/span><span class=\"p\">(<\/span><span class=\"n\">y<\/span><span class=\"p\">)<\/span><span class=\"o\">*<\/span><span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">cos<\/span><span class=\"p\">(<\/span><span class=\"n\">y<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"k\">def<\/span> <span class=\"nf\">Y<\/span><span class=\"p\">(<\/span><span class=\"n\">y<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"k\">global<\/span> <span class=\"n\">e<\/span>\r\n    <span class=\"k\">return<\/span> <span class=\"n\">R<\/span><span class=\"p\">(<\/span><span class=\"n\">y<\/span><span class=\"p\">)<\/span><span class=\"o\">*<\/span><span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">sin<\/span><span class=\"p\">(<\/span><span class=\"n\">y<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"c1\"># \u96e2\u5fc3\u7387<\/span>\r\n<span class=\"n\">e<\/span> <span class=\"o\">=<\/span> <span class=\"mf\">0.6<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing text_cell rendered\">\n<div class=\"prompt input_prompt\"><\/div>\n<div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h3 id=\"solve_ivp()-\u3067\u5e38\u5fae\u5206\u65b9\u7a0b\u5f0f\u3092\u6570\u5024\u7684\u306b\u89e3\u304f\"><code>solve_ivp()<\/code> \u3067\u5e38\u5fae\u5206\u65b9\u7a0b\u5f0f\u3092\u6570\u5024\u7684\u306b\u89e3\u304f<\/h3>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[3]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython3\">\n<pre><span class=\"kn\">from<\/span> <span class=\"nn\">scipy.integrate<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">solve_ivp<\/span>\r\n\r\n<span class=\"c1\"># T \u306e\u521d\u671f\u5024 <\/span>\r\n<span class=\"n\">t0<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span>\r\n<span class=\"c1\"># T \u306e\u7d42\u4e86\u5024<\/span>\r\n<span class=\"n\">t1<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">1<\/span>\r\n<span class=\"n\">t_span<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"n\">t0<\/span><span class=\"p\">,<\/span> <span class=\"n\">t1<\/span><span class=\"p\">]<\/span>\r\n<span class=\"c1\"># phi \u306e\u521d\u671f\u5024<\/span>\r\n<span class=\"n\">y_ini<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span>\r\n\r\n<span class=\"c1\"># \u5206\u5272\u6570<\/span>\r\n<span class=\"n\">Ndiv<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">36<\/span>\r\n\r\n<span class=\"n\">t_list<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">linspace<\/span><span class=\"p\">(<\/span><span class=\"n\">t0<\/span><span class=\"p\">,<\/span> <span class=\"n\">t1<\/span><span class=\"p\">,<\/span> <span class=\"n\">Ndiv<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">answer<\/span> <span class=\"o\">=<\/span> <span class=\"n\">solve_ivp<\/span><span class=\"p\">(<\/span><span class=\"n\">f<\/span><span class=\"p\">,<\/span> <span class=\"n\">t_span<\/span><span class=\"p\">,<\/span> <span class=\"n\">y_ini<\/span><span class=\"p\">,<\/span> \r\n                   <span class=\"n\">t_eval<\/span> <span class=\"o\">=<\/span> <span class=\"n\">t_list<\/span><span class=\"p\">,<\/span> \r\n                   <span class=\"c1\"># \u8a08\u7b97\u7cbe\u5ea6\u306e\u8a2d\u5b9a<\/span>\r\n                   <span class=\"n\">rtol<\/span> <span class=\"o\">=<\/span> <span class=\"mf\">1.e-13<\/span><span class=\"p\">,<\/span> <span class=\"n\">atol<\/span> <span class=\"o\">=<\/span> <span class=\"mf\">1.e-15<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"c1\"># \u8a08\u7b97\u7d50\u679c\u306f .y \u3068\u3057\u3066\u53d6\u308a\u51fa\u3057\u307e\u3059\u3002<\/span>\r\n<span class=\"n\">phii<\/span> <span class=\"o\">=<\/span> <span class=\"n\">answer<\/span><span class=\"o\">.<\/span><span class=\"n\">y<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing text_cell rendered\">\n<div class=\"prompt input_prompt\"><\/div>\n<div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<p>\u3061\u3087\u3046\u30691\u5468\u671f $T = T_{\\rm end}$ \u305f\u3066\u3070 $\\phi = 2 \\pi$ \u306b\u306a\u3063\u3066\u3044\u308b\u306f\u305a\u3060\u304b\u3089\uff0c\u6570\u5024\u8aa4\u5dee\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n<p>$$\\phi(T_{\\rm end}) &#8211; 2 \\pi$$<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[4]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython3\">\n<pre><span class=\"c1\"># [-1] \u306f\u6700\u5f8c\u306e\u9805<\/span>\r\n\r\n<span class=\"n\">phii<\/span><span class=\"p\">[<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span> <span class=\"o\">-<\/span> <span class=\"mi\">2<\/span><span class=\"o\">*<\/span><span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">pi<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"output_wrapper\">\n<div class=\"output\">\n<div class=\"output_area\">\n<div class=\"prompt output_prompt\">Out[4]:<\/div>\n<div class=\"output_text output_subarea output_execute_result\">\n<pre>-2.5348612098241574e-12<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing text_cell rendered\">\n<div class=\"prompt input_prompt\"><\/div>\n<div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h3 id=\"\u4e00\u5b9a\u6642\u9593\u9593\u9694\u3054\u3068\u306e\u4f4d\u7f6e\u3092\u30b0\u30e9\u30d5\u306b\">\u4e00\u5b9a\u6642\u9593\u9593\u9694\u3054\u3068\u306e\u4f4d\u7f6e\u3092\u30b0\u30e9\u30d5\u306b<\/h3>\n<p>\u4e00\u5b9a\u6642\u9593\u9593\u9694 $\\displaystyle \\Delta T = \\frac{1}{N_{\\rm div}}$ \u3054\u3068\u306e\u4f4d\u7f6e\uff1a<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[5]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython3\">\n<pre><span class=\"n\">fig<\/span> <span class=\"o\">=<\/span> <span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">figure<\/span><span class=\"p\">(<\/span><span class=\"n\">figsize<\/span><span class=\"o\">=<\/span><span class=\"p\">[<\/span><span class=\"mi\">6<\/span><span class=\"p\">,<\/span><span class=\"mi\">6<\/span><span class=\"p\">])<\/span>\r\n<span class=\"c1\"># \u7e26\u6a2a\u306e\u30a2\u30b9\u30da\u30af\u30c8\u6bd4\u3092\u7b49\u3057\u304f<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">axes<\/span><span class=\"p\">()<\/span><span class=\"o\">.<\/span><span class=\"n\">set_aspect<\/span><span class=\"p\">(<\/span><span class=\"s1\">'equal'<\/span><span class=\"p\">)<\/span>\r\n<span class=\"c1\"># \u8ef8\u306e\u8a2d\u5b9a<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">axis<\/span><span class=\"p\">([<\/span><span class=\"o\">-<\/span><span class=\"mi\">2<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1<\/span><span class=\"p\">,<\/span> <span class=\"o\">-<\/span><span class=\"mf\">1.5<\/span><span class=\"p\">,<\/span> <span class=\"mf\">1.5<\/span><span class=\"p\">])<\/span>\r\n\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">scatter<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"p\">(<\/span><span class=\"n\">phii<\/span><span class=\"p\">),<\/span> <span class=\"n\">Y<\/span><span class=\"p\">(<\/span><span class=\"n\">phii<\/span><span class=\"p\">),<\/span> <span class=\"n\">c<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"blue\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">s<\/span><span class=\"o\">=<\/span><span class=\"mi\">20<\/span><span class=\"p\">);<\/span>\r\n\r\n<span class=\"c1\"># x\u8ef8 y\u8ef8<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">axhline<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"n\">color<\/span><span class=\"o\">=<\/span><span class=\"s1\">'black'<\/span><span class=\"p\">,<\/span> <span class=\"n\">dashes<\/span><span class=\"o\">=<\/span><span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"p\">,<\/span> <span class=\"mi\">3<\/span><span class=\"p\">),<\/span> <span class=\"n\">linewidth<\/span><span class=\"o\">=<\/span><span class=\"mf\">0.6<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">axvline<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"n\">color<\/span><span class=\"o\">=<\/span><span class=\"s1\">'black'<\/span><span class=\"p\">,<\/span> <span class=\"n\">dashes<\/span><span class=\"o\">=<\/span><span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"p\">,<\/span> <span class=\"mi\">3<\/span><span class=\"p\">),<\/span> <span class=\"n\">linewidth<\/span><span class=\"o\">=<\/span><span class=\"mf\">0.6<\/span><span class=\"p\">);<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"output_wrapper\">\n<div class=\"output\">\n<div class=\"output_area\">\n<div class=\"prompt\"><\/div>\n<div class=\"output_svg output_subarea \">\n<p><!--?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?--><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-7022\" src=\"https:\/\/home.hirosaki-u.ac.jp\/relativity\/wp-content\/uploads\/sites\/76\/figpd01.svg\" alt=\"\" width=\"640\" height=\"640\" \/><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing text_cell rendered\">\n<div class=\"prompt input_prompt\"><\/div>\n<div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h3 id=\"\u53c2\u8003\uff1a\u30b1\u30d7\u30e9\u30fc\u65b9\u7a0b\u5f0f\u306e\u6570\u5024\u89e3\u3068\u306e\u6bd4\u8f03\">\u53c2\u8003\uff1a\u30b1\u30d7\u30e9\u30fc\u65b9\u7a0b\u5f0f\u306e\u6570\u5024\u89e3\u3068\u306e\u6bd4\u8f03<\/h3>\n<p>\u300c<a href=\"https:\/\/home.hirosaki-u.ac.jp\/relativity\/1881\/\">\u30b1\u30d7\u30e9\u30fc\u65b9\u7a0b\u5f0f\u3092\u6570\u5024\u7684\u306b\u89e3\u3044\u3066\u30b1\u30d7\u30e9\u30fc\u306e\u7b2c2\u6cd5\u5247\u3092\u8996\u899a\u7684\u306b\u78ba\u8a8d\u3059\u308b<\/a>\u300d\u306b\u307e\u3068\u3081\u3066\u3044\u308b\u3088\u3046\u306b\uff0c\u6955\u5186\u8ecc\u9053\u306e $x, y$ \u3092\u8ecc\u9053\u9577\u534a\u5f84 $a$ \u3067\u898f\u683c\u5316\u3057\u305f $X_u, Y_u$ \u3092\uff0c\u96e2\u5fc3\u8fd1\u70b9\u96e2\u89d2 $u$ \u3092\u4f7f\u3063\u3066\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3042\u3089\u308f\u3059\u3053\u3068\u304c\u3067\u304d\u308b\u3002<\/p>\n<p>\\begin{eqnarray}<br \/>\nX_u &amp;\\equiv&amp; \\frac{x}{a} = \\cos u \u2013 e\\\\<br \/>\nY_u &amp;\\equiv&amp; \\frac{y}{a} = \\sqrt{1-e^2} \\sin u<br \/>\n\\end{eqnarray}<\/p>\n<p>\u96e2\u5fc3\u8fd1\u70b9\u96e2\u89d2 $u$ \u3068\u5468\u671f $P$ \u3067\u898f\u683c\u5316\u3055\u308c\u305f\u6642\u9593 $T$ \u3068\u306e\u95a2\u4fc2\u306f\uff0c\u4ee5\u4e0b\u306e\u30b1\u30d7\u30e9\u30fc\u65b9\u7a0b\u5f0f\u3092\u6570\u5024\u7684\u306b\u89e3\u3044\u3066\u5f97\u3089\u308c\u308b\u3002<\/p>\n<p>\\begin{eqnarray}<br \/>\n2\\pi T &amp;=&amp; u \u2013 e \\sin u, \\quad T \\equiv \\frac{t}{P}<br \/>\n\\end{eqnarray}<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing text_cell rendered\">\n<div class=\"prompt input_prompt\"><\/div>\n<div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h4 id=\"\u30b1\u30d7\u30e9\u30fc\u65b9\u7a0b\u5f0f\u306e\u6570\u5024\u89e3\">\u30b1\u30d7\u30e9\u30fc\u65b9\u7a0b\u5f0f\u306e\u6570\u5024\u89e3<\/h4>\n<p>$$g(u_i) \\equiv u_i \u2013 e \\sin u_i &#8211; 2\\pi T_i =0, \\quad T_i = \\frac{i}{N_{\\rm div}}$$<\/p>\n<p>\u3092 $u_i$ \u306b\u3064\u3044\u3066 <code>root_scalar()<\/code> \u95a2\u6570\u3067\u6570\u5024\u7684\u306b\u89e3\u304d\u307e\u3059\u3002<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[6]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython3\">\n<pre><span class=\"kn\">from<\/span> <span class=\"nn\">scipy.optimize<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">root_scalar<\/span>\r\n\r\n<span class=\"c1\"># root_scalar \u3092\u4f7f\u3046\u3068\u304d\u306f\uff0c\u5909\u6570\u306f x \u6c7a\u3081\u6253\u3061<\/span>\r\n<span class=\"k\">def<\/span> <span class=\"nf\">g<\/span><span class=\"p\">(<\/span><span class=\"n\">x<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"k\">global<\/span> <span class=\"n\">e<\/span><span class=\"p\">,<\/span> <span class=\"n\">T<\/span>\r\n    <span class=\"k\">return<\/span> <span class=\"n\">x<\/span> <span class=\"o\">-<\/span> <span class=\"n\">e<\/span><span class=\"o\">*<\/span><span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">sin<\/span><span class=\"p\">(<\/span><span class=\"n\">x<\/span><span class=\"p\">)<\/span> <span class=\"o\">-<\/span> <span class=\"mi\">2<\/span><span class=\"o\">*<\/span><span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">pi<\/span><span class=\"o\">*<\/span><span class=\"n\">T<\/span>\r\n\r\n<span class=\"n\">Tlist<\/span> <span class=\"o\">=<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">linspace<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1<\/span><span class=\"p\">,<\/span> <span class=\"n\">Ndiv<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"n\">ui<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[]<\/span>\r\n\r\n<span class=\"k\">for<\/span> <span class=\"n\">T<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">Tlist<\/span><span class=\"p\">:<\/span>\r\n    <span class=\"n\">ans<\/span> <span class=\"o\">=<\/span> <span class=\"n\">root_scalar<\/span><span class=\"p\">(<\/span><span class=\"n\">g<\/span><span class=\"p\">,<\/span> <span class=\"n\">bracket<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">2<\/span><span class=\"o\">*<\/span><span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">pi<\/span><span class=\"p\">],<\/span> <span class=\"n\">xtol<\/span> <span class=\"o\">=<\/span> <span class=\"mf\">1.e-14<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"n\">ui<\/span><span class=\"o\">.<\/span><span class=\"n\">append<\/span><span class=\"p\">(<\/span><span class=\"n\">ans<\/span><span class=\"o\">.<\/span><span class=\"n\">root<\/span><span class=\"p\">)<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing text_cell rendered\">\n<div class=\"prompt input_prompt\"><\/div>\n<div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h4 id=\"\u4e00\u5b9a\u6642\u9593\u9593\u9694\u3054\u3068\u306e\u4f4d\u7f6e\">\u4e00\u5b9a\u6642\u9593\u9593\u9694\u3054\u3068\u306e\u4f4d\u7f6e<\/h4>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[7]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython3\">\n<pre><span class=\"k\">def<\/span> <span class=\"nf\">Xu<\/span><span class=\"p\">(<\/span><span class=\"n\">u<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"k\">global<\/span> <span class=\"n\">e<\/span>\r\n    <span class=\"k\">return<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">cos<\/span><span class=\"p\">(<\/span><span class=\"n\">u<\/span><span class=\"p\">)<\/span> <span class=\"o\">-<\/span> <span class=\"n\">e<\/span>\r\n\r\n<span class=\"k\">def<\/span> <span class=\"nf\">Yu<\/span><span class=\"p\">(<\/span><span class=\"n\">u<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"k\">global<\/span> <span class=\"n\">e<\/span>\r\n    <span class=\"k\">return<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">sqrt<\/span><span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"n\">e<\/span><span class=\"o\">**<\/span><span class=\"mi\">2<\/span><span class=\"p\">)<\/span> <span class=\"o\">*<\/span> <span class=\"n\">np<\/span><span class=\"o\">.<\/span><span class=\"n\">sin<\/span><span class=\"p\">(<\/span><span class=\"n\">u<\/span><span class=\"p\">)<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing text_cell rendered\">\n<div class=\"prompt input_prompt\"><\/div>\n<div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h4 id=\"2\u3064\u306e\u89e3\u306e\u6bd4\u8f03\">2\u3064\u306e\u89e3\u306e\u6bd4\u8f03<\/h4>\n<p>$\\phi$ \u306b\u95a2\u3059\u308b1\u968e\u5e38\u5fae\u5206\u65b9\u7a0b\u5f0f\u3092\u6570\u5024\u7684\u306b\u89e3\u3044\u305f\u89e3\u3067\u3042\u308b <code>X(phii)<\/code>, <code>Y(phii)<\/code> \u3068\uff0c\u30b1\u30d7\u30e9\u30fc\u65b9\u7a0b\u5f0f\u3092\u6570\u5024\u7684\u306b\u89e3\u3044\u305f\u89e3\u3067\u3042\u308b <code>Xu(ui)<\/code>, <code>Yu(ui)<\/code> \u306f\uff0c\u5f53\u7136\u306a\u304c\u3089\u6570\u5024\u8aa4\u5dee\u306e\u7bc4\u56f2\u3067\u4e00\u81f4\u3057\u3066\u308b\u306f\u305a\u3067\u3042\u308b\u3002<\/p>\n<p>2\u3064\u306e\u914d\u5217\u306e\u5f15\u304d\u7b97\u3092\u3057\u3066\u5dee\u3092\u8abf\u3079\u308b\u300237\u7d44\u5168\u3066\u8868\u793a\u3059\u308b\u3068\u5197\u9577\u306a\u306e\u3067\uff0c\u4ee3\u8868\u3057\u30663\u7d44\u307b\u3069\u3002<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[8]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython3\">\n<pre><span class=\"c1\"># 2\u3064\u306e\u6570\u5024\u89e3 X(phii), Xu(ui) \u306e\u5dee<\/span>\r\n<span class=\"nb\">print<\/span><span class=\"p\">((<\/span><span class=\"n\">X<\/span><span class=\"p\">(<\/span><span class=\"n\">phii<\/span><span class=\"p\">)<\/span> <span class=\"o\">-<\/span> <span class=\"n\">Xu<\/span><span class=\"p\">(<\/span><span class=\"n\">ui<\/span><span class=\"p\">))[<\/span><span class=\"mi\">10<\/span><span class=\"p\">])<\/span>\r\n<span class=\"nb\">print<\/span><span class=\"p\">((<\/span><span class=\"n\">X<\/span><span class=\"p\">(<\/span><span class=\"n\">phii<\/span><span class=\"p\">)<\/span> <span class=\"o\">-<\/span> <span class=\"n\">Xu<\/span><span class=\"p\">(<\/span><span class=\"n\">ui<\/span><span class=\"p\">))[<\/span><span class=\"mi\">20<\/span><span class=\"p\">])<\/span>\r\n<span class=\"nb\">print<\/span><span class=\"p\">((<\/span><span class=\"n\">X<\/span><span class=\"p\">(<\/span><span class=\"n\">phii<\/span><span class=\"p\">)<\/span> <span class=\"o\">-<\/span> <span class=\"n\">Xu<\/span><span class=\"p\">(<\/span><span class=\"n\">ui<\/span><span class=\"p\">))[<\/span><span class=\"mi\">30<\/span><span class=\"p\">])<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"output_wrapper\">\n<div class=\"output\">\n<div class=\"output_area\">\n<div class=\"prompt\"><\/div>\n<div class=\"output_subarea output_stream output_stdout output_text\">\n<pre>3.0744295997919835e-12\r\n-4.904965322793942e-13\r\n-1.5972778655282127e-12\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing text_cell rendered\">\n<div class=\"prompt input_prompt\"><\/div>\n<div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<p>\u5ff5\u306e\u305f\u3081\u306b2\u3064\u306e\u6570\u5024\u89e3\u3092\u30b0\u30e9\u30d5\u306b\u3059\u308b\u3068\uff0c\u5f53\u7136\u306a\u304c\u3089\u91cd\u306a\u3063\u3066\u3044\u308b\u3053\u3068\u304c\u308f\u304b\u308b\u3002<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In\u00a0[9]:<\/div>\n<div class=\"inner_cell\">\n<div class=\"input_area\">\n<div class=\" highlight hl-ipython3\">\n<pre><span class=\"n\">fig<\/span> <span class=\"o\">=<\/span> <span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">figure<\/span><span class=\"p\">(<\/span><span class=\"n\">figsize<\/span><span class=\"o\">=<\/span><span class=\"p\">[<\/span><span class=\"mi\">6<\/span><span class=\"p\">,<\/span><span class=\"mi\">6<\/span><span class=\"p\">])<\/span>\r\n<span class=\"c1\"># \u7e26\u6a2a\u306e\u30a2\u30b9\u30da\u30af\u30c8\u6bd4\u3092\u7b49\u3057\u304f<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">axes<\/span><span class=\"p\">()<\/span><span class=\"o\">.<\/span><span class=\"n\">set_aspect<\/span><span class=\"p\">(<\/span><span class=\"s1\">'equal'<\/span><span class=\"p\">)<\/span>\r\n<span class=\"c1\"># \u8ef8\u306e\u8a2d\u5b9a<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">axis<\/span><span class=\"p\">([<\/span><span class=\"o\">-<\/span><span class=\"mi\">2<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1<\/span><span class=\"p\">,<\/span> <span class=\"o\">-<\/span><span class=\"mf\">1.5<\/span><span class=\"p\">,<\/span> <span class=\"mf\">1.5<\/span><span class=\"p\">])<\/span>\r\n\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">scatter<\/span><span class=\"p\">(<\/span><span class=\"n\">X<\/span><span class=\"p\">(<\/span><span class=\"n\">phii<\/span><span class=\"p\">),<\/span> <span class=\"n\">Y<\/span><span class=\"p\">(<\/span><span class=\"n\">phii<\/span><span class=\"p\">),<\/span> <span class=\"n\">c<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"blue\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">s<\/span><span class=\"o\">=<\/span><span class=\"mi\">20<\/span><span class=\"p\">,<\/span> <span class=\"n\">label<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"\u5e38\u5fae\u5206\u65b9\u7a0b\u5f0f\u306e\u6570\u5024\u89e3\"<\/span><span class=\"p\">);<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">scatter<\/span><span class=\"p\">(<\/span><span class=\"n\">Xu<\/span><span class=\"p\">(<\/span><span class=\"n\">ui<\/span><span class=\"p\">),<\/span> <span class=\"n\">Yu<\/span><span class=\"p\">(<\/span><span class=\"n\">ui<\/span><span class=\"p\">),<\/span> <span class=\"n\">c<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"red\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">s<\/span><span class=\"o\">=<\/span><span class=\"mi\">2<\/span><span class=\"p\">,<\/span> <span class=\"n\">label<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"\u30b1\u30d7\u30e9\u30fc\u65b9\u7a0b\u5f0f\u306e\u6570\u5024\u89e3\"<\/span><span class=\"p\">);<\/span>\r\n\r\n<span class=\"c1\"># x\u8ef8 y\u8ef8<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">axhline<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"n\">color<\/span><span class=\"o\">=<\/span><span class=\"s1\">'black'<\/span><span class=\"p\">,<\/span> <span class=\"n\">dashes<\/span><span class=\"o\">=<\/span><span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"p\">,<\/span> <span class=\"mi\">3<\/span><span class=\"p\">),<\/span> <span class=\"n\">linewidth<\/span><span class=\"o\">=<\/span><span class=\"mf\">0.6<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">axvline<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"n\">color<\/span><span class=\"o\">=<\/span><span class=\"s1\">'black'<\/span><span class=\"p\">,<\/span> <span class=\"n\">dashes<\/span><span class=\"o\">=<\/span><span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"p\">,<\/span> <span class=\"mi\">3<\/span><span class=\"p\">),<\/span> <span class=\"n\">linewidth<\/span><span class=\"o\">=<\/span><span class=\"mf\">0.6<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">plt<\/span><span class=\"o\">.<\/span><span class=\"n\">legend<\/span><span class=\"p\">();<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"output_wrapper\">\n<div class=\"output\">\n<div class=\"output_area\">\n<div class=\"prompt\"><\/div>\n<div class=\"output_svg output_subarea \">\n<p><!--?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?--><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-7023\" src=\"https:\/\/home.hirosaki-u.ac.jp\/relativity\/wp-content\/uploads\/sites\/76\/figpd02.svg\" alt=\"\" width=\"640\" height=\"640\" \/><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u300c\u6955\u5186\u8ecc\u9053\u4e0a\u306e\u6642\u523b\u3054\u3068\u306e\u4f4d\u7f6e\u3092\u6c42\u3081\u308b\u305f\u3081\u306e\u4e0b\u3054\u3057\u3089\u3048\u300d\u3067\u4e0b\u3054\u3057\u3089\u3048\u3057\u305f\u5f0f\u3092 Python \u3067\u6570\u5024\u7684\u306b\u89e3\u304f\u3002<\/p><p><a class=\"more-link btn\" href=\"https:\/\/home.hirosaki-u.ac.jp\/relativity\/7021\/\">\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":33,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[13,11,22],"tags":[],"class_list":["post-7021","post","type-post","status-publish","format-standard","hentry","category-matplotlib","category-python","category-22","nodate","item-wrap"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/home.hirosaki-u.ac.jp\/relativity\/wp-json\/wp\/v2\/posts\/7021","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/home.hirosaki-u.ac.jp\/relativity\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/home.hirosaki-u.ac.jp\/relativity\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/home.hirosaki-u.ac.jp\/relativity\/wp-json\/wp\/v2\/users\/33"}],"replies":[{"embeddable":true,"href":"https:\/\/home.hirosaki-u.ac.jp\/relativity\/wp-json\/wp\/v2\/comments?post=7021"}],"version-history":[{"count":2,"href":"https:\/\/home.hirosaki-u.ac.jp\/relativity\/wp-json\/wp\/v2\/posts\/7021\/revisions"}],"predecessor-version":[{"id":7025,"href":"https:\/\/home.hirosaki-u.ac.jp\/relativity\/wp-json\/wp\/v2\/posts\/7021\/revisions\/7025"}],"wp:attachment":[{"href":"https:\/\/home.hirosaki-u.ac.jp\/relativity\/wp-json\/wp\/v2\/media?parent=7021"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/home.hirosaki-u.ac.jp\/relativity\/wp-json\/wp\/v2\/categories?post=7021"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/home.hirosaki-u.ac.jp\/relativity\/wp-json\/wp\/v2\/tags?post=7021"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}