本文介绍了一种有趣的图形方法,用以确定 e^π 是否大于 π^e。
文章最后留了个超实用的matlab在线测试工具。
问题:e^π 和 π^e哪一个更大?最简单的确定方法是直接通过 MATLAB 命令提示符键入这两个值。但是,另一种分析方法是提出一个更普遍的问题:函数 z(x,y)=x^y − y^x是什么形状?
下面是 z 的图。
% Define the mesh
x = 0:0.16:5;
y = 0:0.16:5;
[xx,yy] = meshgrid(x,y);
% The plot
zz = xx.^yy-yy.^xx;
h = surf(x,y,zz);
h.EdgeColor = [0.7 0.7 0.7];
view(20,50);
colormap(hsv);
title('$z = x^y-y^x$','Interpreter','latex')
xlabel('x')
ylabel('y')
hold on
x^y − y^x = 0 方程解的形状较为特别,单纯通过观察并不足以解决我们一开始的问题。下图是使得 z=0 的 xy 值。
c = contourc(x,y,zz,[0 0]);
list1Len = c(2,1);
xContour = [c(1,2:1+list1Len) NaN c(1,3+list1Len:size(c,2))];
yContour = [c(2,2:1+list1Len) NaN c(2,3+list1Len:size(c,2))];
% Note that the NAN above prevents the end of the first contour line from being
% connected to the beginning of the second line
line(xContour,yContour,'Color','k');
黑色曲线上部分点处的 x 和 y 同时为整数。下图是方程x^y − y^x = 0 的整数解。请注意,2^4 = 4^2
是 x≠y 时的唯一整数解。
plot([0:5 2 4],[0:5 4 2],'r.','MarkerSize',25);
最后,在曲面上绘制点 (π,e) 和 (e,π)。结果显示,e^π 确实大于 π^e(尽管相差不大)。
e = exp(1);
plot([e pi],[pi e],'r.','MarkerSize',25);
plot([e pi],[pi e],'y.','MarkerSize',10);
text(e,3.3,'(e,pi)','Color','k', ...
'HorizontalAlignment','left','VerticalAlignment','bottom');
text(3.3,e,'(pi,e)','Color','k','HorizontalAlignment','left',...
'VerticalAlignment','bottom');
hold off;
验证结果。
e = exp(1);
e^pi
ans = 23.1407
pi^e
ans = 22.4592
推荐一个在线测试的matlab工具,不要启动超耗储存空间和运行内容的matlab客户端,用起来真的挺方便的。
链接:https://octave-online.net/