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%20ODE%20%E3%82%BD%E3%83%AB%E3%83%90%E3%83%BC%E3%81%AE%E5%9F%BA%E6%9C%AC%E4%BE%8B%0A%20%20%20%20legacy%2Fsimulation%2FODEtest.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%AA%BF%E5%92%8C%E6%8C%AF%E5%8B%95%E5%AD%90%E3%82%92%20SciPy%20%E3%81%AE%20%60ode%60%20%E3%81%A7%E8%A7%A3%E3%81%8D%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%5BQiita%20%E3%81%AE%E8%A7%A3%E8%AA%AC%E8%A8%98%E4%BA%8B%5D(https%3A%2F%2Fqiita.com%2Ftobira-code%2Fitems%2Fd76ed91a88f112b4a474)%E3%82%92%E5%8F%82%E8%80%83%E3%81%AB%E3%81%97%E3%81%9F%20ODE%20%E3%81%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%83%8E%E3%83%BC%E3%83%88%E3%80%82%0A%20%20%20%20%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB%E5%BF%85%E8%A6%81%E3%81%AA%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%82%92%20import%20%E3%81%99%E3%82%8B.%0A%20%20%20%20-%20numpy%20%E3%81%A7%E5%A4%9A%E6%AC%A1%E5%85%83%E9%85%8D%E5%88%97%E3%83%87%E3%83%BC%E3%82%BF%E5%87%A6%E7%90%86%0A%20%20%20%20-%20matplotlib%20%E3%81%A7%E3%83%87%E3%83%BC%E3%82%BF%E5%8F%AF%E8%A6%96%E5%8C%96%0A%20%20%20%20-%20scipy.integrate%20%E3%81%A7%E7%A9%8D%E5%88%86%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%20import%20matplotlib.pyplot%20as%20plt%0A%20%20%20%20import%20numpy%20as%20np%0A%20%20%20%20from%20scipy.integrate%20import%20ode%0A%0A%20%20%20%20return%20np%2C%20ode%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%E5%B8%B8%E5%BE%AE%E5%88%86%E6%96%B9%E7%A8%8B%E5%BC%8F%20%24y''%3D-y%24%20%E3%82%92%E8%A7%A3%E3%81%8F%E3%81%9F%E3%82%81%E3%81%AB%E4%BB%A5%E4%B8%8B%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E9%80%A3%E7%AB%8B1%E9%9A%8E%E5%BE%AE%E5%88%86%E6%96%B9%E7%A8%8B%E5%BC%8F%E3%81%AB%E5%88%86%E8%A7%A3%E3%81%99%E3%82%8B.%0A%0A%20%20%20%20%24%24%0A%20%20%20%20%5Cbegin%7Baligned%7D%0A%20%20%20%20y'%26%3Dz%20%5C%5C%0A%20%20%20%20z'%26%3D-y%0A%20%20%20%20%5Cend%7Baligned%7D%0A%20%20%20%20%24%24%0A%0A%20%20%20%20%E3%82%B3%E3%83%BC%E3%83%89%E4%B8%8A%E3%81%AF%20%24v%5Cequiv(y%2Cz)%24%20%E3%81%A8%E3%81%99%E3%82%8B.%0A%20%20%20%20%E5%B0%8E%E9%96%A2%E6%95%B0%E3%82%92%20%24v'%5Cequiv%20f(t%2Cv)%24%20%E3%81%A8%E3%81%97%E3%80%81%E5%88%9D%E6%9C%9F%E6%9D%A1%E4%BB%B6%E3%82%92%20%24v(t%3D0)%5Cequiv%20v_0%20%5Cequiv%20(1.0%2C%200.0)%24%20%E3%81%A8%E3%81%99%E3%82%8B%E3%81%A8%E4%BB%A5%E4%B8%8B%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%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_()%3A%0A%20%20%20%20def%20f(t%2C%20v)%3A%20%23%20t%2C%20y%3Av%5B0%5D%2C%20y'%3Dz%3Av%5B1%5D%0A%20%20%20%20%20%20%20%20return%20%5Bv%5B1%5D%2C%20-v%5B0%5D%5D%20%23%20y'%3Areturn%5B0%5D%20y''%3Dz'%3Areturn%5B1%5D%0A%0A%20%20%20%20v0%20%3D%20%5B1.0%2C%200.0%5D%20%23%20y0%2C%20y'0%3Dz0%0A%20%20%20%20return%20f%2C%20v0%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%20Nonstiff%20%E3%81%AA%E5%BE%AE%E5%88%86%E6%96%B9%E7%A8%8B%E5%BC%8F%E3%82%92%E8%A7%A3%E3%81%8F%E3%81%9F%E3%82%81%E3%81%AE%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E3%80%8C8(5%2C3)%E6%AC%A1%E3%81%AE%20Runge-Kutta%20%E6%B3%95(Dorman-Prince%20%E6%B3%95)%E3%80%8D%E3%81%AB%E3%82%88%E3%82%8B%E9%96%A2%E6%95%B0%20dop853%20%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B%E3%80%82%0A%0A%20%20%20%20%E8%A9%B3%E7%B4%B0%E3%81%AF%5B%E3%81%93%E3%81%A1%E3%82%89%5D(https%3A%2F%2Forg-technology.com%2Fposts%2Fordinary-differential-equations.html).%0A%20%20%20%20%E5%85%AC%E5%BC%8F%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AF%5B%E3%81%93%E3%81%A1%E3%82%89%5D(https%3A%2F%2Fdocs.scipy.org%2Fdoc%2Fscipy%2Freference%2Fgenerated%2Fscipy.integrate.ode.html).%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(f%2C%20ode%2C%20v0)%3A%0A%20%20%20%20solver%20%3D%20ode(f)%0A%20%20%20%20solver.set_integrator(name%3D%22dop853%22)%0A%20%20%20%20solver.set_initial_value(v0)%0A%20%20%20%20return%20(solver%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%E7%A9%8D%E5%88%86%E5%8C%BA%E9%96%93%20%240%3Ct%3Ctw%5Cequiv10%5Ctimes(2%5Cpi)%24%2C%E5%B7%AE%E5%88%86%E9%87%8F%20%24%5CDelta%20t%20%3D%20tw%2F1000%24%20%E3%81%A7%E8%A8%88%E7%AE%97%E3%82%92%E5%AE%9F%E8%A1%8C.%0A%0A%20%20%20%20%24ts%24%20%E3%81%AB%E6%99%82%E5%88%BB%E3%83%87%E3%83%BC%E3%82%BF%2C%20%24ys%24%20%E3%81%AB%E8%A8%88%E7%AE%97%E7%B5%90%E6%9E%9C%E3%82%92%E6%A0%BC%E7%B4%8D.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(np%2C%20solver)%3A%0A%20%20%20%20tw%20%3D%2010.0*2.0*np.pi%0A%20%20%20%20dt%20%3D%20tw%20%2F%201000%0A%20%20%20%20ts%20%3D%20%5B%5D%0A%20%20%20%20ys%20%3D%20%5B%5D%0A%20%20%20%20while%20solver.t%20%3C%20tw%3A%0A%20%20%20%20%20%20%20%20solver.integrate(solver.t%2Bdt)%0A%20%20%20%20%20%20%20%20ts%20%2B%3D%20%5Bsolver.t%5D%0A%20%20%20%20%20%20%20%20ys%20%2B%3D%20%5Bsolver.y%5B0%5D%5D%0A%20%20%20%20return%20ts%2C%20ys%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%E6%9C%80%E5%BE%8C%E3%81%AB%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E3%83%97%E3%83%AD%E3%83%83%E3%83%88%E3%82%92%E8%A1%8C%E3%81%84%2C%20%E8%A7%A3%E6%9E%90%E8%A7%A3%20%24%5Ccos(t)%24%20%E3%81%A8%E3%81%AE%E5%B7%AE%E3%81%8B%E3%82%89%E8%AA%A4%E5%B7%AE%E3%81%AE%E8%93%84%E7%A9%8D%E3%82%92%E8%A8%88%E7%AE%97%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_(np%2C%20plt%2C%20ts%2C%20ys)%3A%0A%20%20%20%20plt.figure(0)%0A%20%20%20%20plt.plot(ts%2C%20ys)%0A%0A%20%20%20%20plt.figure(1)%0A%20%20%20%20plt.plot(ts%2C%20np.cos(ts)-ys)%0A%0A%20%20%20%20plt.show()%0A%20%20%20%20print(np.max(np.cos(ts)-ys))%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
3d956bd3ebb2b80363a75461bfdc082d