{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Install" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "To load \"drakma\":\n", " Load 1 ASDF system:\n", " drakma\n", "\n", "; Loading \"drakma\"\n", "\n", "To load \"maxima-asdf\":\n", " Load 1 ASDF system:\n", " maxima-asdf\n" ] }, { "data": { "text/plain": [ "(:MAXIMA-ASDF)" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "; Loading \"maxima-asdf\"\n", "\n" ] } ], "source": [ ":lisp (progn (ql:quickload :drakma)(ql:quickload :maxima-asdf))" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "install_github(\"YasuakiHonda\",\"euler-maclaurin-sum\",\"master\")$\n", "asdf_load_source(\"euler-maclaurin-sum\")$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Variable ems" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{5}$}\\sum_{n=N}^{M}{f\\left(n\\right)}=\\sum_{k=1}^{K-1}{\\frac{\\left(-1\\right)^{k+1}\\,B_{k+1}\\,\\left(\\left.\\frac{d^{k}}{d\\,x^{k}}\\,f\\left(x\\right)\\right|_{x=M}-\\left.\\frac{d^{k}}{d\\,x^{k}}\\,f\\left(x\\right)\\right|_{x=N}\\right)}{\\left(k+1\\right)!}}+\\frac{\\left(-1\\right)^{K+1}\\,\\int_{N}^{M}{\\overline{B}_{K}\\left(x\\right)\\,\\left(\\frac{d^{K}}{d\\,x^{K}}\\,f\\left(x\\right)\\right)\\;dx}}{K!}+\\int_{N}^{M}{f\\left(x\\right)\\;dx}+\\frac{f\\left(N\\right)}{2}+\\frac{f\\left(M\\right)}{2}\\]" ], "text/plain": [ " M\n", " ====\n", " \\\n", "(%o5) > f(n) = \n", " /\n", " ====\n", " n = N\n", " ! !\n", " k ! k !\n", " k + 1 d ! d !\n", " (- 1) bern(k + 1) (--- (f(x))! - --- (f(x))! )\n", "K - 1 k ! k !\n", "==== dx ! dx !\n", "\\ !x = M !x = N\n", " > ------------------------------------------------------------\n", "/ (k + 1)!\n", "====\n", "k = 1\n", " M\n", " / K\n", " K + 1 [ d\n", " (- 1) I periodic_bernpoly(x, K) (--- (f(x))) dx\n", " ] K M\n", " / dx /\n", " N [ f(N)\n", " + ----------------------------------------------------- + I f(x) dx + ----\n", " K! ] 2\n", " /\n", " N\n", " f(M)\n", " + ----\n", " 2" ], "text/x-maxima": [ "'sum(f(n),n,N,M) = 'sum(((-1)^(k+1)*bern(k+1)\n", " *('at('diff(f(x),x,k),x = M)\n", " -'at('diff(f(x),x,k),x = N)))\n", " /(k+1)!,k,1,K-1)\n", " +((-1)^(K+1)*'integrate(\n", " periodic_bernpoly(x,K)*'diff(f(x),x,K),x,N,M))\n", " /K!+'integrate(f(x),x,N,M)+f(N)/2+f(M)/2" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ems;" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Specifying definition of f(n)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Is N - 1 positive, negative or zero?\n", "pos;\n", "\n", "Is N - M + 1 positive, negative or zero?\n", "neg;\n" ] }, { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{8}$}\\sum_{n=N}^{M}{\\log n}=\\sum_{k=1}^{K-1}{\\frac{\\left(-1\\right)^{k+1}\\,B_{k+1}\\,\\left(\\left.\\frac{d^{k}}{d\\,x^{k}}\\,\\log x\\right|_{x=M}-\\left.\\frac{d^{k}}{d\\,x^{k}}\\,\\log x\\right|_{x=N}\\right)}{\\left(k+1\\right)!}}+\\frac{\\left(-1\\right)^{K+1}\\,\\int_{N}^{M}{\\overline{B}_{K}\\left(x\\right)\\,\\left(\\frac{d^{K}}{d\\,x^{K}}\\,\\log x\\right)\\;dx}}{K!}-N\\,\\log N+\\frac{\\log N}{2}+N+M\\,\\log M+\\frac{\\log M}{2}-M\\]" ], "text/plain": [ " M\n", " ====\n", " \\\n", "(%o8) > log(n) = \n", " /\n", " ====\n", " n = N\n", " ! !\n", " k ! k !\n", " k + 1 d ! d !\n", " (- 1) bern(k + 1) (--- (log(x))! - --- (log(x))! )\n", "K - 1 k ! k !\n", "==== dx ! dx !\n", "\\ !x = M !x = N\n", " > ----------------------------------------------------------------\n", "/ (k + 1)!\n", "====\n", "k = 1\n", " M\n", " / K\n", " K + 1 [ d\n", " (- 1) I periodic_bernpoly(x, K) (--- (log(x))) dx\n", " ] K\n", " / dx\n", " N log(N)\n", " + ------------------------------------------------------- - N log(N) + ------\n", " K! 2\n", " log(M)\n", " + N + M log(M) + ------ - M\n", " 2" ], "text/x-maxima": [ "'sum(log(n),n,N,M) = 'sum(((-1)^(k+1)*bern(k+1)\n", " *('at('diff(log(x),x,k),x = M)\n", " -'at('diff(log(x),x,k),x = N)))\n", " /(k+1)!,k,1,K-1)\n", " +((-1)^(K+1)*'integrate(\n", " periodic_bernpoly(x,K)*'diff(log(x),x,K),x,N,\n", " M))\n", " /K!-N*log(N)+log(N)/2+N+M*log(M)+log(M)/2-M" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "ems,f(x):=log(x),nouns;" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Specifying values of free variables N,M,K" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Is M - 1 positive, negative or zero?\n", "pos;\n" ] }, { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{27}$}\\sum_{n=1}^{M}{\\log n}=\\frac{\\int_{1}^{M}{\\frac{\\overline{B}_{5}\\left(x\\right)}{x^5}\\;dx}}{5}+M\\,\\log M+\\frac{\\log M}{2}-M+\\frac{\\frac{1}{M}-1}{12}-\\frac{\\frac{2}{M^3}-2}{720}+1\\]" ], "text/plain": [ " M\n", " /\n", " [ periodic_bernpoly(x, 5)\n", " I ----------------------- dx\n", " M ] 5\n", " ==== / x\n", " \\ 1 log(M)\n", "(%o27) > log(n) = ----------------------------- + M log(M) + ------ - M\n", " / 5 2\n", " ====\n", " n = 1\n", " 2\n", " 1 -- - 2\n", " - - 1 3\n", " M M\n", " + ----- - ------ + 1\n", " 12 720" ], "text/x-maxima": [ "'sum(log(n),n,1,M) = ('integrate(periodic_bernpoly(x,5)/x^5,x,1,M))/5\n", " +M*log(M)+log(M)/2-M+(1/M-1)/12-(2/M^3-2)/720+1" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "LOGSUM:ems,f(x):=log(x),N:1,K:5,nouns;" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Give definition for periodic Bernulli polinomial" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{28}$}\\left[ \\overline{B}_{n}\\left(x\\right):={\\it bernpoly}\\left(x-\\left \\lfloor x \\right \\rfloor , n\\right) \\right] \\]" ], "text/plain": [ "(%o28) [periodic_bernpoly(x, n) := bernpoly(x - floor(x), n)]" ], "text/x-maxima": [ "[periodic_bernpoly(x,n):=bernpoly(x-floor(x),n)]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def_pbp();" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{31}$}\\mathbf{done}\\]" ], "text/plain": [ "(%o31) done" ], "text/x-maxima": [ "done" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "undef_pbp();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Transform remainder term into sum of integration of Bernulli polinomial" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{60}$}\\int_{a}^{b}{\\frac{\\overline{B}_{n}\\left(x\\right)}{t\\left(x\\right)}\\;dx}\\]" ], "text/plain": [ " b\n", " /\n", " [ periodic_bernpoly(x, n)\n", "(%o60) I ----------------------- dx\n", " ] t(x)\n", " /\n", " a" ], "text/x-maxima": [ "'integrate(periodic_bernpoly(x,n)/t(x),x,a,b)" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(periodic_bernpoly(x,n)/t(x),x,a,b);" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "\\[\\tag{${\\it \\%o}_{59}$}\\sum_{k=a}^{b-1}{\\int_{k}^{k+1}{\\frac{{\\it bernpoly}\\left(x-k , n\\right)}{t\\left(x\\right)}\\;dx}}\\]" ], "text/plain": [ " b - 1 k + 1\n", " ==== /\n", " \\ [ bernpoly(x - k, n)\n", "(%o59) > I ------------------ dx\n", " / ] t(x)\n", " ==== /\n", " k = a k" ], "text/x-maxima": [ "'sum('integrate(bernpoly(x-k,n)/t(x),x,k,k+1),k,a,b-1)" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "apply1(%,emsRemInt);" ] } ], "metadata": { "kernelspec": { "display_name": "Maxima", "language": "maxima", "name": "maxima" }, "language_info": { "codemirror_mode": "maxima", "file_extension": ".mac", "mimetype": "text/x-maxima", "name": "maxima", "pygments_lexer": "maxima", "version": "5.42.1" } }, "nbformat": 4, "nbformat_minor": 4 }