小编在一次浏览网页的时候不经意间发现了这张图 —— “HI”,仿佛是向小编打招呼,“你好,我在这儿呢!”如此精妙绝伦的画面小编是从来都不会放过的。可惜,点开图片没找到原始出处,咋办呢?于是开启各种搜图模式,经过几番周折终于找到了根源,原来是工程师Mike Croucher于2007年在Walking Randomly上使用Mathematica发布的,数学公式如下:
上式中,要求x∈[-3,3],y∈[-5,5],f(x,y)则限定在[-0.001,0.001]区间内,他公布的图如下:
3年后,他又在Walking Randomly上发布了matlab版。为了让小伙伴们能体验到这个探寻过程,建议大家先不对f(x,y)值做限制,一点一点地减小f(x,y)的取值范围,观察图像的变化情况。
Code Zero (小编版,简单粗暴缺乏美感
clc;clear;close all;
x = -5:0.2:5;
y = -5:0.2:5;
zH = 0.00165778; % 参数来源于Google绘图
[xx,yy] = meshgrid(x,y);
zz = exp(-xx.^2-yy.^2/2).*cos(4*xx)+exp(-4*((xx+0.8).^2+yy.^2/2));
zz(zz>zH) = zH;
zz(zz<0) = 0;
figure('NumberTitle','off','Color','w','MenuBar','none','ToolBar','none');
surf(xx,yy,zz);
colormap cool;
view(25,65);
axis off;
Code one (原版一)
zL = 0.001;
x = linspace(-3,3,50);
y = linspace(-5,5,50);
[X,Y]=meshgrid(x,y);
Z = exp(-X.^2-Y.^2/2).*cos(4*X) + exp(-3*((X+0.5).^2+Y.^2/2));
Z(Z>0.001) = zL;
Z(Z<-0.001) = -zL;
figure('NumberTitle','off','Color','w','MenuBar','none','ToolBar','none');
surf(X,Y,Z);
title({'Secret Messages Hidden Inside Equations',...
'$e^{-x^2 - \frac{y^2}{2}}\cos(4x) + e^{-3((x+0.5)^2+\frac{y^2}{2})}$'},...
'Interpreter','latex', 'FontSize',15,'Color','b')
colormap(flipud(cool))
view([1 -1.5 2])
Code Two (原版二)
zL = 0.001;
[x,y] = meshgrid(linspace(-3,3,50),linspace(-5,5,50) );
z = exp(-x.^2-0.5*y.^2).*cos(4*x) + exp(-3*((x+0.5).^2+0.5*y.^2));
idx = abs(z)>zL;
z(idx) = zL * sign(z(idx));
figure('NumberTitle','off','Color','w','MenuBar','none','ToolBar','none');
patch(surf2patch(surf(x,y,z)), 'FaceColor','interp');
set(gca, 'Box','on','XColor',[.3 .3 .3], 'YColor',[.3 .3 .3], 'ZColor',[.3 .3 .3], 'FontSize',8)
title({'Secret Messages Hidden Inside Equations',...
'$e^{-x^2 - \frac{y^2}{2}}\cos(4x) + e^{-3((x+0.5)^2+\frac{y^2}{2})}$'},...
'Interpreter','latex', 'FontSize',15,'Color','b')
view(35,65)
colormap([flipud(cool);cool] )
camlight headlight;
lighting phong;
“HI”—— 数学之美与编程之美的完美融合,让我们看到数学公式原来可以不这么枯燥,程序代码原来可以不那么无味,正应那句话 —— “生活中从不缺少美,而是缺少发现美的眼睛!”