MATLAB社区

MATLAB、社区及更多

一路盘旋

这是一个关于想法和代码如何在我们共享的社交空间中跳跃的故事。这一条从Twitter到GitHub再到我的电脑,现在又到了我博客中的你。如今,我们可以利用的各种形式的社区共享,确实放大了社会偶然性。潜入其中,看看你的结局是多么有趣。

我们的故事始于马特亨德森张贴用这个视频推特. 这只是他发表的几十种不同的大脑弯曲的数学可视化中的一种(帮你自己一个忙,跟着他)。

观看视频!想法是使用显示为跟踪工具的特殊区域=1矩形将一组圆转换为另一组圆。上面的一组圆扩展到无穷远。另一组对应的圆映射到第一组圆下方的圆形区域内。

作为一名MATLAB迷,我很高兴见到我的朋友杰森C跟进这条推特:

“我能看看你的密码吗?”我问道,他慷慨地回应说,他把所有的密码都发到了一个网站上GitHub回购.他说他是在一次短暂的午餐休息时把它弄出来的。这是Jason代码的输出,它确实复制了上面显示的他的图像。我喜欢GitHub!

clf%从一条线开始得到外圆线形图(1002000)%然后画一组圆对于a=-50.5:50.5对于b=1.5:10.5圈图(100,0.5,[ab])终止终止相同的

我看着原始的变换,思考它是怎样的一种横向反转(和Matthew)他自己也这么说).我知道如果我能把它映射到MATLAB自带的复杂数学功能,那么绘制它的代码可能会变得非常小。

这是我画的图。追踪点是z1,绘图点是z2。

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

所以

但是嘿!我碰巧知道

过来看!现在可以看到real(z2)=imag(1/z1)和imag(z2)=real(1/z1)。现在我们准备好飞了。系好安全带!

我们将把这些新的圆圈用蓝色覆盖在杰森的情节上。

%设置圆的中心[x,y]=网格(-50.5:50.5,1.5:10.5);%制作一个要应用于循环内部的模板圆t=linspace(0,2*pi,100);ct=0.5*cos(t);st=0.5*sin(t);%循环通过所有的中心点对于i=1:numel(x)%围一圈xc=x(i)+ct;yc=y(i)+st;% ... 然后把它倒过来z=xc+1i*yc;zi=1./z;%翻转实部和虚部并绘图线(图像(zi)、真实(zi))%鲍勃是你叔叔。。。终止

那些是相同的圆圈!我们可以通过放大来验证这一点。

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

如果您想更好地了解变换发生了什么,这里是一个包含一些中间步骤的动画。我不得不用一个超高速摄像机来捕捉MATLAB精灵们在反转复数时的动作。你通常无法用肉眼看到这一点。

我发现地图将圆保留为圆,而它们所在的正方形严重扭曲,这很有趣。在这里,我去掉了圆圈,只留下了(反转的)网格。

这都是基本的分析,但在复杂的平面上徒步旅行,看看会发生什么,这是很有趣的。尤其是当你与来自网络各地的朋友和同事交流想法时,这更是有趣。因此,为马修·亨德森和杰森·C的灵感干杯!

|
  • 打印
  • 发送电子邮件

评论

如需留言,请点击在这里登录到您的MathWorks帐户或创建新帐户。