dissertation_work/Dissertation_unzipped/sharktooth_functions_multid...

261 lines
323 KiB
Plaintext
Raw Normal View History

2024-02-17 01:32:15 +00:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Sharktooth functions in 2-dimensions"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def max_conv_operator(samples, f_samples, input, L):\n",
" return np.max(f_samples - L * np.linalg.norm(input - samples, ord=1))"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'f' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m/Users/shakilrafi/Library/Mobile Documents/com~apple~CloudDocs/Dissertation/sharktooth_functions_multidimensional.ipynb Cell 4\u001b[0m line \u001b[0;36m4\n\u001b[1;32m <a href='vscode-notebook-cell:/Users/shakilrafi/Library/Mobile%20Documents/com~apple~CloudDocs/Dissertation/sharktooth_functions_multidimensional.ipynb#W3sZmlsZQ%3D%3D?line=1'>2</a>\u001b[0m y \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39mlinspace(\u001b[39m0\u001b[39m,\u001b[39m1\u001b[39m,\u001b[39m100\u001b[39m)\n\u001b[1;32m <a href='vscode-notebook-cell:/Users/shakilrafi/Library/Mobile%20Documents/com~apple~CloudDocs/Dissertation/sharktooth_functions_multidimensional.ipynb#W3sZmlsZQ%3D%3D?line=2'>3</a>\u001b[0m samples \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39mrandom\u001b[39m.\u001b[39muniform([\u001b[39m0\u001b[39m,\u001b[39m0\u001b[39m], [\u001b[39m1\u001b[39m,\u001b[39m1\u001b[39m],size\u001b[39m=\u001b[39m(\u001b[39m100\u001b[39m,\u001b[39m2\u001b[39m))\n\u001b[0;32m----> <a href='vscode-notebook-cell:/Users/shakilrafi/Library/Mobile%20Documents/com~apple~CloudDocs/Dissertation/sharktooth_functions_multidimensional.ipynb#W3sZmlsZQ%3D%3D?line=3'>4</a>\u001b[0m f_samples \u001b[39m=\u001b[39m f(samples[:,\u001b[39m0\u001b[39m],samples[:,\u001b[39m1\u001b[39m])\n\u001b[1;32m <a href='vscode-notebook-cell:/Users/shakilrafi/Library/Mobile%20Documents/com~apple~CloudDocs/Dissertation/sharktooth_functions_multidimensional.ipynb#W3sZmlsZQ%3D%3D?line=4'>5</a>\u001b[0m points \u001b[39m=\u001b[39m []\n\u001b[1;32m <a href='vscode-notebook-cell:/Users/shakilrafi/Library/Mobile%20Documents/com~apple~CloudDocs/Dissertation/sharktooth_functions_multidimensional.ipynb#W3sZmlsZQ%3D%3D?line=5'>6</a>\u001b[0m \u001b[39mfor\u001b[39;00m i \u001b[39min\u001b[39;00m \u001b[39mrange\u001b[39m(\u001b[39mlen\u001b[39m(x)):\n",
"\u001b[0;31mNameError\u001b[0m: name 'f' is not defined"
]
}
],
"source": [
"x = np.linspace(0,1,100)\n",
"y = np.linspace(0,1,100)\n",
"samples = np.random.uniform([0,0], [1,1],size=(100,2))\n",
"f_samples = f(samples[:,0],samples[:,1])\n",
"points = []\n",
"for i in range(len(x)):\n",
" for j in range(len(y)):\n",
" points.append([x[i],y[j],max_conv_operator(samples, f_samples,[x[i],y[j]],L)])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<mpl_toolkits.mplot3d.art3d.Path3DCollection at 0x11b352ad0>"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = plt.figure()\n",
"ax = fig.add_subplot(111,projection='3d') # Create a 3D axes object\n",
"fig = plt.figure()\n",
" # Create a 3D axes object\n",
"ax.scatter(points[0], points[1], points[2], c='b', marker='o')\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"samples = np.random.uniform([0,0], [1,1],size=(10,2))\n",
"f_samples = f(samples[:,0],samples[:,1])\n",
"x = np.linspace(0,1,100)\n",
"y = np.linspace(0,1,100)\n",
"X, Y = np.meshgrid(x,y)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-43.00870965517393"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"max_conv_operator(samples, f_samples, [4,5],1)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<mpl_toolkits.mplot3d.art3d.Poly3DCollection at 0x11b09df90>"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = plt.figure()\n",
"ax = fig.add_subplot(111, projection='3d')\n",
"ax.plot_surface(X,Y,X**2+Y**2, cmap = \"viridis\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"def sharktooth_function(function, mins, maxes, number_of_sharkteeth, L):\n",
" samples = np.random.uniform(mins, maxes,size=(number_of_sharkteeth,len(mins)))\n",
" f_samples = f(samples[:,0],samples[:,1])\n",
" X_cords = np.linspace(mins[0],maxes[0],100)\n",
" Y_cords = np.linspace(mins[1],maxes[1],100)\n",
" approximate_z = []\n",
" error = []\n",
" for i in range(len(X_cords)):\n",
" for j in range(len(Y_cords)):\n",
" approximate_z = max_conv_operator(samples, f_samples, [X_cords[i],Y_cords[j]],L)\n",
" error.append(np.abs(f(X_cords[i],Y_cords[j]) - approximate_z))\n",
" return np.max(error)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'Sup of deviance from f(x) as the number of teeth increase and as we get closer to L')"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"L = [0.1,0.5,0.75,1]\n",
"plt.figure(figsize=(17,5))\n",
"for L in L:\n",
" errors = []\n",
" for i in range(1,20):\n",
" errors.append(sharktooth_function(f,[0,0],[1,0],i,L))\n",
" plt.plot(errors, label =L)\n",
"\n",
"plt.xlabel(\"Number of teeth\")\n",
"plt.ylabel(r\"$\\sup_{x\\in x_i} | f(x)- \\mathfrak{R}_{\\mathfrak{r}} ( \\mathsf{P})|$\")\n",
"plt.legend()\n",
"plt.title(\"Sup of deviance from f(x) as the number of teeth increase and as we get closer to L\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "base",
"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.11.4"
},
"orig_nbformat": 4
},
"nbformat": 4,
"nbformat_minor": 2
}