{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Recitation 2: Fourier series, questions 1 and 2 " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Question 1" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "T = 5\n", "h=2\n", "a = 1\n", "\n", "numPoints = 101\n", "\n", "x = np.linspace(-T/2, T/2,numPoints)\n", "\n", "true_fun1 = np.zeros(np.shape(x))\n", "\n", "true_fun1 = (h/a)*(x+a)\n", "true_fun1[x<-a] = 0\n", "true_fun1[x>=0] = 0\n", "\n", "true_fun2 = np.zeros(np.shape(x))\n", "\n", "true_fun2 = (-h/a)*(x-a)\n", "true_fun2[x>a] = 0\n", "true_fun2[x<=0] = 0\n", "\n", "true_fun = true_fun1 + true_fun2\n", "true_fun[int((numPoints-1)/2)] = h\n", "\n", "\n", "plt.plot(x, true_fun)\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": 97, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "Fourier_series_2 = np.ones(np.shape(x))*(a*h/T)\n", "\n", "for n in np.arange(1,2):\n", "\n", " Fourier_series_2+= (2/T)*(2*h/a)*(T/(2*np.pi*n))**2 * (1-np.cos((2*np.pi * a *n)/T))\\\n", " * np.cos((2*np.pi*n*x)/T)\n", "\n", " \n", "Fourier_series_5 = np.ones(np.shape(x))*(a*h/T)\n", "\n", "for n in np.arange(1,5):\n", "\n", " Fourier_series_5+= (2/T)*(2*h/a)*(T/(2*np.pi*n))**2 * (1-np.cos((2*np.pi * a *n)/T))\\\n", " * np.cos((2*np.pi*n*x)/T)\n", "\n", "\n", "Fourier_series_10 = np.ones(np.shape(x))*(a*h/T)\n", "\n", "for n in np.arange(1,10):\n", "\n", " Fourier_series_10+= (2/T)*(2*h/a)*(T/(2*np.pi*n))**2 * (1-np.cos((2*np.pi * a *n)/T))\\\n", " * np.cos((2*np.pi*n*x)/T)\n", " \n", "Fourier_series_100 = np.ones(np.shape(x))*(a*h/T)\n", "\n", "for n in np.arange(1,100):\n", "\n", " Fourier_series_100+= (2/T)*(2*h/a)*(T/(2*np.pi*n))**2 * (1-np.cos((2*np.pi * a *n)/T))\\\n", " * np.cos((2*np.pi*n*x)/T)\n", "\n", "\n", "\n", " \n", "ax= plt.figure(facecolor=\"w\", figsize=(6,4))\n", "\n", "plt.plot(x, Fourier_series_5, label='first 5 terms')\n", "plt.plot(x, Fourier_series_10, label='first 10 terms')\n", "plt.plot(x, Fourier_series_100, label='first 100 terms')\n", "plt.plot(x, true_fun, 'k-.', alpha=.8, label='original function')\n", "plt.title('Fourier cosine series', fontsize=13)\n", "plt.legend(fontsize=13)\n", "\n", "\n", "plt.yticks(fontsize=13)\n", "plt.xticks(fontsize=13)\n", "plt.savefig('FourierSeries1.png', dpi = 300)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Question 2" ] }, { "cell_type": "code", "execution_count": 121, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "M = 1\n", "T=2\n", "numPoints = 101\n", "\n", "x = np.linspace(-T, T,numPoints)\n", "\n", "true_fun = -M*np.ones(np.shape(x))\n", "true_fun[x" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "T=2\n", "x = np.linspace(-T, T,numPoints)\n", "\n", "Fourier_series_2 = np.zeros(np.shape(x))*(a*h/T)\n", "\n", "for n in np.arange(1,2):\n", "\n", " Fourier_series_2+= (2*M/np.pi/n) * (1-np.cos(2*np.pi*n/T)) * np.sin(2*np.pi*n*x/T) \n", "\n", " \n", "Fourier_series_5 = np.zeros(np.shape(x))*(a*h/T)\n", "\n", "for n in np.arange(1,5):\n", "\n", " Fourier_series_5+= (2*M/np.pi/n) * (1-np.cos(2*np.pi*n/T)) * np.sin(2*np.pi*n*x/T) \n", "\n", "\n", "\n", "Fourier_series_10 = np.zeros(np.shape(x))*(a*h/T)\n", "\n", "for n in np.arange(1,10):\n", "\n", " Fourier_series_10+= (2*M/np.pi/n) * (1-np.cos(2*np.pi*n/T)) * np.sin(2*np.pi*n*x/T) \n", "\n", " \n", "Fourier_series_100 = np.zeros(np.shape(x))*(a*h/T)\n", "\n", "for n in np.arange(1,100):\n", "\n", " Fourier_series_100+= (2*M/np.pi/n) * (1-np.cos(2*np.pi*n/T)) * np.sin(2*np.pi*n*x/T) \n", "\n", " \n", "ax= plt.figure(facecolor=\"w\", figsize=(6,4))\n", "\n", "plt.plot(x, Fourier_series_5, label='first 5 terms')\n", "plt.plot(x, Fourier_series_10, label='first 10 terms')\n", "plt.plot(x, Fourier_series_100, label='first 100 terms')\n", "plt.plot(x, true_fun, 'k-.', alpha=.8, label='original function')\n", "plt.title('Complex Fourier series (sine in this case)', fontsize=13)\n", "plt.legend(fontsize=13)\n", "\n", "\n", "plt.yticks(fontsize=13)\n", "plt.xticks(fontsize=13)\n", "plt.savefig('FourierSeries1.png', dpi = 300)\n" ] } ], "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.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }