{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Accuracy test for ndarray-odeint"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## generate data for accuracy test"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[m\u001b[32m\u001b[1m Finished\u001b[m debug [unoptimized + debuginfo] target(s) in 0.0 secs\r\n",
"\u001b[m\u001b[32m\u001b[1m Running\u001b[m `target/debug/accuracy`\r\n"
]
}
],
"source": [
"! cargo run --bin accuracy"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## analysis"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"euler = pd.read_csv(\"euler.csv\").dropna().set_index(\"dt\")\n",
"heun = pd.read_csv(\"heun.csv\").dropna().set_index(\"dt\")\n",
"rk4 = pd.read_csv(\"rk4.csv\").dropna().set_index(\"dt\")"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f82bf1be2e8>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f82bf865400>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(euler, \"b+-\", label=\"Euler\")\n",
"plt.plot(heun, \"g+-\", label=\"Heun\")\n",
"plt.plot(rk4, \"r+-\", label=\"RK4\")\n",
"plt.plot(euler.index, 200*euler.index, \"b:\", label=r\"$\\propto dt^1$\")\n",
"plt.plot(heun.index, 1000*heun.index**2, \"g:\", label=r\"$\\propto dt^2$\")\n",
"plt.plot(rk4.index, 80000*rk4.index**4, \"r:\", label=r\"$\\propto dt^4$\")\n",
"plt.xscale(\"log\")\n",
"plt.yscale(\"log\")\n",
"plt.xlabel(\"dt\")\n",
"plt.ylabel(\"accuray (deviation from truth)\")\n",
"plt.axis(\"tight\")\n",
"plt.legend(loc=4, ncol=2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"(si) means semi-implicit scheme"
]
}
],
"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.6.0"
},
"toc": {
"colors": {
"hover_highlight": "#DAA520",
"running_highlight": "#FF0000",
"selected_highlight": "#FFD700"
},
"moveMenuLeft": true,
"nav_menu": {
"height": "66px",
"width": "252px"
},
"navigate_menu": true,
"number_sections": true,
"sideBar": true,
"threshold": 4,
"toc_cell": false,
"toc_section_display": "block",
"toc_window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 2
}