dissertation_work/Programming/Python files/Some numerical method.ipynb

89 lines
25 KiB
Plaintext
Raw Normal View History

2024-02-16 00:55:42 +00:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"t0 = 0\n",
"tf = 1\n",
"N = 100\n",
"\n",
"#Every variable is the same as the one given in Forward_Euler.py\n",
"\n",
"t = np.linspace(t0,tf,N)\n",
"y = np.zeros(N)\n",
"z = np.zeros(N)\n",
"w = np.zeros(N)\n",
"h = (tf-t0)/N\n",
"\n",
"y[0] = 1\n",
"y[1] = y[0] + h*y[0]\n",
"\n",
"for i in range (0,N-2):\n",
" y[i+2] = y[i+1] + h*(1.5*y[i+1]+0.5*y[i])\n",
"\n",
"w = np.exp(t) #we vectorized the subtraction instead of iterating through w\n",
"z = abs(y-w) #same here\n",
"\n",
"plt.plot(t,y, label = \"y - Numerical Method method\") #very simple plot of y,z,w\n",
"plt.plot(t,w,label = \"w - Actual\")\n",
"plt.plot(t,z,label = \"z - Error\")\n",
"plt.title(\"Method with N=%d\"%N)\n",
"plt.legend()\n",
"plt.show()\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"interpreter": {
"hash": "b0fa6594d8f4cbf19f97940f81e996739fb7646882a419484c72d19e05852a7e"
},
"kernelspec": {
"display_name": "Python 3.9.10 64-bit",
"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.9.10"
},
"orig_nbformat": 4
},
"nbformat": 4,
"nbformat_minor": 2
}