{"id":1140,"date":"2014-12-15T12:00:01","date_gmt":"2014-12-15T17:00:01","guid":{"rendered":"https:\/\/blogs.mathworks.com\/cleve\/?p=1140"},"modified":"2014-12-15T16:11:25","modified_gmt":"2014-12-15T21:11:25","slug":"jahnke-and-emde-revisited","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/cleve\/2014\/12\/15\/jahnke-and-emde-revisited\/","title":{"rendered":"Jahnke and Emde, Revisited"},"content":{"rendered":"<div class=\"content\"><!--introduction--><p>An incredible book, published in several editions from 1909 to 1933, by German mathematicians Eugene Jahnke and Fritz Emde, contains definitions and formulas for mathematical functions, hand-calculated tables of function values, and meticulous hand-drawn 2- and 3-dimensional graphs. An English edition was published by Dover in 1945.<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"https:\/\/blogs.mathworks.com\/images\/cleve\/jahnke_and_emde_cover.jpg\" alt=\"\"> <\/p><!--\/introduction--><h3>Contents<\/h3><div><ul><li><a href=\"#f7368784-ca63-4868-87b5-434930738a37\">Jahnke and Emde Gamma Function<\/a><\/li><li><a href=\"#c20b0623-1dcb-444f-8393-56750efa867d\">MATLAB Gamma Function<\/a><\/li><li><a href=\"#56b83668-ad59-4956-9c61-ea581d1f8eec\">Jahnke and Emde Bessel Function<\/a><\/li><li><a href=\"#92b20bca-1fe3-4ee7-948b-a6f702ef8b32\">MATLAB Bessel Function<\/a><\/li><li><a href=\"#f203d5b4-be42-4ea2-a1c9-397023fea76b\">Reference<\/a><\/li><\/ul><\/div><h4>Jahnke and Emde Gamma Function<a name=\"f7368784-ca63-4868-87b5-434930738a37\"><\/a><\/h4><p>I will include only two of their illustrations in this blog. Here is one of their graphs of the gamma function in the complex plane. The surface is the magnitude of the function, with its poles at the integers on the negative real axis.  The contour lines are the modulus and phase.  I can't imagine how they made this plot in 1933.<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"https:\/\/blogs.mathworks.com\/images\/cleve\/gammabw.jpeg\" alt=\"\"> <\/p><h4>MATLAB Gamma Function<a name=\"c20b0623-1dcb-444f-8393-56750efa867d\"><\/a><\/h4><p>Here is my attempt to have MATLAB recreate the Jahnke and Emde plot. It is only partially successful.  I do have little ellipses to cut off the spikes -- that was tricky.  But I haven't begun to label the contours, or shade the edge faces.<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"https:\/\/blogs.mathworks.com\/images\/cleve\/gamma3d.jpeg\" alt=\"\"> <\/p><h4>Jahnke and Emde Bessel Function<a name=\"56b83668-ad59-4956-9c61-ea581d1f8eec\"><\/a><\/h4><p>I love this plot.  It is the complex-valued Bessel function of order zero, also known as the Hankel function.  There is a pole, a zero, and a saddle point.  Again, imagine doing this by hand.  Or, having some grad student do it.<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"https:\/\/blogs.mathworks.com\/images\/cleve\/hankelbw.jpeg\" alt=\"\"> <\/p><h4>MATLAB Bessel Function<a name=\"92b20bca-1fe3-4ee7-948b-a6f702ef8b32\"><\/a><\/h4><p>Here we can use color, and our new <tt>parula<\/tt> color map, in place of 3d. But we can't get the nice feel of the hand drawn lettering.<\/p><pre class=\"codeinput\">   [X,Y] = meshgrid(-4:1\/128:2,-1.5:1\/128:1.5);\r\n   H = besselh(0,X+i*Y);\r\n   s = 3.2;\r\n   contourf(X,Y,abs(H),0:0.2:s)\r\n   hold <span class=\"string\">on<\/span>\r\n   c2 = s*(angle(H)\/(2*pi)+0.5);\r\n   r2 = s*((-180:10:180)\/360+0.5);\r\n   contour(X,Y,c2,r2,<span class=\"string\">'k-'<\/span>)\r\n   hold <span class=\"string\">off<\/span>\r\n   axis <span class=\"string\">equal<\/span>\r\n   axis <span class=\"string\">tight<\/span>\r\n   grid <span class=\"string\">on<\/span>\r\n<\/pre><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"https:\/\/blogs.mathworks.com\/images\/cleve\/jahnke_01.png\" alt=\"\"> <h4>Reference<a name=\"f203d5b4-be42-4ea2-a1c9-397023fea76b\"><\/a><\/h4><p>Eugene Jahnke and Fritz Emde, Tables of Functions with Formulas and Curves, (4th ed.), Dover, 1945<\/p><script language=\"JavaScript\"> <!-- \r\n    function grabCode_331a5d44739f47b7a3dc0555db8a2de0() {\r\n        \/\/ Remember the title so we can use it in the new page\r\n        title = document.title;\r\n\r\n        \/\/ Break up these strings so that their presence\r\n        \/\/ in the Javascript doesn't mess up the search for\r\n        \/\/ the MATLAB code.\r\n        t1='331a5d44739f47b7a3dc0555db8a2de0 ' + '##### ' + 'SOURCE BEGIN' + ' #####';\r\n        t2='##### ' + 'SOURCE END' + ' #####' + ' 331a5d44739f47b7a3dc0555db8a2de0';\r\n    \r\n        b=document.getElementsByTagName('body')[0];\r\n        i1=b.innerHTML.indexOf(t1)+t1.length;\r\n        i2=b.innerHTML.indexOf(t2);\r\n \r\n        code_string = b.innerHTML.substring(i1, i2);\r\n        code_string = code_string.replace(\/REPLACE_WITH_DASH_DASH\/g,'--');\r\n\r\n        \/\/ Use \/x3C\/g instead of the less-than character to avoid errors \r\n        \/\/ in the XML parser.\r\n        \/\/ Use '\\x26#60;' instead of '<' so that the XML parser\r\n        \/\/ doesn't go ahead and substitute the less-than character. \r\n        code_string = code_string.replace(\/\\x3C\/g, '\\x26#60;');\r\n\r\n        copyright = 'Copyright 2014 The MathWorks, Inc.';\r\n\r\n        w = window.open();\r\n        d = w.document;\r\n        d.write('<pre>\\n');\r\n        d.write(code_string);\r\n\r\n        \/\/ Add copyright line at the bottom if specified.\r\n        if (copyright.length > 0) {\r\n            d.writeln('');\r\n            d.writeln('%%');\r\n            if (copyright.length > 0) {\r\n                d.writeln('% _' + copyright + '_');\r\n            }\r\n        }\r\n\r\n        d.write('<\/pre>\\n');\r\n\r\n        d.title = title + ' (MATLAB code)';\r\n        d.close();\r\n    }   \r\n     --> <\/script><p style=\"text-align: right; font-size: xx-small; font-weight:lighter;   font-style: italic; color: gray\"><br><a href=\"javascript:grabCode_331a5d44739f47b7a3dc0555db8a2de0()\"><span style=\"font-size: x-small;        font-style: italic;\">Get \r\n      the MATLAB code <noscript>(requires JavaScript)<\/noscript><\/span><\/a><br><br>\r\n      Published with MATLAB&reg; R2014b<br><\/p><\/div><!--\r\n331a5d44739f47b7a3dc0555db8a2de0 ##### SOURCE BEGIN #####\r\n%% Jahnke and Emde, Revisited\r\n% An incredible book, published in several editions from 1909 to 1933, by\r\n% German mathematicians Eugene Jahnke and Fritz Emde, contains definitions\r\n% and formulas for mathematical functions, hand-calculated tables of function\r\n% values, and meticulous hand-drawn 2- and 3-dimensional graphs.\r\n% An English edition was published by Dover in 1945.\r\n%\r\n% <<jahnke_and_emde_cover.jpg>>\r\n\r\n%% Jahnke and Emde Gamma Function\r\n% I will include only two of their illustrations in this blog.\r\n% Here is one of their graphs of the gamma function in the complex plane.\r\n% The surface is the magnitude of the function, with its poles at the\r\n% integers on the negative real axis.  The contour lines are the modulus\r\n% and phase.  I can't imagine how they made this plot in 1933.\r\n%\r\n% <<gammabw.jpeg>>\r\n%\r\n\r\n%% MATLAB Gamma Function\r\n% Here is my attempt to have MATLAB recreate the Jahnke and Emde plot.\r\n% It is only partially successful.  I do have little ellipses to cut off\r\n% the spikes REPLACE_WITH_DASH_DASH that was tricky.  But I haven't begun to label the contours,\r\n% or shade the edge faces.\r\n%\r\n% <<gamma3d.jpeg>>\r\n%\r\n\r\n%% Jahnke and Emde Bessel Function\r\n% I love this plot.  It is the complex-valued Bessel function of order zero,\r\n% also known as the Hankel function.  There is a pole, a zero, and a saddle\r\n% point.  Again, imagine doing this by hand.  Or, having some grad student\r\n% do it.\r\n%\r\n% <<hankelbw.jpeg>>\r\n%\r\n\r\n%% MATLAB Bessel Function\r\n% Here we can use color, and our new |parula| color map, in place of 3d.\r\n% But we can't get the nice feel of the hand drawn lettering.\r\n\r\n   [X,Y] = meshgrid(-4:1\/128:2,-1.5:1\/128:1.5);\r\n   H = besselh(0,X+i*Y);\r\n   s = 3.2;\r\n   contourf(X,Y,abs(H),0:0.2:s)\r\n   hold on\r\n   c2 = s*(angle(H)\/(2*pi)+0.5);\r\n   r2 = s*((-180:10:180)\/360+0.5);\r\n   contour(X,Y,c2,r2,'k-')\r\n   hold off\r\n   axis equal\r\n   axis tight\r\n   grid on\r\n\r\n%% Reference\r\n% Eugene Jahnke and Fritz Emde, Tables of Functions with Formulas and Curves,\r\n% (4th ed.), Dover, 1945 \r\n   \r\n\r\n##### SOURCE END ##### 331a5d44739f47b7a3dc0555db8a2de0\r\n-->","protected":false},"excerpt":{"rendered":"<div class=\"overview-image\"><img src=\"https:\/\/blogs.mathworks.com\/cleve\/files\/feature_image\/hankelbw.jpeg\" class=\"img-responsive attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" \/><\/div><!--introduction--><p>An incredible book, published in several editions from 1909 to 1933, by German mathematicians Eugene Jahnke and Fritz Emde, contains definitions and formulas for mathematical functions, hand-calculated tables of function values, and meticulous hand-drawn 2- and 3-dimensional graphs. An English edition was published by Dover in 1945.... <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/cleve\/2014\/12\/15\/jahnke-and-emde-revisited\/\">read more >><\/a><\/p>","protected":false},"author":78,"featured_media":1146,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[4,8,17],"tags":[],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/cleve\/wp-json\/wp\/v2\/posts\/1140"}],"collection":[{"href":"https:\/\/blogs.mathworks.com\/cleve\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.mathworks.com\/cleve\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/cleve\/wp-json\/wp\/v2\/users\/78"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/cleve\/wp-json\/wp\/v2\/comments?post=1140"}],"version-history":[{"count":4,"href":"https:\/\/blogs.mathworks.com\/cleve\/wp-json\/wp\/v2\/posts\/1140\/revisions"}],"predecessor-version":[{"id":1144,"href":"https:\/\/blogs.mathworks.com\/cleve\/wp-json\/wp\/v2\/posts\/1140\/revisions\/1144"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/cleve\/wp-json\/wp\/v2\/media\/1146"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/cleve\/wp-json\/wp\/v2\/media?parent=1140"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/cleve\/wp-json\/wp\/v2\/categories?post=1140"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/cleve\/wp-json\/wp\/v2\/tags?post=1140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}