Skip to content

Instantly share code, notes, and snippets.

@AtsushiSakai
Last active June 29, 2017 21:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AtsushiSakai/849cc5f9e66d359560885663556c9e2a to your computer and use it in GitHub Desktop.
Save AtsushiSakai/849cc5f9e66d359560885663556c9e2a to your computer and use it in GitHub Desktop.
Numerical Integration Sample
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"toc": "true"
},
"source": [
"# Table of Contents\n",
" <p>"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np\n",
"from matplotlib import pyplot as plt\n",
"import pandas as pd\n",
"import math\n",
"%matplotlib inline "
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x1107fbf60>]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10d489940>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x = np.arange(0,math.pi*2.0,0.1)\n",
"y = [math.sin(i) for i in x]\n",
"\n",
"plt.plot(x,y)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x11166cbe0>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11155cc88>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def df(tx):\n",
" return math.cos(tx)\n",
"\n",
"def euler_integration(dx):\n",
" tx = 0.0\n",
" ty = 0.0\n",
" xi,yi = [0.0],[0.0]\n",
" while tx<=math.pi*2.0:\n",
" dydx = df(tx)\n",
" tx += dx\n",
" ty += dydx * dx\n",
" xi.append(tx)\n",
" yi.append(ty)\n",
" return xi, yi\n",
"\n",
"xi1,yi1=euler_integration(0.1)\n",
"xi2,yi2=euler_integration(1.0)\n",
"\n",
"plt.plot(x,y,label=\"True\")\n",
"plt.plot(xi1,yi1,\"xb\",label=\"dx=0.1\")\n",
"plt.plot(xi2,yi2,\"or\",label=\"dx=1.0\")\n",
"plt.grid(True)\n",
"plt.legend()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x11127fbe0>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10b3ffb70>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def df(x):\n",
" return math.cos(x)\n",
"\n",
"def runge_kutta(x0, y0, dx, endx):\n",
" x = x0\n",
" y = y0\n",
" xi = [x0]\n",
" yi = [x0]\n",
" while x <= endx:\n",
" s1 = df(x)\n",
" s2 = df(x + dx/2)\n",
" s3 = df(x + dx/2)\n",
" s4 = df(x + dx)\n",
" x += dx\n",
" y += (s1 + 2*s2 + 2*s3 + s4) * dx / 6\n",
" xi.append(x)\n",
" yi.append(y)\n",
" return xi, yi\n",
"\n",
"xr1,yr1=runge_kutta(0.0,0.0,1.0,math.pi*2.0)\n",
"xr2,yr2=runge_kutta(0.0,0.0,0.1,math.pi*2.0)\n",
"\n",
"\n",
"plt.plot(x,y,label=\"True\")\n",
"plt.plot(xr1,yr1,\"or\",label=\"dx=1.0\")\n",
"plt.plot(xr2,yr2,\"xb\",label=\"dx=0.1\")\n",
"plt.grid(True)\n",
"plt.legend()\n"
]
}
],
"metadata": {
"anaconda-cloud": {},
"hide_input": false,
"kernelspec": {
"display_name": "Python [Root]",
"language": "python",
"name": "Python [Root]"
},
"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.5.1"
},
"toc": {
"toc_cell": true,
"toc_number_sections": true,
"toc_threshold": 6,
"toc_window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment