MATLAB社区

Matlab,社区和更多

一直圈下去

这是一个关于想法和代码如何在我们共享的社会空间中跳跃的故事。这个从推特上传到GitHub,再传到我的电脑上,现在传到我的博客上。如今,我们所能获得的各种形式的社区共享,确实放大了社会的意外发现。一头扎进去,看看你会在哪里结束,这很有趣。

我们的故事开始于马特·亨德森帖子A.推特上有这个视频.这只是他发表的众多令人费解的数学可视化作品之一(帮你自己一个忙,跟着他走吧)。

看视频!这个想法是使用特殊的区域= 1矩形作为跟踪工具,将一组圆圈转换为另一组。上面的一组圆圈传播到无限远。另一组相应的圆圈映射在第一组下方的圆形区域内。

作为一个MATLAB爱好者,我很高兴见到我的朋友杰森C跟进这款推文

“我能看看你的代码吗?”我问他,他慷慨地回复了我,把这一切都发到了github repo..他说他在快速休息时击败了它。以下是杰森代码的输出,并确保它可以再现其上面显示的图像。我喜欢github!

clf%从直线开始得到外圆LinePlot(100、2000)然后画一堆圆一个= -50.5:50.5B = 1.5:10.5系列平板(100,0.5,[A B])结束结束平等的离开

我正在寻找原来的变革,思考它是如何侧面的反演(和马修让这个观察自己)。我知道如果我可以将它映射到Matlab的本地复杂的数学功能,那么绘制这可能会变得非常小。

这是我画的图。追踪点是Z1,绘图点是Z2。

通过检查,我们可以通过逆时针旋转z1 90度(乘以i)来构造z2,然后使用矩形的面积为1的假设来缩放它。

所以

但是嘿!我碰巧知道那件事

点击这里查看详情!你现在可以看到real(z2) = imag(1/z1),和imag(z2) = real(1/z1)。现在我们准备起飞了。系紧你的安全带!

我们要把这些新的圆圈用蓝色覆盖在杰森的图上。

%设置圈子的中心[x,y] = meshgrid(-50.5:50.5,1.5:10.5);%制作模板圈以在循环内部应用t = linspace(0, 2 *π,100);ct = 0.5 * cos (t);圣= 0.5 * sin (t);绕圈穿过所有的中心点i = 1:numel(x)%建立一个圆xc = x (i) + ct;yc = y (i) +圣;%……和转化Z = xc + 1i*yc;子= 1. / z;将实分量和虚分量翻转并绘图线(图片(zi),真实(zi))鲍勃是你的叔叔……结束

那是同样的圆圈!我们可以通过放大来验证。

Xlim ([-0.0982 -0.0452]) ylim([0.0301 0.0719])

如果您想要更好地了解变换发生的事情,那么这里是一个带有一些中间步骤的动画。我不得不使用超快速的相机来捕捉Matlab精灵的反转复合数字。你通常不能用肉眼看到这一点。

我觉得很有趣的是,地图将圆形保留为圆形,而它们所在的正方形却严重扭曲。在这里,我移除了圆圈,只留下(倒)网格。

这是所有基本分析,但拍摄复杂的飞机的步行旁很有趣,看看是什么时候起来。当你在网上与朋友和同事围绕着思想蹦蹦跳跳时,这尤其有趣。所以为Matthew Henderson和Jason C欢呼的灵感!

|
  • 打印
  • 发送电子邮件

注释

要留下评论,请点击这里登录到您的MathWorks帐户或创建一个新帐户。