专栏首页matlab爱好者有谁能告诉我这图是怎么画出来的?

有谁能告诉我这图是怎么画出来的?

小编在一次浏览网页的时候不经意间发现了这张图 —— “HI”,仿佛是向小编打招呼,“你好,我在这儿呢!”如此精妙绝伦的画面小编是从来都不会放过的。可惜,点开图片没找到原始出处,咋办呢?于是开启各种搜图模式,经过几番周折终于找到了根源,原来是工程师Mike Croucher2007年在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”—— 数学之美与编程之美的完美融合,让我们看到数学公式原来可以不这么枯燥,程序代码原来可以不那么无味,正应那句话 —— “生活中从不缺少美,而是缺少发现美的眼睛!

本文分享自微信公众号 - matlab爱好者(matlabaihaozhe),作者:matlab爱好者

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 最小二乘法原理及matlab实现

    最小二乘法(least squares method),也称最小平方法,是一种古老而常用的数学工具,在自然科学、工程技术和人工智能等领域有着广泛地应用,其核心原...

    艾木樨
  • 数值优化—三种复杂函数数值积分方法实例演示

    在0.1~1 区间上的值,初步看该方程的积分项比较复杂不易给出原函数。用MATLAB也无法直接求出原函数。自然而然就想该函数如何在不求积分项原函数的情况下计算出...

    艾木樨
  • Matlab 自定义函数初讲

    在Matalb中使用函数可以把一个较大的任务分解为多个较小的任务,我这个Big project就是由个数多到我都不愿意看的一个个子函数构成的。每个子函数完成特定...

    艾木樨
  • 【从零学习OpenCV 4】直方图均衡化

    经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《从零学习OpenCV 4》。为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社...

    小白学视觉
  • 流量分析在安全攻防上的探索实践

    前段时间,lake2与大家分享了从网络流量层针对IDS/IPS进行绕过的一些尝试研究,其中埋了个坑“感谢宙斯盾的球头人牛长一起测试这个代号007的项目,后面的流...

    腾讯安全应急响应中心
  • 一些SAP C/4HANA和S/4HANA同步的测试数据,用于测试目的

    Customer 1 TechStar (BP 1) 6 GreenAuto ...

    Jerry Wang
  • day74-<项目>-forms.ModelForm的使用

    少年包青菜
  • 业界 | 李飞飞团队最新研究成果:视觉AI让医院细菌无处可逃!

    据说每年都会有很多人在医院感染病菌然后不幸患病,甚至因此导致的死亡人数比车祸还多。

    大数据文摘
  • shading-jdbc 4.1.1 + tk.mybatis + pagehelper 1.3.x +spring boot 2.x 使用注意事项

    shading-jdbc 4.1.1 + tk.mybatis + pagehelper 1.3.x + spring boot 2.x 是一个很常用的组合,...

    菩提树下的杨过
  • 小白也能看懂的BP反向传播算法之Into-BackpropagationBackpropagation待续

    在上一篇文章小白也能看懂的BP反向传播算法之Towards-Backpropagation,我们学习了如何利用函数的微分来更新变量值,是函数值发生相应的变化! ...

    desperate633

扫码关注云+社区

领取腾讯云代金券