(给算法爱好者加星标,修炼编程内功)
来源:机器之心
在有些人眼里,数学公式就是一堆数字和符号,但在另一些人看来,这些数字和符号是可以动的,而且极富美感。为什么会有这种差距?那是因为对于后者来说,这些数字和符号的背后是一幅灵动的图,他们可以根据公式约定的规律进行变换,让人感受到数学规律带来的美感。 但问题在于,不是每个人都有这么好的「脑补」能力,能将数学公式自动想象成图。因此,我们需要借助于工具。 说到工具,你可能想到的是 Adobe Illustrator 等广泛使用的画图工具。没错,这些工具确实好用,但未免有点繁琐,你要不断地花时间手动调整坐标等信息。 有没有简单一点的方法呢?类似于「我来说,你来画」那种。卡内基梅隆大学开发的 Penrose 就是这样一款工具。 你只需要描述一些数学关系或输入数学表达式,该软件就能自动帮你画图,从而将抽象的数学公式转化为直观的图,文章开头给出的只是一个简单的例子。如果你不想用圆来表示上述关系,软件还可以帮你换成箭头表示。 不同于普通的图形计算器,你输入的表达式不仅限于基本函数,也可以是来自任何数学领域的复杂关系。 「在设计之初,我们问自己『人们是如何在脑海中将数学公式转换为图像的?』」卡内基梅隆大学计算机科学系博士生 Katherine Ye 表示。「我们系统的秘密武器就是 让人们能够很容易地向电脑『解释』这一转换过程,然后将比较困难的作图过程留给计算机。 」 为了让计算机理解人类所描述的关系,研究团队还 专门开发了一种编程语言 : 如上图所示,研究者用自己设计的编程语言表述了几个集合的包含关系,即使没学过这种编程语言的同学也能读懂。 根据这些描述可以生成如下图形: 这款软件的名字来源于著名数学家、物理学家罗杰 · 彭罗斯(Roger Penrose)。彭罗斯以善用图表交流复杂的数学和科学思想而闻名。 「想象一下,你从图书馆的书架上拿下一本尘封已久的数学书,将上面的内容输入计算机,然后就能得到一本带插图、更容易理解的新书」,这就是该研究团队的愿景,Penrose 只是迈向这个愿景的第一步。研究人员将在 SIGGRAPH 2020 大会上展示 Penrose。不过,Penrose 目前还处在开发阶段,因此暂时无法上手。「有 A、B 两个集合,A 与 B 相交,C 是 A 与 B 的交集,分别将三个集合命名为 Circles、Diagrams、Venn Diagrams。」给出这样一段描述,你要怎么作图?先画两个相交的圆,然后各自命名?太麻烦了!卡内基梅隆大学开发的一款新工具可以帮你自动生成。
论文地址:http://penrose.ink/media/Penrose_SIGGRAPH2020.pdf
GitHub 地址:https://github.com/penrose/penrose
左侧第一个下拉框:表示用户试图转化的数学公式所属的领域,上图示例显示的是「集合论」(set theory);
左侧第二个框:可供用户选择想要生成的图样式,上图选择的是维恩图(venn),用户可以点击该下拉框,选择自己喜欢的样式;
右侧「run」按钮:点击该按钮,等待几秒,即可得到左侧数学内容所对应的图。
dsl:数学领域中可用的对象、关系和符号;
sub:填充数学内容;
sty:从数学表述到视觉表示。
右下方「resample」按钮:如果你对生成的图不满意,点击该按钮,即可重新生成图;
「autostep」按钮:实现图的自动生成,如果你想对图进行调整,只需禁用该功能即可。
以用户熟悉的方式表达数学对象;
系统不局限于固定的某些领域;
对相同的数学内容进行不同的可视化展示;
视觉复杂度方面不存在内在限制;
速度快,支持迭代工作流;
为制图所做的努力应该是可泛化和可重用的。
通过从数学对象到视觉图标的映射来规定图;
通过解决相关的约束优化问题来合成图。
- EOF -
推荐阅读 点击标题可跳转1、LaTeX 免费神器!再也不怕复杂的公式了
2、数学史上最简单却最复杂的公式
3、少儿图论:八岁小孩眼里的欧拉公式
觉得本文有帮助?请分享给更多人
关注「算法爱好者」加星标,修炼编程内功
好文章,我在看❤️