{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ " #Script to illustrate how to compute a Fourier cosine series for a function f(x) defined on an interval 0 <= x <= L.\n", "\n", "#Define function f(x)\n", "var('f x');\n", "f = function('f')(x)\n", "f(x) = x - x^2/3;" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "#Interval length L and number of terms in Fourier cosine expansion\n", "L = 2;\n", "n = 5;" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "#Set up symbolic array to hold Fourier coefficients\n", "a = vector(SR, [0..n]);" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "#Loop k = 0 to k = n, compute Fourier cosine coefficients of f(x)\n", "for k in range(0,n+1):\n", " a[k] = 2/L*integral(f(x)*cos(k*pi*x/L),x,0,L);" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "#Form the Fourier cosine approximation\n", "var('j');\n", "fcos = a[0]/2 + sum(a[j]*cos(j*pi*x/L) for j in (1..n));" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-8/75*cos(5/2*pi*x)/pi^2 - 1/3*cos(2*pi*x)/pi^2 - 8/27*cos(3/2*pi*x)/pi^2 - 4/3*cos(pi*x)/pi^2 - 8/3*cos(1/2*pi*x)/pi^2 + 5/9\n" ] } ], "source": [ "#Display result\n", "print(fcos)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 2 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Plot the function f(x) and Fourier cosine approximation\n", "plt1 = plot(f(x),(x,0,L),color='blue');\n", "plt2 = plot(fcos,(x,0,L),color='red');\n", "show(plt1+plt2)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "SageMath 9.2", "language": "sage", "name": "sagemath" }, "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.7.7" } }, "nbformat": 4, "nbformat_minor": 4 }