import%20marimo%0A%0A__generated_with%20%3D%20%220.24.0%22%0Aapp%20%3D%20marimo.App()%0A%0Awith%20app.setup%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%20%E5%B8%B8%E5%BE%AE%E5%88%86%E6%96%B9%E7%A8%8B%E5%BC%8F%E3%81%AE%E5%88%9D%E6%9C%9F%E5%80%A4%E5%95%8F%E9%A1%8C%0A%20%20%20%20legacy%2Fsimulation%2FODE_IVP.ipynb%20%E3%82%92%20marimo%20%E5%90%91%E3%81%91%E3%81%AB%E6%95%B4%E7%90%86%E3%81%97%E3%80%81%E8%BB%8C%E9%81%93%E8%A8%88%E7%AE%97%E3%82%92%E9%A1%8C%E6%9D%90%E3%81%AB%E5%90%84%E7%A8%AE%20ODE%20%E7%A9%8D%E5%88%86%E6%B3%95%E3%81%AE%E6%80%A7%E8%B3%AA%E3%82%92%E6%AF%94%E8%BC%83%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%E5%89%8D%E6%BA%96%E5%82%99%EF%BC%88%E4%B8%87%E6%9C%89%E5%BC%95%E5%8A%9B%E3%81%AE%E5%83%8D%E3%81%8F%E7%B3%BB%EF%BC%89%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E4%B8%87%E6%9C%89%E5%BC%95%E5%8A%9B%E3%81%8C%E5%83%8D%E3%81%8F%E7%B3%BB%0A%20%20%20%20%24%24%0A%20%20%20%20%20%20%20%20m%5Cddot%7B%5Cvec%7Br%7D%7D%3D-G%5Cfrac%7BMm%7D%7Br%5E2%7D%5Cvec%7Be%7D_r%0A%20%20%20%20%20%20%20%20%5CLeftrightarrow%0A%20%20%20%20%20%20%20%20%5Cddot%7B%5Cvec%7Br%7D%7D%3D-%5Cfrac%7BGM%7D%7Br%5E2%7D%5Cvec%7Be%7D_r%0A%20%20%20%20%24%24%0A%20%20%20%20%E3%82%92%E8%80%83%E3%81%88%E3%82%8B%E3%80%82%0A%20%20%20%20%E7%B0%A1%E4%BE%BF%E3%81%AE%E3%81%9F%E3%82%81%20%24GM%3D1%24%20%E3%81%A8%E3%81%AA%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E5%8D%98%E4%BD%8D%E7%B3%BB%E3%82%92%E5%8F%96%E3%82%8B%E3%80%82%0A%20%20%20%20%E3%81%93%E3%81%AE%E3%81%A8%E3%81%8D%E7%B3%BB%E3%82%92%E7%9B%B4%E4%BA%A4%E5%BA%A7%E6%A8%99%E7%B3%BB%E3%81%AB%E6%9B%B8%E3%81%8D%E6%8F%9B%E3%81%88%E3%82%8B%E3%81%A8%0A%20%20%20%20%24%24%0A%20%20%20%20%20%20%20%20%5Cddot%7Bx%7D%3D-%5Cfrac%7Bx%7D%7B(x%5E2%2By%5E2)%5E%7B5%2F2%7D%7D%2C%5Cquad%0A%20%20%20%20%20%20%20%20%5Cddot%7By%7D%3D-%5Cfrac%7By%7D%7B(x%5E2%2By%5E2)%5E%7B5%2F2%7D%7D%0A%20%20%20%20%24%24%0A%20%20%20%20%E3%81%A8%E3%81%AA%E3%82%8B%E3%80%82%0A%20%20%20%20%E6%9B%B4%E3%81%AB%E3%83%8F%E3%83%9F%E3%83%AB%E3%83%88%E3%83%B3%E7%B3%BB%E3%81%B8%E3%81%A8%E6%9B%B8%E3%81%8D%E6%8F%9B%E3%81%88%E3%82%8B%E3%81%A8%0A%20%20%20%20%24%24%0A%20%20%20%20%5Cbegin%7Baligned%7D%0A%20%20%20%20%26%5Cdot%7Bq%7D_x%3Dp_x%2C%5Cquad%0A%20%20%20%20%5Cdot%7Bp%7D_x%3D-%5Cfrac%7Bq_x%7D%7B(q_x%5E2%2Bq_y%5E2)%5E%7B3%2F2%7D%7D%2C%5C%5C%0A%20%20%20%20%26%5Cdot%7Bq%7D_y%3Dp_y%2C%5Cquad%0A%20%20%20%20%5Cdot%7Bp%7D_y%3D-%5Cfrac%7Bq_y%7D%7B(q_x%5E2%2Bq_y%5E2)%5E%7B3%2F2%7D%7D%0A%20%20%20%20%5Cend%7Baligned%7D%0A%20%20%20%20%24%24%0A%20%20%20%20%E3%81%A8%E3%81%AA%E3%82%8B%E3%80%82%0A%20%20%20%20%E3%82%A8%E3%83%8D%E3%83%AB%E3%82%AE%E3%83%BC%E3%81%AF%E9%81%8B%E5%8B%95%E3%81%AE%E7%A9%8D%E5%88%86%E3%81%A7%0A%20%20%20%20%24%24%0A%20%20%20%20%20%20%20%20E%3D%5Cfrac%7B1%7D%7B2%7D(p_x%5E2%2Bp_y%5E2)-%5Cfrac%7B1%7D%7B(q_x%5E2%2Bq_y%5E2)%5E%7B1%2F2%7D%7D%0A%20%20%20%20%24%24%0A%20%20%20%20%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82%0A%20%20%20%20%E5%88%9D%E6%9C%9F%E6%9D%A1%E4%BB%B6%E3%81%AB%20%24(q_x%2Cq_y%2Cp_x%2Cp_y)%3D(1%2C0%2C0%2C1)%24%20%E3%82%92%E9%81%B8%E3%81%B6%E3%81%A8%0A%20%20%20%20%24E%20%3D%20-1%2F2%24%20%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20from%20typing%20import%20Callable%2C%20List%0A%0A%20%20%20%20from%20numpy%20import%20ndarray%0A%0A%20%20%20%20def%20dqxdt(x%3A%20ndarray)%20-%3E%20float%3A%0A%20%20%20%20%20%20%20%20return%20x%5B2%5D%0A%0A%20%20%20%20def%20dqydt(x%3A%20ndarray)%20-%3E%20float%3A%0A%20%20%20%20%20%20%20%20return%20x%5B3%5D%0A%0A%20%20%20%20def%20dpxdt(x%3A%20ndarray)%20-%3E%20float%3A%0A%20%20%20%20%20%20%20%20return%20-x%5B0%5D%2F(x%5B0%5D**2%20%2B%20x%5B1%5D**2)**1.5%0A%0A%20%20%20%20def%20dpydt(x%3A%20ndarray)%20-%3E%20float%3A%0A%20%20%20%20%20%20%20%20return%20-x%5B1%5D%2F(x%5B0%5D**2%20%2B%20x%5B1%5D**2)**1.5%0A%0A%20%20%20%20%23%20%E9%81%8B%E5%8B%95%E6%96%B9%E7%A8%8B%E5%BC%8F%0A%20%20%20%20dxdt%3A%20List%5BCallable%5B%5Bndarray%5D%2C%20float%5D%5D%20%3D%20%5Bdqxdt%2Cdqydt%2Cdpxdt%2Cdpydt%5D%0A%20%20%20%20return%20Callable%2C%20List%2C%20dxdt%2C%20ndarray%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%E4%B8%80%E6%AE%B5%E9%9A%8E%E6%B3%95%EF%BC%88%E9%99%BD%E7%9A%84%E8%A7%A3%E6%B3%95%EF%BC%89%0A%0A%20%20%20%20%E4%B8%80%E6%AE%B5%E9%9A%8E%E6%B3%95%E3%81%AF%E5%AE%9F%E8%A3%85%E3%81%8C%E5%AE%B9%E6%98%93%E3%80%82%E3%81%9F%E3%81%A0%E3%81%97%E9%9D%9E%E3%82%B7%E3%83%B3%E3%83%97%E3%83%AC%E3%82%AF%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF%E3%81%A7%E7%A1%AC%E3%81%84%E6%96%B9%E7%A8%8B%E5%BC%8F%E7%B3%BB%E3%81%AB%E4%B8%8D%E9%81%A9%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E3%82%AA%E3%82%A4%E3%83%A9%E3%83%BC%E6%B3%95%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E3%82%AA%E3%82%A4%E3%83%A9%E3%83%BC%E6%B3%95%E3%81%AF%E5%8D%98%E7%B4%94%E3%81%AA%E5%B7%AE%E5%88%86%E8%BF%91%E4%BC%BC%0A%20%20%20%20%24%24%0A%20%20%20%20%20%20%20%20%5Cvec%7Bx%7D(t%2Bdt)%0A%20%20%20%20%20%20%20%20%5Csimeq%5Cvec%7Bx%7D(t)%2B%5Cfrac%7Bd%5Cvec%7Bx%7D%7D%7Bdt%7D(t%2C%5Cvec%7Bx%7D(t))dt%0A%20%20%20%20%24%24%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(Callable%2C%20List%2C%20ndarray)%3A%0A%20%20%20%20import%20math%0A%0A%20%20%20%20import%20numpy%20as%20np%0A%0A%20%20%20%20def%20euler(dxdt%3A%20List%5BCallable%5B%5Bndarray%5D%2C%20float%5D%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20init%3A%20ndarray%2C%20t_end%3A%20float)%20-%3E%20ndarray%3A%0A%20%20%20%20%20%20%20%20%23%20%E6%AC%A1%E5%85%83%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%0A%20%20%20%20%20%20%20%20if%20len(dxdt)%20!%3D%20len(init)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20raise%20Exception(%22Dimension%20error!%22)%0A%0A%20%20%20%20%20%20%20%20%23%20%E3%82%BD%E3%83%AB%E3%83%90%E3%83%BC%E3%81%AE%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%0A%20%20%20%20%20%20%20%20dt%3A%20float%20%3D%201e-2%0A%0A%20%20%20%20%20%20%20%20%23%20%E5%88%9D%E6%9C%9F%E7%8A%B6%E6%85%8B%0A%20%20%20%20%20%20%20%20x_list%3A%20ndarray%20%3D%20np.array(%5Binit%5D)%0A%20%20%20%20%20%20%20%20e_list%3A%20ndarray%20%3D%20np.array(%5B(init%5B2%5D**2%2Binit%5B3%5D**2)%2F2%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20-(init%5B0%5D**2%2Binit%5B1%5D**2)**(-1%2F2)%5D)%0A%20%20%20%20%20%20%20%20%23%20%E3%82%BD%E3%83%AB%E3%83%90%E3%83%BC%E5%AE%9F%E6%96%BD%0A%20%20%20%20%20%20%20%20steps%3A%20List%5Bint%5D%20%3D%20range(1%2C%20math.floor(t_end%2Fdt)%2C%201)%0A%20%20%20%20%20%20%20%20for%20t%20in%20steps%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20%E3%82%AA%E3%82%A4%E3%83%A9%E3%83%BC%E6%B3%95%0A%20%20%20%20%20%20%20%20%20%20%20%20x_next%3A%20ndarray%20%3D%20np.zeros(len(init))%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20k%20in%20range(len(init))%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x_next%5Bk%5D%20%3D%20x_list%5B-1%5D%5Bk%5D%20%2B%20dxdt%5Bk%5D(x_list%5B-1%5D)%20*%20dt%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20%E7%B5%90%E6%9E%9C%E3%82%92%E8%BF%BD%E5%8A%A0%0A%20%20%20%20%20%20%20%20%20%20%20%20x_list%20%3D%20np.vstack((x_list%2Cx_next))%0A%20%20%20%20%20%20%20%20%20%20%20%20e_list%20%3D%20np.append(e_list%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(x_next%5B2%5D**2%2Bx_next%5B3%5D**2)%2F2-(x_next%5B0%5D**2%2Bx_next%5B1%5D**2)**(-1%2F2))%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20%23%20%E4%BD%8D%E7%BD%AE%E3%83%BB%E9%81%8B%E5%8B%95%E9%87%8F%E3%83%BB%E3%82%A8%E3%83%8D%E3%83%AB%E3%82%AE%E3%83%BC%E3%82%92%E6%88%BB%E3%82%8A%E5%80%A4%E3%81%A8%E3%81%97%E3%81%A6%E6%88%BB%E3%81%99%0A%20%20%20%20%20%20%20%20return%20np.vstack((x_list.T%2C%20e_list))%0A%0A%20%20%20%20return%20euler%2C%20math%2C%20np%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E8%BB%8C%E9%81%93%E3%82%92%E8%A8%88%E7%AE%97%E3%81%97%E3%81%A6%E8%A1%A8%E7%A4%BA%E3%80%82%E8%AA%A4%E5%B7%AE%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E8%BB%8C%E9%81%93%E3%81%8C%E5%BA%83%E3%81%8C%E3%82%8B%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(dxdt%3A%20%22List%5BCallable%5B%5Bndarray%5D%2C%20float%5D%5D%22%2C%20euler%2C%20ndarray%2C%20np)%3A%0A%20%20%20%20import%20matplotlib.pyplot%20as%20plt%0A%0A%20%20%20%20ans%3A%20ndarray%20%3D%20euler(dxdt%2C%20np.array(%5B1%2C0%2C0%2C1%5D)%2C%20100)%0A%20%20%20%20plt.plot(ans%5B0%5D%2C%20ans%5B1%5D)%0A%20%20%20%20return%20ans%2C%20plt%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E8%AA%A4%E5%B7%AE%E3%81%A7%E3%82%A8%E3%83%8D%E3%83%AB%E3%82%AE%E3%83%BC%E3%81%8C%E4%B8%8A%E6%98%87%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(ans%3A%20%22ndarray%22%2C%20plt)%3A%0A%20%20%20%20plt.plot(ans%5B4%5D)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E3%83%9B%E3%82%A4%E3%83%B3%E6%B3%95%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E3%83%9B%E3%82%A4%E3%83%B3%E6%B3%95%E3%81%AF%E6%AC%A1%E6%95%B0%202%20%E3%81%AE%201%20%E6%AE%B5%E9%9A%8E%E6%B3%95%E3%80%82%0A%20%20%20%20%24%24%0A%20%20%20%20%5Cvec%7Bk%7D_1%5Cequiv%5Cfrac%7Bd%5Cvec%7Bx%7D%7D%7Bdt%7D(t%2C%5Cvec%7Bx%7D(t))%2C%5Cquad%0A%20%20%20%20%5Cvec%7Bk%7D_2%5Cequiv%5Cfrac%7Bd%5Cvec%7Bx%7D%7D%7Bdt%7D%5Cleft(t%2Bdt%2C%5Cvec%7Bx%7D(t)%2B%5Cvec%7Bk%7D_1dt%5Cright)%0A%20%20%20%20%24%24%0A%20%20%20%20%E3%81%A8%E3%81%99%E3%82%8C%E3%81%B0%0A%20%20%20%20%24%24%0A%20%20%20%20%20%20%20%20%5Cvec%7Bx%7D(t%2Bdt)%0A%20%20%20%20%20%20%20%20%5Csimeq%5Cvec%7Bx%7D(t)%0A%20%20%20%20%20%20%20%20%2B(%5Cvec%7Bk%7D_1%2B%5Cvec%7Bk%7D_2)%5Cfrac%7Bdt%7D%7B2%7D%0A%20%20%20%20%24%24%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(Callable%2C%20List%2C%20math%2C%20ndarray%2C%20np)%3A%0A%20%20%20%20def%20heun(dxdt%3A%20List%5BCallable%5B%5Bndarray%5D%2C%20float%5D%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20init%3A%20ndarray%2C%20t_end%3A%20float)%20-%3E%20ndarray%3A%0A%20%20%20%20%20%20%20%20%23%20%E6%AC%A1%E5%85%83%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%0A%20%20%20%20%20%20%20%20if%20len(dxdt)%20!%3D%20len(init)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20raise%20Exception(%22Dimension%20error!%22)%0A%0A%20%20%20%20%20%20%20%20%23%20%E3%82%BD%E3%83%AB%E3%83%90%E3%83%BC%E3%81%AE%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%0A%20%20%20%20%20%20%20%20dt%3A%20float%20%3D%201e-2%0A%20%20%20%20%20%20%20%20steps%3A%20List%5Bint%5D%20%3D%20range(1%2C%20math.floor(t_end%2Fdt)%2C%201)%0A%0A%20%20%20%20%20%20%20%20%23%20%E5%88%9D%E6%9C%9F%E7%8A%B6%E6%85%8B%0A%20%20%20%20%20%20%20%20x_list%3A%20ndarray%20%3D%20np.array(%5Binit%5D)%0A%20%20%20%20%20%20%20%20e_list%3A%20ndarray%20%3D%20np.array(%5B(init%5B2%5D**2%2Binit%5B3%5D**2)%2F2%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20-(init%5B0%5D**2%2Binit%5B1%5D**2)**(-1%2F2)%5D)%0A%20%20%20%20%20%20%20%20%23%20%E3%82%BD%E3%83%AB%E3%83%90%E3%83%BC%E5%AE%9F%E6%96%BD%0A%20%20%20%20%20%20%20%20for%20t%20in%20steps%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20%E3%83%9B%E3%82%A4%E3%83%B3%E6%B3%95%0A%20%20%20%20%20%20%20%20%20%20%20%20k%3A%20ndarray%20%3D%20np.zeros(len(init))%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20d%20in%20range(len(init))%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20k%5Bd%5D%20%3D%20x_list%5B-1%5D%5Bd%5D%20%2B%20dxdt%5Bd%5D(x_list%5B-1%5D)%20*%20dt%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20x_next%3A%20ndarray%20%3D%20np.zeros(len(init))%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20d%20in%20range(len(init))%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x_next%5Bd%5D%20%3D%20x_list%5B-1%5D%5Bd%5D%20%2B%20dt%2F2%20*%20(dxdt%5Bd%5D(x_list%5B-1%5D)%2Bdxdt%5Bd%5D(k))%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20%E7%B5%90%E6%9E%9C%E3%82%92%E8%BF%BD%E5%8A%A0%0A%20%20%20%20%20%20%20%20%20%20%20%20x_list%20%3D%20np.vstack((x_list%2Cx_next))%0A%20%20%20%20%20%20%20%20%20%20%20%20e_list%20%3D%20np.append(e_list%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(x_next%5B2%5D**2%2Bx_next%5B3%5D**2)%2F2-(x_next%5B0%5D**2%2Bx_next%5B1%5D**2)**(-1%2F2))%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20%23%20%E4%BD%8D%E7%BD%AE%E3%83%BB%E9%81%8B%E5%8B%95%E9%87%8F%E3%83%BB%E3%82%A8%E3%83%8D%E3%83%AB%E3%82%AE%E3%83%BC%E3%82%92%E6%88%BB%E3%82%8A%E5%80%A4%E3%81%A8%E3%81%97%E3%81%A6%E6%88%BB%E3%81%99%0A%20%20%20%20%20%20%20%20return%20np.vstack((x_list.T%2C%20e_list))%0A%0A%20%20%20%20return%20(heun%2C)%0A%0A%0A%40app.cell%0Adef%20_(dxdt%3A%20%22List%5BCallable%5B%5Bndarray%5D%2C%20float%5D%5D%22%2C%20heun%2C%20ndarray%2C%20plt)%3A%0A%20%20%20%20ans_1%3A%20ndarray%20%3D%20heun(dxdt%2C%20%5B1%2C%200%2C%200%2C%201%5D%2C%20100)%0A%20%20%20%20plt.plot(ans_1%5B0%5D%2C%20ans_1%5B1%5D)%0A%20%20%20%20return%20(ans_1%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E3%82%AA%E3%82%A4%E3%83%A9%E3%83%BC%E6%B3%95%E3%81%A8%E6%AF%94%E8%BC%83%E3%81%97%E3%81%A6%E8%AA%A4%E5%B7%AE%E3%81%8C%E4%BD%8E%E6%B8%9B%E3%81%99%E3%82%8B%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(ans_1%3A%20%22ndarray%22%2C%20plt)%3A%0A%20%20%20%20plt.ticklabel_format(useOffset%3DFalse)%0A%20%20%20%20plt.plot(ans_1%5B4%5D)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E3%83%AB%E3%83%B3%E3%82%B2%E3%83%BB%E3%82%AF%E3%83%83%E3%82%BF%E6%B3%95%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E3%83%AB%E3%83%B3%E3%82%B2%E3%83%BB%E3%82%AF%E3%83%83%E3%82%BF%E6%B3%95%E3%81%AF%E6%AC%A1%E6%95%B0%204%20%E3%81%AE%201%20%E6%AE%B5%E9%9A%8E%E6%B3%95%E3%80%82%0A%20%20%20%20%24%24%0A%20%20%20%20%5Cbegin%7Baligned%7D%0A%20%20%20%20%26%5Cvec%7Bk%7D_1%5Cequiv%5Cfrac%7Bd%5Cvec%7Bx%7D%7D%7Bdt%7D%5Cleft(t%2C%5Cvec%7Bx%7D%5Cright)%2C%5C%5C%0A%20%20%20%20%26%5Cvec%7Bk%7D_2%5Cequiv%5Cfrac%7Bd%5Cvec%7Bx%7D%7D%7Bdt%7D%5Cleft(t%2B%5Cfrac%7Bdt%7D%7B2%7D%2C%5Cvec%7Bx%7D%2B%5Cvec%7Bk%7D_1%5Cfrac%7Bdt%7D%7B2%7D%5Cright)%2C%5C%5C%0A%20%20%20%20%26%5Cvec%7Bk%7D_3%5Cequiv%5Cfrac%7Bd%5Cvec%7Bx%7D%7D%7Bdt%7D%5Cleft(t%2B%5Cfrac%7Bdt%7D%7B2%7D%2C%5Cvec%7Bx%7D%2B%5Cvec%7Bk%7D_2%5Cfrac%7Bdt%7D%7B2%7D%5Cright)%2C%5C%5C%0A%20%20%20%20%26%5Cvec%7Bk%7D_4%5Cequiv%5Cfrac%7Bd%5Cvec%7Bx%7D%7D%7Bdt%7D%5Cleft(t%2Bdt%2C%5Cvec%7Bx%7D%2B%5Cvec%7Bk%7D_3dt%5Cright)%2C%0A%20%20%20%20%5Cend%7Baligned%7D%0A%20%20%20%20%24%24%0A%20%20%20%20%E3%81%A8%E3%81%97%E3%81%A6%0A%20%20%20%20%24%24%0A%20%20%20%20%20%20%20%20%5Cvec%7Bx%7D(t%2Bdt)%0A%20%20%20%20%20%20%20%20%5Csimeq%5Cvec%7Bx%7D(t)%2B(%5Cvec%7Bk%7D_1%2B2%5Cvec%7Bk%7D_2%2B2%5Cvec%7Bk%7D_3%2B%5Cvec%7Bk%7D_4)%5Cfrac%7Bdt%7D%7B6%7D%0A%20%20%20%20%24%24%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(Callable%2C%20List%2C%20math%2C%20ndarray%2C%20np)%3A%0A%20%20%20%20def%20rk4(dxdt%3A%20List%5BCallable%5B%5Bndarray%5D%2C%20float%5D%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20init%3A%20ndarray%2C%20t_end%3A%20float)%20-%3E%20ndarray%3A%0A%20%20%20%20%20%20%20%20%23%20%E6%AC%A1%E5%85%83%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%0A%20%20%20%20%20%20%20%20if%20len(dxdt)%20!%3D%20len(init)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20raise%20Exception(%22Dimension%20error!%22)%0A%0A%20%20%20%20%20%20%20%20%23%20%E3%82%BD%E3%83%AB%E3%83%90%E3%83%BC%E3%81%AE%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%0A%20%20%20%20%20%20%20%20dt%3A%20float%20%3D%201e-2%0A%20%20%20%20%20%20%20%20steps%3A%20List%5Bint%5D%20%3D%20range(1%2C%20math.floor(t_end%2Fdt)%2C%201)%0A%0A%20%20%20%20%20%20%20%20%23%20%E5%88%9D%E6%9C%9F%E7%8A%B6%E6%85%8B%0A%20%20%20%20%20%20%20%20x_list%3A%20ndarray%20%3D%20np.array(%5Binit%5D)%0A%20%20%20%20%20%20%20%20e_list%3A%20ndarray%20%3D%20np.array(%5B(init%5B2%5D**2%2Binit%5B3%5D**2)%2F2%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20-(init%5B0%5D**2%2Binit%5B1%5D**2)**(-1%2F2)%5D)%0A%20%20%20%20%20%20%20%20%23%20%E3%82%BD%E3%83%AB%E3%83%90%E3%83%BC%E5%AE%9F%E6%96%BD%0A%20%20%20%20%20%20%20%20for%20t%20in%20steps%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20%E3%83%AB%E3%83%B3%E3%82%B2%E3%83%BB%E3%82%AF%E3%83%83%E3%82%BF%E6%B3%95%0A%20%20%20%20%20%20%20%20%20%20%20%20k%3A%20ndarray%20%3D%20np.zeros((4%2C%20len(init)))%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20d%20in%20range(len(init))%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20k%5B0%2Cd%5D%20%3D%20dxdt%5Bd%5D(x_list%5B-1%5D)%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20d%20in%20range(len(init))%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20k%5B1%2Cd%5D%20%3D%20dxdt%5Bd%5D(x_list%5B-1%5D%2Bdt%2F2*k%5B0%5D)%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20d%20in%20range(len(init))%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20k%5B2%2Cd%5D%20%3D%20dxdt%5Bd%5D(x_list%5B-1%5D%2Bdt%2F2*k%5B1%5D)%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20d%20in%20range(len(init))%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20k%5B3%2Cd%5D%20%3D%20dxdt%5Bd%5D(x_list%5B-1%5D%2Bdt*k%5B2%5D)%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20x_next%3A%20ndarray%20%3D%20np.zeros(len(init))%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20d%20in%20range(len(init))%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x_next%5Bd%5D%20%3D%20x_list%5B-1%5D%5Bd%5D%20%2B%20dt%20*%20(k%5B0%2Cd%5D%2B2*k%5B1%2Cd%5D%2B2*k%5B2%2Cd%5D%2Bk%5B3%2Cd%5D)%2F6%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20%E7%B5%90%E6%9E%9C%E3%82%92%E8%BF%BD%E5%8A%A0%0A%20%20%20%20%20%20%20%20%20%20%20%20x_list%20%3D%20np.vstack((x_list%2Cx_next))%0A%20%20%20%20%20%20%20%20%20%20%20%20e_list%20%3D%20np.append(e_list%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(x_next%5B2%5D**2%2Bx_next%5B3%5D**2)%2F2-(x_next%5B0%5D**2%2Bx_next%5B1%5D**2)**(-1%2F2))%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20%23%20%E4%BD%8D%E7%BD%AE%E3%83%BB%E9%81%8B%E5%8B%95%E9%87%8F%E3%83%BB%E3%82%A8%E3%83%8D%E3%83%AB%E3%82%AE%E3%83%BC%E3%82%92%E6%88%BB%E3%82%8A%E5%80%A4%E3%81%A8%E3%81%97%E3%81%A6%E6%88%BB%E3%81%99%0A%20%20%20%20%20%20%20%20return%20np.vstack((x_list.T%2C%20e_list))%0A%0A%20%20%20%20return%20(rk4%2C)%0A%0A%0A%40app.cell%0Adef%20_(dxdt%3A%20%22List%5BCallable%5B%5Bndarray%5D%2C%20float%5D%5D%22%2C%20ndarray%2C%20plt%2C%20rk4)%3A%0A%20%20%20%20ans_2%3A%20ndarray%20%3D%20rk4(dxdt%2C%20%5B1%2C%200%2C%200%2C%201%5D%2C%20100)%0A%20%20%20%20plt.plot(ans_2%5B0%5D%2C%20ans_2%5B1%5D)%0A%20%20%20%20return%20(ans_2%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E8%AA%A4%E5%B7%AE%E3%81%8C%E6%9B%B4%E3%81%AB%E4%BD%8E%E6%B8%9B%E3%81%99%E3%82%8B%E3%81%8C%E3%80%81%E8%AA%A4%E5%B7%AE%E3%81%AE%E5%A2%97%E5%A4%A7%E6%96%B9%E5%90%91%E3%81%8C%E9%80%86%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(ans_2%3A%20%22ndarray%22%2C%20plt)%3A%0A%20%20%20%20plt.ticklabel_format(useOffset%3DFalse)%0A%20%20%20%20plt.plot(ans_2%5B4%5D)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%E7%B7%9A%E5%BD%A2%E5%A4%9A%E6%AE%B5%E6%B3%95%0A%0A%20%20%20%20%E7%B7%9A%E5%BD%A2%E5%A4%9A%E6%AE%B5%E6%B3%95%E3%81%AF%E4%B8%80%E6%AE%B5%E9%9A%8E%E6%B3%95%E3%81%A8%E6%AF%94%E3%81%B9%E3%81%A6%E5%B0%8E%E5%87%BA%E3%81%8C%E5%AE%B9%E6%98%93%E3%81%A7%E8%A8%88%E7%AE%97%E9%87%8F%E3%81%8C%E5%B0%91%E3%81%AA%E3%81%84%E3%80%82%0A%20%20%20%20%E4%B8%80%E6%96%B9%E3%81%A7%E8%A8%88%E7%AE%97%E9%96%8B%E5%A7%8B%E5%89%8D%E3%81%AB%E4%B8%80%E6%AE%B5%E9%9A%8E%E6%B3%95%E3%81%AA%E3%81%A9%E3%81%A7%E6%95%B0%E5%9B%9E%E8%A8%88%E7%AE%97%E3%82%92%E8%A1%8C%E3%81%86%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8B%E3%80%82%0A%20%20%20%20%E3%81%BE%E3%81%9F%E4%B8%80%E6%AE%B5%E9%9A%8E%E6%B3%95%E3%81%A8%E5%90%8C%E6%A7%98%E3%81%AB%E9%9D%9E%E3%82%B7%E3%83%B3%E3%83%97%E3%83%AC%E3%82%AF%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF%E3%81%A7%E7%A1%AC%E3%81%84%E6%96%B9%E7%A8%8B%E5%BC%8F%E3%81%AB%E4%B8%8D%E9%81%A9%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E3%82%A2%E3%83%80%E3%83%A0%E3%82%B9%E3%83%BB%E3%83%90%E3%83%83%E3%82%B7%E3%83%A5%E3%83%95%E3%82%A9%E3%83%BC%E3%82%B9%E6%B3%95%EF%BC%88%E9%99%BD%E7%9A%84%E8%A7%A3%E6%B3%95%EF%BC%89%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E3%82%A2%E3%83%80%E3%83%A0%E3%82%B9%E3%83%BB%E3%83%90%E3%83%83%E3%82%B7%E3%83%A5%E3%83%95%E3%82%A9%E3%83%BC%E3%82%B9%E6%B3%95%E3%81%AF%E8%A3%9C%E5%A4%96%E3%81%AB%E3%82%88%E3%82%8B%E9%99%BD%E7%9A%84%E7%B7%9A%E5%BD%A2%E5%A4%9A%E6%AE%B5%E6%B3%95%E3%80%824%E6%AC%A1%E3%81%AE%E5%85%AC%E5%BC%8F%E3%81%AF%0A%20%20%20%20%24%24%0A%20%20%20%20%20%20%20%20%5Cvec%7Bx%7D(t%2Bdt)%0A%20%20%20%20%20%20%20%20%5Csimeq%20%5Cvec%7Bx%7D(t)%2B%5Cleft(-%5Cfrac%7B9%7D%7B24%7D%5Cvec%7Bx%7D'(t-3dt)%2B%5Cfrac%7B37%7D%7B24%7D%5Cvec%7Bx%7D'(t-2dt)-%5Cfrac%7B59%7D%7B24%7D%5Cvec%7Bx%7D'(t-dt)%2B%5Cfrac%7B55%7D%7B24%7D%5Cvec%7Bx%7D'(t)%5Cright)dt%0A%20%20%20%20%24%24%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(Callable%2C%20List%2C%20math%2C%20ndarray%2C%20np)%3A%0A%20%20%20%20def%20adams_bashforth(dxdt%3A%20List%5BCallable%5B%5Bndarray%5D%2C%20float%5D%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20init%3A%20ndarray%2C%20t_end%3A%20float)%20-%3E%20ndarray%3A%0A%20%20%20%20%20%20%20%20%23%20%E6%AC%A1%E5%85%83%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%0A%20%20%20%20%20%20%20%20if%20len(dxdt)%20!%3D%20len(init)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20raise%20Exception(%22Dimension%20error!%22)%0A%0A%20%20%20%20%20%20%20%20%23%20%E3%82%BD%E3%83%AB%E3%83%90%E3%83%BC%E3%81%AE%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%0A%20%20%20%20%20%20%20%20dt%3A%20float%20%3D%201e-2%0A%0A%20%20%20%20%20%20%20%20%23%20%E5%88%9D%E6%9C%9F%E7%8A%B6%E6%85%8B%0A%20%20%20%20%20%20%20%20x_list%3A%20ndarray%20%3D%20np.array(%5Binit%5D)%0A%20%20%20%20%20%20%20%20e_list%3A%20ndarray%20%3D%20np.array(%5B(init%5B2%5D**2%2Binit%5B3%5D**2)%2F2%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20-(init%5B0%5D**2%2Binit%5B1%5D**2)**(-1%2F2)%5D)%0A%20%20%20%20%20%20%20%20%23%20%E5%A4%9A%E6%AE%B5%E6%B3%95%E3%81%AE%E6%BA%96%E5%82%99%0A%20%20%20%20%20%20%20%20for%20t%20in%20range(1%2C4)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20%E3%82%AA%E3%82%A4%E3%83%A9%E3%83%BC%E6%B3%95%0A%20%20%20%20%20%20%20%20%20%20%20%20x_next%3A%20ndarray%20%3D%20np.zeros(len(init))%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20k%20in%20range(len(init))%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x_next%5Bk%5D%20%3D%20x_list%5B-1%5D%5Bk%5D%20%2B%20dxdt%5Bk%5D(x_list%5B-1%5D)%20*%20dt%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20%E7%B5%90%E6%9E%9C%E3%82%92%E8%BF%BD%E5%8A%A0%0A%20%20%20%20%20%20%20%20%20%20%20%20x_list%20%3D%20np.vstack((x_list%2Cx_next))%0A%20%20%20%20%20%20%20%20%20%20%20%20e_list%20%3D%20np.append(e_list%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(x_next%5B2%5D**2%2Bx_next%5B3%5D**2)%2F2-(x_next%5B0%5D**2%2Bx_next%5B1%5D**2)**(-1%2F2))%0A%0A%20%20%20%20%20%20%20%20%23%20%E3%82%BD%E3%83%AB%E3%83%90%E3%83%BC%E5%AE%9F%E6%96%BD%0A%20%20%20%20%20%20%20%20steps%3A%20List%5Bint%5D%20%3D%20range(5%2C%20math.floor(t_end%2Fdt)%2C%201)%0A%20%20%20%20%20%20%20%20for%20t%20in%20steps%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20%E3%82%A2%E3%83%80%E3%83%A0%E3%82%B9%E3%83%BB%E3%83%90%E3%83%83%E3%82%B7%E3%83%A5%E3%83%95%E3%82%A9%E3%83%BC%E3%82%B9%E6%B3%95%0A%20%20%20%20%20%20%20%20%20%20%20%20x_next%3A%20ndarray%20%3D%20np.zeros(len(init))%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20k%20in%20range(len(init))%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x_next%5Bk%5D%20%3D%20x_list%5B-1%5D%5Bk%5D%20%2B%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20-%209%20*%20dxdt%5Bk%5D(x_list%5B-4%5D)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2B37%20*%20dxdt%5Bk%5D(x_list%5B-3%5D)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20-59%20*%20dxdt%5Bk%5D(x_list%5B-2%5D)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2B55%20*%20dxdt%5Bk%5D(x_list%5B-1%5D))%20*%20dt%2F24%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20%E7%B5%90%E6%9E%9C%E3%82%92%E8%BF%BD%E5%8A%A0%0A%20%20%20%20%20%20%20%20%20%20%20%20x_list%20%3D%20np.vstack((x_list%2Cx_next))%0A%20%20%20%20%20%20%20%20%20%20%20%20e_list%20%3D%20np.append(e_list%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(x_next%5B2%5D**2%2Bx_next%5B3%5D**2)%2F2-(x_next%5B0%5D**2%2Bx_next%5B1%5D**2)**(-1%2F2))%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20%23%20%E4%BD%8D%E7%BD%AE%E3%83%BB%E9%81%8B%E5%8B%95%E9%87%8F%E3%83%BB%E3%82%A8%E3%83%8D%E3%83%AB%E3%82%AE%E3%83%BC%E3%82%92%E6%88%BB%E3%82%8A%E5%80%A4%E3%81%A8%E3%81%97%E3%81%A6%E6%88%BB%E3%81%99%0A%20%20%20%20%20%20%20%20return%20np.vstack((x_list.T%2C%20e_list))%0A%0A%20%20%20%20return%20(adams_bashforth%2C)%0A%0A%0A%40app.cell%0Adef%20_(%0A%20%20%20%20adams_bashforth%2C%0A%20%20%20%20dxdt%3A%20%22List%5BCallable%5B%5Bndarray%5D%2C%20float%5D%5D%22%2C%0A%20%20%20%20ndarray%2C%0A%20%20%20%20np%2C%0A%20%20%20%20plt%2C%0A)%3A%0A%20%20%20%20ans_3%3A%20ndarray%20%3D%20adams_bashforth(dxdt%2C%20np.array(%5B1%2C%200%2C%200%2C%201%5D)%2C%20100)%0A%20%20%20%20plt.plot(ans_3%5B0%5D%2C%20ans_3%5B1%5D)%0A%20%20%20%20return%20(ans_3%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E5%89%8D%E6%BA%96%E5%82%99%E3%82%92%E9%99%A4%E3%81%84%E3%81%9F%E3%82%A8%E3%83%8D%E3%83%AB%E3%82%AE%E3%83%BC%E3%82%92%E3%83%97%E3%83%AD%E3%83%83%E3%83%88%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(ans_3%3A%20%22ndarray%22%2C%20plt)%3A%0A%20%20%20%20plt.ticklabel_format(useOffset%3DFalse)%0A%20%20%20%20plt.plot(ans_3%5B4%2C%2010%3A%5D)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E3%82%A2%E3%83%80%E3%83%A0%E3%82%B9%E3%83%BB%E3%83%A0%E3%83%AB%E3%83%88%E3%83%B3%E6%B3%95%EF%BC%88%E9%99%B0%E7%9A%84%E8%A7%A3%E6%B3%95%EF%BC%89%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E3%82%A2%E3%83%80%E3%83%A0%E3%82%B9%E3%83%BB%E3%83%A0%E3%83%AB%E3%83%88%E3%83%B3%E6%B3%95%E3%81%AF%E8%A3%9C%E9%96%93%E3%81%AB%E3%82%88%E3%82%8B%E9%99%B0%E7%9A%84%E7%B7%9A%E5%BD%A2%E5%A4%9A%E6%AE%B5%E6%B3%95%E3%80%824%E6%AC%A1%E3%81%AE%E5%85%AC%E5%BC%8F%E3%81%AF%0A%20%20%20%20%24%24%0A%20%20%20%20%20%20%20%20%5Cvec%7Bx%7D(t%2Bdt)%0A%20%20%20%20%20%20%20%20%5Csimeq%20%5Cvec%7Bx%7D(t)%2B%5Cleft(%5Cfrac%7B1%7D%7B24%7D%5Cvec%7Bx%7D'(t-2dt)-%5Cfrac%7B5%7D%7B24%7D%5Cvec%7Bx%7D'(t-dt)-%5Cfrac%7B19%7D%7B24%7D%5Cvec%7Bx%7D'(t)%2B%5Cfrac%7B9%7D%7B24%7D%5Cvec%7Bx%7D'(t%2Bdt)%5Cright)dt.%0A%20%20%20%20%24%24%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E3%82%A2%E3%83%80%E3%83%A0%E3%82%B9%E6%B3%95%EF%BC%88%E4%BA%88%E6%B8%AC%E5%AD%90%E4%BF%AE%E6%AD%A3%E5%AD%90%E6%B3%95%EF%BC%89%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E3%82%A2%E3%83%80%E3%83%A0%E3%82%B9%E6%B3%95%EF%BC%88%E4%BA%88%E6%B8%AC%E5%AD%90%E4%BF%AE%E6%AD%A3%E5%AD%90%E6%B3%95%EF%BC%89%E3%81%AF%E4%BB%A5%E4%B8%8B%E3%81%AE%E9%80%9A%E3%82%8A%EF%BC%9A%0A%20%20%20%201.%20%E3%82%A2%E3%83%80%E3%83%A0%E3%82%B9%E3%83%BB%E3%83%90%E3%83%83%E3%82%B7%E3%83%A5%E3%83%95%E3%82%A9%E3%83%BC%E3%82%B9%E6%B3%95%EF%BC%88%E4%BA%88%E6%B8%AC%E5%AD%90%EF%BC%89%E3%81%A7%20%24%5Cvec%7Bx%7D(t)%24%20%E3%81%8B%E3%82%89%20%24%5Ctilde%7B%5Cvec%7Bx%7D%7D(t%2Bdt)%24%20%E3%82%92%E8%A8%88%E7%AE%97%0A%20%20%20%202.%20%24%5Ctilde%7B%5Cvec%7Bx%7D%7D(t%2Bdt)%24%20%E3%81%8B%E3%82%89%20%24%5Cvec%7Bx%7D'(t%2Bdt)%24%20%E3%82%92%E8%A8%88%E7%AE%97%0A%20%20%20%203.%20%E3%82%A2%E3%83%80%E3%83%A0%E3%82%B9%E3%83%BB%E3%83%A0%E3%83%AB%E3%83%88%E3%83%B3%E6%B3%95%EF%BC%88%E4%BF%AE%E6%AD%A3%E5%AD%90%EF%BC%89%E3%81%A7%20%24%5Ctilde%7B%5Cvec%7Bx%7D%7D(t%2Bdt)%24%20%E3%82%92%20%24%5Cvec%7Bx%7D(t%2Bdt)%24%E3%81%AB%E4%BF%AE%E6%AD%A3%0A%20%20%20%204.%20%E4%BF%AE%E6%AD%A3%E3%81%AE%E5%B7%AE%E3%81%8C%E4%B8%80%E5%AE%9A%E5%80%A4%E4%BB%A5%E4%B8%8B%E3%81%AA%E3%82%89%E7%B5%82%E4%BA%86.%E3%81%9D%E3%81%86%E3%81%A7%E3%81%AA%E3%81%84%E3%81%AA%E3%82%89%202.%20%E3%81%AB%E6%88%BB%E3%81%A3%E3%81%A6%E4%BF%AE%E6%AD%A3%E7%B5%90%E6%9E%9C%E3%82%92%E5%86%8D%E4%BF%AE%E6%AD%A3.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(Callable%2C%20List%2C%20math%2C%20ndarray%2C%20np)%3A%0A%20%20%20%20def%20adams(dxdt%3A%20List%5BCallable%5B%5Bndarray%5D%2C%20float%5D%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20init%3A%20ndarray%2C%20t_end%3A%20float)%20-%3E%20ndarray%3A%0A%20%20%20%20%20%20%20%20%23%20%E6%AC%A1%E5%85%83%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%0A%20%20%20%20%20%20%20%20if%20len(dxdt)%20!%3D%20len(init)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20raise%20Exception(%22Dimension%20error!%22)%0A%0A%20%20%20%20%20%20%20%20%23%20%E3%82%BD%E3%83%AB%E3%83%90%E3%83%BC%E3%81%AE%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%0A%20%20%20%20%20%20%20%20dt%3A%20float%20%3D%201e-2%0A%20%20%20%20%20%20%20%20iter_max%3A%20int%20%3D%2010%0A%0A%20%20%20%20%20%20%20%20%23%20%E5%88%9D%E6%9C%9F%E7%8A%B6%E6%85%8B%0A%20%20%20%20%20%20%20%20x_list%3A%20ndarray%20%3D%20np.array(%5Binit%5D)%0A%20%20%20%20%20%20%20%20e_list%3A%20ndarray%20%3D%20np.array(%5B(init%5B2%5D**2%2Binit%5B3%5D**2)%2F2%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20-(init%5B0%5D**2%2Binit%5B1%5D**2)**(-1%2F2)%5D)%0A%20%20%20%20%20%20%20%20%23%20%E5%A4%9A%E6%AE%B5%E6%B3%95%E3%81%AE%E6%BA%96%E5%82%99%0A%20%20%20%20%20%20%20%20for%20t%20in%20range(1%2C4)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20%E3%82%AA%E3%82%A4%E3%83%A9%E3%83%BC%E6%B3%95%0A%20%20%20%20%20%20%20%20%20%20%20%20x_next%3A%20ndarray%20%3D%20np.zeros(len(init))%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20k%20in%20range(len(init))%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x_next%5Bk%5D%20%3D%20x_list%5B-1%5D%5Bk%5D%20%2B%20dxdt%5Bk%5D(x_list%5B-1%5D)%20*%20dt%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20%E7%B5%90%E6%9E%9C%E3%82%92%E8%BF%BD%E5%8A%A0%0A%20%20%20%20%20%20%20%20%20%20%20%20x_list%20%3D%20np.vstack((x_list%2Cx_next))%0A%20%20%20%20%20%20%20%20%20%20%20%20e_list%20%3D%20np.append(e_list%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(x_next%5B2%5D**2%2Bx_next%5B3%5D**2)%2F2-(x_next%5B0%5D**2%2Bx_next%5B1%5D**2)**(-1%2F2))%0A%0A%20%20%20%20%20%20%20%20%23%20%E3%82%BD%E3%83%AB%E3%83%90%E3%83%BC%E5%AE%9F%E6%96%BD%0A%20%20%20%20%20%20%20%20steps%3A%20List%5Bint%5D%20%3D%20range(5%2C%20math.floor(t_end%2Fdt)%2C%201)%0A%20%20%20%20%20%20%20%20for%20t%20in%20steps%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20%E3%82%A2%E3%83%80%E3%83%A0%E3%82%B9%E3%83%BB%E3%83%90%E3%83%83%E3%82%B7%E3%83%A5%E3%83%95%E3%82%A9%E3%83%BC%E3%82%B9%E6%B3%95%0A%20%20%20%20%20%20%20%20%20%20%20%20x_next%3A%20ndarray%20%3D%20np.zeros(len(init))%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20k%20in%20range(len(init))%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x_next%5Bk%5D%20%3D%20x_list%5B-1%5D%5Bk%5D%20%2B%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20-%209%20*%20dxdt%5Bk%5D(x_list%5B-4%5D)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2B37%20*%20dxdt%5Bk%5D(x_list%5B-3%5D)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20-59%20*%20dxdt%5Bk%5D(x_list%5B-2%5D)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2B55%20*%20dxdt%5Bk%5D(x_list%5B-1%5D))%20*%20dt%2F24%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20i%20in%20range(0%2Citer_max)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20%E5%BE%AE%E5%88%86%E5%80%A4%E3%82%92%E8%A8%88%E7%AE%97%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x_prime%3A%20ndarray%20%3D%20np.zeros(len(init))%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20for%20k%20in%20range(len(init))%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x_prime%5Bk%5D%20%3D%20dxdt%5Bk%5D(x_next)%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20%E3%82%A2%E3%83%80%E3%83%A0%E3%82%B9%E3%83%BB%E3%83%A0%E3%83%AB%E3%83%88%E3%83%B3%E6%B3%95%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x_nnext%3A%20ndarray%20%3D%20np.zeros(len(init))%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20for%20k%20in%20range(len(init))%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x_nnext%5Bk%5D%20%3D%20x_list%5B-1%5D%5Bk%5D%20%2B%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20dxdt%5Bk%5D(x_list%5B-3%5D)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20-%205%20*%20dxdt%5Bk%5D(x_list%5B-2%5D)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2B19%20*%20dxdt%5Bk%5D(x_list%5B-1%5D)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2B%209%20*%20x_prime%5Bk%5D)%20*%20dt%2F24%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20diff%3A%20float%20%3D%20np.linalg.norm(x_next-x_nnext%2C%20ord%3D2)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x_next%20%3D%20x_nnext%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20diff%20%3C%201e-10%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20%E7%B5%90%E6%9E%9C%E3%82%92%E8%BF%BD%E5%8A%A0%0A%20%20%20%20%20%20%20%20%20%20%20%20x_list%20%3D%20np.vstack((x_list%2Cx_next))%0A%20%20%20%20%20%20%20%20%20%20%20%20e_list%20%3D%20np.append(e_list%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(x_next%5B2%5D**2%2Bx_next%5B3%5D**2)%2F2-(x_next%5B0%5D**2%2Bx_next%5B1%5D**2)**(-1%2F2))%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20%23%20%E4%BD%8D%E7%BD%AE%E3%83%BB%E9%81%8B%E5%8B%95%E9%87%8F%E3%83%BB%E3%82%A8%E3%83%8D%E3%83%AB%E3%82%AE%E3%83%BC%E3%82%92%E6%88%BB%E3%82%8A%E5%80%A4%E3%81%A8%E3%81%97%E3%81%A6%E6%88%BB%E3%81%99%0A%20%20%20%20%20%20%20%20return%20np.vstack((x_list.T%2C%20e_list))%0A%0A%20%20%20%20return%20(adams%2C)%0A%0A%0A%40app.cell%0Adef%20_(adams%2C%20dxdt%3A%20%22List%5BCallable%5B%5Bndarray%5D%2C%20float%5D%5D%22%2C%20ndarray%2C%20np%2C%20plt)%3A%0A%20%20%20%20ans_4%3A%20ndarray%20%3D%20adams(dxdt%2C%20np.array(%5B1%2C%200%2C%200%2C%201%5D)%2C%20100)%0A%20%20%20%20plt.plot(ans_4%5B0%5D%2C%20ans_4%5B1%5D)%0A%20%20%20%20return%20(ans_4%2C)%0A%0A%0A%40app.cell%0Adef%20_(ans_4%3A%20%22ndarray%22%2C%20plt)%3A%0A%20%20%20%20plt.ticklabel_format(useOffset%3DFalse)%0A%20%20%20%20plt.plot(ans_4%5B4%2C%2010%3A%5D)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%E3%82%B7%E3%83%B3%E3%83%97%E3%83%AC%E3%82%AF%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF%E6%95%B0%E5%80%A4%E7%A9%8D%E5%88%86%0A%0A%20%20%20%20%E3%83%8F%E3%83%9F%E3%83%AB%E3%83%88%E3%83%B3%E7%B3%BB%E3%81%AE%E4%BF%9D%E5%AD%98%E9%87%8F%E3%82%92%E8%BF%91%E4%BC%BC%E7%9A%84%E3%81%AB%E7%B6%AD%E6%8C%81%E3%81%99%E3%82%8B%E3%80%82%0A%20%20%20%20%E9%99%BD%E5%85%AC%E5%BC%8F%E3%81%AF%E3%83%AA%E3%83%BC%E3%83%97%E3%83%95%E3%83%AD%E3%83%83%E3%82%B0%E6%B3%95%E3%82%92%E3%83%99%E3%83%BC%E3%82%B9%E3%81%A8%E3%81%97%E3%81%9F%E5%90%88%E6%88%90%E5%85%AC%E5%BC%8F%E3%80%82%0A%20%20%20%20%E9%99%B0%E5%85%AC%E5%BC%8F%E3%81%AF%E3%82%AC%E3%82%A6%E3%82%B9%E3%83%BB%E3%83%AB%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%89%E3%83%AB%E7%A9%8D%E5%88%86%E3%82%92%E5%88%A9%E7%94%A8%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20%E3%83%AA%E3%83%BC%E3%83%97%E3%83%BB%E3%83%95%E3%83%AD%E3%83%83%E3%82%B0%E6%B3%95%EF%BC%88%E9%99%BD%E7%9A%84%E8%A7%A3%E6%B3%95%EF%BC%89%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E3%83%AA%E3%83%BC%E3%83%97%E3%83%BB%E3%83%95%E3%83%AD%E3%83%83%E3%82%B0%E6%B3%95%E3%81%AF%E4%B8%AD%E7%82%B9%E5%B7%AE%E5%88%86%E3%81%AB%E3%82%88%E3%82%8B2%E6%AE%B5%E9%9A%8E%E6%B3%95%E3%81%A72%E6%AC%A1%E3%81%AE%E3%82%B7%E3%83%B3%E3%83%97%E3%83%AC%E3%82%AF%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF%E6%95%B0%E5%80%A4%E7%A9%8D%E5%88%86%E3%80%82%0A%20%20%20%20%24%24%0A%20%20%20%20%5Cbegin%7Baligned%7D%0A%20%20%20%20%26%5Cvec%7Bq%7D(t%2B2dt)%5Csimeq%5Cvec%7Bq%7D(t)%2B%5Cvec%7Bp%7D(t%2Bdt)%5Ccdot2dt%2C%5C%5C%0A%20%20%20%20%26%5Cvec%7Bp%7D(t%2B2dt)%5Csimeq%5Cvec%7Bp%7D(t)%2B%5Cfrac%7Bd%5Cvec%7Bp%7D%7D%7Bdt%7D(t%2Bdt)%5Ccdot2dt%0A%20%20%20%20%5Cend%7Baligned%7D%0A%20%20%20%20%24%24%0A%20%20%20%20%E5%88%86%E9%9B%A2%E5%8F%AF%E8%83%BD%E3%81%AA%E3%83%8F%E3%83%9F%E3%83%AB%E3%83%88%E3%83%B3%E7%B3%BB%E3%81%A7%E3%81%AF%0A%20%20%20%20%24%24%0A%20%20%20%20%5Cbegin%7Baligned%7D%0A%20%20%20%20%26%5Cvec%7Bq%7D(t%2Bdt%2F2)%5Csimeq%5Cvec%7Bq%7D(t)%2B%5Cfrac%7Bd%5Cvec%7Bq%7D%7D%7Bdt%7D(p(t))dt%2F2%2C%5C%5C%0A%20%20%20%20%26%5Cvec%7Bp%7D(t%2Bdt)%5Csimeq%5Cvec%7Bp%7D(t)%2B%5Cfrac%7Bd%5Cvec%7Bp%7D%7D%7Bdt%7D(q(t%2Bdt%2F2))dt%2C%5C%5C%0A%20%20%20%20%26%5Cvec%7Bq%7D(t%2Bdt)%5Csimeq%5Cvec%7Bq%7D(t%2Bdt%2F2)%2B%5Cfrac%7Bd%5Cvec%7Bq%7D%7D%7Bdt%7D(p(t%2Bdt))dt%2F2%0A%20%20%20%20%5Cend%7Baligned%7D%0A%20%20%20%20%24%24%0A%20%20%20%20%E3%81%A8%E3%81%AA%E3%82%8B%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(Callable%2C%20List%2C%20math%2C%20ndarray%2C%20np)%3A%0A%20%20%20%20def%20leap_flog(dxdt%3A%20List%5BCallable%5B%5Bndarray%5D%2C%20float%5D%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20init%3A%20ndarray%2C%20t_end%3A%20float)%20-%3E%20ndarray%3A%0A%20%20%20%20%20%20%20%20%23%20%E6%AC%A1%E5%85%83%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%0A%20%20%20%20%20%20%20%20if%20len(dxdt)%20!%3D%20len(init)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20raise%20Exception(%22Dimension%20error!%22)%0A%0A%20%20%20%20%20%20%20%20%23%20%E3%82%BD%E3%83%AB%E3%83%90%E3%83%BC%E3%81%AE%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%0A%20%20%20%20%20%20%20%20dt%3A%20float%20%3D%201e-2%0A%20%20%20%20%20%20%20%20steps%3A%20List%5Bint%5D%20%3D%20range(1%2C%20math.floor(t_end%2Fdt)%2C%201)%0A%0A%20%20%20%20%20%20%20%20%23%20%E5%88%9D%E6%9C%9F%E7%8A%B6%E6%85%8B%0A%20%20%20%20%20%20%20%20x_list%3A%20ndarray%20%3D%20np.array(%5Binit%5D)%0A%20%20%20%20%20%20%20%20e_list%3A%20ndarray%20%3D%20np.array(%5B(init%5B2%5D**2%2Binit%5B3%5D**2)%2F2%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20-(init%5B0%5D**2%2Binit%5B1%5D**2)**(-1%2F2)%5D)%0A%20%20%20%20%20%20%20%20%23%20%E3%82%BD%E3%83%AB%E3%83%90%E3%83%BC%E5%AE%9F%E6%96%BD%0A%20%20%20%20%20%20%20%20for%20t%20in%20steps%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20%E3%83%AA%E3%83%BC%E3%83%97%E3%83%BB%E3%83%95%E3%83%AD%E3%83%83%E3%82%B0%E6%B3%95%0A%20%20%20%20%20%20%20%20%20%20%20%20x_next%3A%20ndarray%20%3D%20np.zeros(len(init))%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20x_next%5B0%5D%20%3D%20x_list%5B-1%2C0%5D%2Bdxdt%5B0%5D(x_list%5B-1%5D)*dt%2F2%0A%20%20%20%20%20%20%20%20%20%20%20%20x_next%5B1%5D%20%3D%20x_list%5B-1%2C1%5D%2Bdxdt%5B1%5D(x_list%5B-1%5D)*dt%2F2%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20x_next%5B2%5D%20%3D%20x_list%5B-1%2C2%5D%2Bdxdt%5B2%5D(x_next)*dt%0A%20%20%20%20%20%20%20%20%20%20%20%20x_next%5B3%5D%20%3D%20x_list%5B-1%2C3%5D%2Bdxdt%5B3%5D(x_next)*dt%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20x_next%5B0%5D%20%3D%20x_next%5B0%5D%2Bdxdt%5B0%5D(x_next)*dt%2F2%0A%20%20%20%20%20%20%20%20%20%20%20%20x_next%5B1%5D%20%3D%20x_next%5B1%5D%2Bdxdt%5B1%5D(x_next)*dt%2F2%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20%E7%B5%90%E6%9E%9C%E3%82%92%E8%BF%BD%E5%8A%A0%0A%20%20%20%20%20%20%20%20%20%20%20%20x_list%20%3D%20np.vstack((x_list%2Cx_next))%0A%20%20%20%20%20%20%20%20%20%20%20%20e_list%20%3D%20np.append(e_list%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(x_next%5B2%5D**2%2Bx_next%5B3%5D**2)%2F2-(x_next%5B0%5D**2%2Bx_next%5B1%5D**2)**(-1%2F2))%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20%23%20%E4%BD%8D%E7%BD%AE%E3%83%BB%E9%81%8B%E5%8B%95%E9%87%8F%E3%83%BB%E3%82%A8%E3%83%8D%E3%83%AB%E3%82%AE%E3%83%BC%E3%82%92%E6%88%BB%E3%82%8A%E5%80%A4%E3%81%A8%E3%81%97%E3%81%A6%E6%88%BB%E3%81%99%0A%20%20%20%20%20%20%20%20return%20np.vstack((x_list.T%2C%20e_list))%0A%0A%20%20%20%20return%20(leap_flog%2C)%0A%0A%0A%40app.cell%0Adef%20_(dxdt%3A%20%22List%5BCallable%5B%5Bndarray%5D%2C%20float%5D%5D%22%2C%20leap_flog%2C%20ndarray%2C%20plt)%3A%0A%20%20%20%20ans_5%3A%20ndarray%20%3D%20leap_flog(dxdt%2C%20%5B1%2C%200%2C%200%2C%201%5D%2C%20100)%0A%20%20%20%20plt.plot(ans_5%5B0%5D%2C%20ans_5%5B1%5D)%0A%20%20%20%20return%20(ans_5%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%E3%82%A8%E3%83%8D%E3%83%AB%E3%82%AE%E3%83%BC%E3%81%AE%E8%AA%A4%E5%B7%AE%E3%81%AF%E6%8C%AF%E5%8B%95%E3%80%82%E3%82%A8%E3%83%8D%E3%83%AB%E3%82%AE%E3%83%BC%E3%81%8C%E8%BF%91%E4%BC%BC%E7%9A%84%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%95%E3%82%8C%E3%82%8B%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(ans_5%3A%20%22ndarray%22%2C%20plt)%3A%0A%20%20%20%20plt.ticklabel_format(useOffset%3DFalse)%0A%20%20%20%20plt.plot(ans_5%5B4%5D)%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
f1fc46b64011eaaababc13b33d012a81