CMU 开源数学神器,可快速将数学公式转为精美图表!

公众号关注 “GitHubDaily”

设为 “星标”,每天带你逛 GitHub!

转自机器之心

在有些人眼里,数学公式就是一堆数字和符号,但在另一些人看来,这些数字和符号是可以动的,而且极富美感。为什么会有这种差距?那是因为对于后者来说,这些数字和符号的背后是一幅灵动的图,他们可以根据公式约定的规律进行变换,让人感受到数学规律带来的美感。

但问题在于,不是每个人都有这么好的「脑补」能力,能将数学公式自动想象成图。因此,我们需要借助于工具。

说到工具,你可能想到的是 Adobe Illustrator 等广泛使用的画图工具。没错,这些工具确实好用,但未免有点繁琐,你要不断地花时间手动调整坐标等信息。

有没有简单一点的方法呢?类似于「我来说,你来画」那种。卡内基梅隆大学开发的 Penrose 就是这样一款工具。

你只需要描述一些数学关系或输入数学表达式,该软件就能自动帮你画图,从而将抽象的数学公式转化为直观的图,文章开头给出的只是一个简单的例子。如果你不想用圆来表示上述关系,软件还可以帮你换成箭头表示。

不同于普通的图形计算器,你输入的表达式不仅限于基本函数,也可以是来自任何数学领域的复杂关系。

「在设计之初,我们问自己『人们是如何在脑海中将数学公式转换为图像的?』」卡内基梅隆大学计算机科学系博士生 Katherine Ye 表示。「我们系统的秘密武器就是让人们能够很容易地向电脑『解释』这一转换过程,然后将比较困难的作图过程留给计算机。

为了让计算机理解人类所描述的关系,研究团队还专门开发了一种编程语言

如上图所示,研究者用自己设计的编程语言表述了几个集合的包含关系,即使没学过这种编程语言的同学也能读懂。根据这些描述可以生成如下图形:

这款软件的名字来源于著名数学家、物理学家罗杰・彭罗斯(Roger Penrose)。彭罗斯以善用图表交流复杂的数学和科学思想而闻名。

「想象一下,你从图书馆的书架上拿下一本尘封已久的数学书,将上面的内容输入计算机,然后就能得到一本带插图、更容易理解的新书」,这就是该研究团队的愿景,Penrose 只是迈向这个愿景的第一步。研究人员将在 SIGGRAPH 2020 大会上展示 Penrose。不过,Penrose 目前还处在开发阶段,因此暂时无法上手。

  • 论文地址:http://penrose.ink/media/Penrose_SIGGRAPH2020.pdf

  • GitHub 地址:https://github.com/penrose/penrose

这款工具到底有多好用

Penrose 可以把抽象的数学表示转化成一或多个不同风格的视觉表示,研发团队在视频 demo 中展示了对多个不同领域数学表达式的转化效果。

比如,几何领域:

线性代数:

集合论:

函数:

看了该研究团队给出的 demo 之后,有人称赞道,「这款工具可能变革科学和数学交流。」

还有人将其比作「科学图表界的 LaTex」:

那么,用户要怎么操作才能实现上述效果呢?

界面和基本功能

我们首先来看 Penrose 的界面。

如下图所示,界面顶部是该工具的基本功能和选项。

  • 左侧第一个下拉框:表示用户试图转化的数学公式所属的领域,上图示例显示的是「集合论」(set theory);

  • 左侧第二个框:可供用户选择想要生成的图样式,上图选择的是维恩图(venn),用户可以点击该下拉框,选择自己喜欢的样式;

  • 右侧「run」按钮:点击该按钮,等待几秒,即可得到左侧数学内容所对应的图。

只选择数学领域还不够,用户还需要在界面左侧填充数学内容。这里需要注意的是界面第二行的「sub」、「sty」、「dsl」按钮。

Penrose 的语言框架包含三部分:Domain schema(dsl)、Substance program(sub)和 Style program(sty)。

如下图所示,这三部分分别表示:

  • dsl:数学领域中可用的对象、关系和符号;

  • sub:填充数学内容;

  • sty:从数学表述到视觉表示。

用户可以逐个点击这些按钮,填充所需的数学内容,选择所需的视觉表示形式。

高阶优化操作

说完了基本功能,我们再来看「优化」操作。

  • 右下方「resample」按钮:如果你对生成的图不满意,点击该按钮,即可重新生成图;

  • 「autostep」按钮:实现图的自动生成,如果你想对图进行调整,只需禁用该功能即可。

UI 界面中的优化过程。

Penrose 背后的技术

Penrose 团队设计此工具的目标是:

  • 以用户熟悉的方式表达数学对象;

  • 系统不局限于固定的某些领域;

  • 对相同的数学内容进行不同的可视化展示;

  • 视觉复杂度方面不存在内在限制;

  • 速度快,支持迭代工作流;

  • 为制图所做的努力应该是可泛化和可重用的。

基于以上目标,该团队制定了以下组织原则:

  • 通过从数学对象到视觉图标的映射来规定图;

  • 通过解决相关的约束优化问题来合成图。

工作流程

下图展示了 Penrose 的工作流程:

第一阶段:用编程语言指定数学对象和视觉表示

Penrose 将数学内容与视觉表示分离开来,并使用 language-based specification 来提供该分离所需的抽象。

如前所述,Penrose 为数学内容与视觉表示提供了两种不同的语言:Substance 和 Style。

Substance 借助精确的断言(assertion)来诠释标准的数学表述,参见下图示例:

第二阶段:基于优化的合成

Penrose 使用约束优化来合成与给定描述相对应的图。这个方法主要是受到手绘图的启发:将视觉图标放在画布上,不断地调整直到无需再改进。

此外,Penrose 用户界面提供了插件接口,方便调用 Substance 和 Style 中的外部代码,从而提供系统级的可扩展性。该插件系统可以帮助用户集成可用于解决逻辑或图难题的外部代码。

目前,该项目已发布在 GitHub。不过 Penrose 团队表示,目前版本处于早期阶段,仍在持续开发中。

感兴趣的同学可以访问 Penrose 网站,跟进更多信息。

网站地址:http://www.penrose.ink/

---由 GitHubDaily 原班人马打造的公众号:GitCube,现已正式上线!
接下来我们将会在该公众号上,为大家分享优质的计算机学习资源与开发者工具,坚持每天一篇原创文章的输出,感兴趣的小伙伴可以关注一下哈!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/45361.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Markdown / KaTex数学公式汇总

目录 【LaTex和KaTex】【软件推荐 Mathpix】一、如何插入公式二、上下标三、常用运算符四、高级运算符五、常用数学符号六、特殊符号6.1 箭头6.2 公式序号 七、括号使用八、矩阵九、集合运算十、希腊字母十一、字符大小 【LaTex和KaTex】 LaTeX是一种基于ΤΕΧ的排版系统&…

Latex数学公式表

1. Latex的两种公式模式 行间(inline)模式:即在正文中插入数学内容。行间公式用$ … $ 独立(display)模式:独立成行,可以有或没有编号。无编号用\ [ … \ ] 2.基本元素 希腊字母 标注 上下标 分数 运算符 求和(\sum)&…

陶哲轩预言成真!MIT加州理工让ChatGPT证明数学公式,数学成见证AI重大突破首个学科

来源 | 新智源 ID | AI-era 大语言模型,可以用来证明数学定理了! 「数学天才」陶哲轩曾在一篇博客中称,2026年,AI将与搜索和符号数学工具相结合,成为数学研究中值得信赖的合著者。 这个预言,如今已经成…

Typora数学公式大全

Typora数学公式大全 typora做笔记时候经常要插入数学公式,但是好多符号难以记忆,所以该文总结个人常用符号便于查找 1 常见希腊字母 公式代码公式代码公式代码\alphaα\xiξ\omegaω / Ω\betaβ\zetaζ\phiΦ / φ\deltaδ / Δ\DeltaΔ\piπ\epsilo…

福布斯发布2023全球亿万富豪榜

中国内地亿万富豪人数仍位居全球第二,仅次于美国。 对于全球富豪们来说,过去的一年充满挑战。利率骤增、股价承压、独角兽估值受挫,无一不对全球企业经营造成巨大影响。 2023福布斯全球亿万富豪榜的上榜人数较去年下降28位,总人…

智能音箱来了,语音交互设计的一点认知

语音用户界面(或VUI)是一种交互模型,在该模型中,人与机器进行交互,并至少部分通过使用语音来执行一组任务。 实际上,这种方式的交互式语音应答(IVR)系统在银行业和旅游业中已经得到了…

简易聊天室app实现:Unity+C# 客户端,Java 服务器端

UnityC# 客户端 UI界面根据个人喜好排版 图1 进入界面 图2 聊天界面 C#脚本代码如下: Client_dxc.cs using UnityEngine; using System.Net.Sockets; using System.Text; using System; using UnityEng…

解放生产力的 AI 神器来了

苏生不惑第405 篇原创文章,将本公众号设为星标,第一时间看最新文章。 今天分享几个解放生产力的AI写作神器,首先是腾讯出品的智能写作助手 https://effidit.qq.com/ ,文字工作者的福音,提供智能纠错、文本补全、文本改…

医学图像配准论文学习:解剖学约束和注意力引导的深层特征融合,用于关节分割和可变形医学图像配准(2023)

原文链接:Anatomically constrained and attention-guided deep feature fusion for joint segmentation and deformable medical image registration 一、Hilghtlights: 利用分割可以在配准过程中培养先验知识。多任务学习策略提高了配准性能。所提出的…

学习遥感大模型(1)

借着课程作业的机会学习了一些遥感大模型相关的工作,现总结一下 根据非盈利组织忧思科学家联盟(The Union of Concerned Scientists),截止2023年1月,全球对地观测卫星在轨数目已超过1000颗。大量的对地观测卫星很大程…

影像组学 - pyradiomics库 - 入门1

目录 一、了解 影像组学 影像组学是什么(引用一下chatgpt的解释) 影像组学的基本步骤 影像组学的作用与价值 影像组学有哪些特征 二、了解 pyradiomics pyradiomics是什么 pyradiomics使用步骤 pyradiomics的作用与价值 三、正文开始&#xff…

网络安全数据集介绍

目录 1、KDD99 入侵检测数据集 2、NSL KDD 入侵检测数据集 3、UNSW_NB15 入侵检测数据集 4、NASA MDP 软件缺陷数据集 5、CNNVD 软件安全漏洞数据集 6、NVD 软件安全漏洞数据集 1、KDD99 入侵检测数据集 该数据集是从一个模拟的美国空军局域网上采集来的9个星期的网络连…

unsw计算机专业排名,新南威尔士大学UNSW计算机科学Computer Science专业排名第54位(2021年THE世界大学商科排名)...

2021年THE泰晤士高等教育计算机科学Computer Science专业世界大学排名公布,新南威尔士大学UNSW计算机科学世界排名第54位,新南威尔士大学UNSW计算机科学专业实力怎么样呢?下面美英港新留学介绍新南威尔士大学UNSW计算机科学专业培养计划,新南威尔士大学UNSW计算机科学专业研…

[当人工智能遇上安全] 7.基于机器学习的安全数据集总结

您或许知道,作者后续分享网络安全的文章会越来越少。但如果您想学习人工智能和安全结合的应用,您就有福利了,作者将重新打造一个《当人工智能遇上安全》系列博客,详细介绍人工智能与安全相关的论文、实践,并分享各种案…

找到一个好用的在线创意英文logo设计生成器网站

smashinglogo.com这个在线一键式生成LOGO的网站可以尝试下,输入品牌词和slogan可以无限生成logo。 下面简单举个例子,给大家看一下效果。假设要给Tesla生成一个logo,可以把品牌词写成Tesla,slogan我随便编了一句: jou…

请不要随便走上编程这条路

“互联网的黄金十年已经结束,接下来的十年是白银十年”。这话还是在2016年看到的,当时本人有些沮丧,毕竟还没找到实习的公司。 怎么说呢,在去年,也就是2015年的时候,不敢说别的,大部分互联网专业…

IC工程师简历制作全解读

前言 越来越觉得一份好简历真的很重要! 本文基于下面这个视频记录所得:那个拿35万offer的IC设计应届生简历是这么写的 IC工程师应届生薪资 工艺制造、封测方向——本科/专科:5000-8000元/月,硕士:8000-12000元/月设计方向——本科/专科:6000-1000元/月,硕士:1w5-2w元…

为什么有人说C++是最难学的编程语言? (4个回答)

从事嵌入式开发多年,有三种语言玩的比较多C/C java,从编程语言的难度来讲C是最难得,而且也是最难入门的编程语言,很多编程老手都是这个结论,为什么C是最难学的编程语言,虽然难学但还是很多编程老手喜欢研究它&#xff…

自学编程的人,90%以上都会掉进这些坑,避开这些误区能提高N倍学习效率

前言 几乎每一个程序员都会走上那么一段自学的道路,尤其是在校生或进入工作岗位之后,技术的提升基本都靠自学,有的虽然是网上报班学习,但更多时候还是自己在学习,师傅引进门,修行靠个人。 有的人自学很快…

30岁开始学编程晚吗?

二哥,说出来不怕你笑话,我和你年纪差不多。之前是干别的,但有点编程的基础,最近想转行程序员,不知道晚不晚,你能不能给我一些建议,或者说有没有一些攻略可以参考。 这是上个月一个读者小郑私信我…