Genius

Genius 是一个通用计算器程序,在某些方面类似于 BC、Matlab、Maple 或 Mathematica。「Genius is a general purpose calculator program similar in some aspects to BC, Matlab, Maple or Mathematica.」

Github星跟踪图

它是什么

Genius 是一个通用的计算器程序,在某些方面类似于 BC、Matlab、Maple 或 Mathematica。它既可以作为一个简单的计算器,也可以作为一个研究或教育工具。它的语法非常直观,旨在模仿数学的通常书写方式。GEL 是其扩展语言的名称,它代表了天才扩展语言,很聪明,不是吗?事实上,许多标准的天才函数都是用 GEL 本身写的。

它能做什么?

  • 任意精度的整数,多精度的浮点数。
  • 有理数,存储为商和分母。
  • 复数,像往常一样存储在笛卡尔坐标中。
  • 类似于数学的表达式,尽量做到你的意思就是 Genius 所理解的意思,当然要达到一定的限度。
  • 矩阵计算/线性代数,有许多相关函数。
  • 数论。
  • 微积分,数值计算,甚至是非常有限的符号计算。
  • 统计学,所有的基本统计功能。
  • 数值方程求解, 多项式根, 等等.
  • 组合学。
  • 最常见的初级/三角函数。
  • 模块运算,包括矩阵的反转和模块运算。
  • 一个完整的编程语言,具有自动分型功能。事实上,Genius 标准库的很大一部分是用 GEL 编写的。
  • 二维函数线图,一次最多可绘制10个函数的标准二维图,可导出为 EPS 或 PNG 格式。
  • 参数图,可以导出为 EPS 或 PNG 格式。
  • 三维函数曲面图,可导出为 EPS 或 PNG 格式。
  • 斜面/矢量场绘图。
  • GUI IDE,可以编辑和运行/测试你的程序。

可以用 LaTeX、Troff(eqn)或 MathML 输出矩阵,我认为这是一个非常酷的功能,可以让你直接从 Genius 中复制东西到 LaTeX、Troff 或 MathML 的文档中。

一个表达式的例子可以是这样的:

30*70 + 67^3.0 + ln(7) * (88.8/100) + |sin(40)| - 3i

或者,如果要对谐波级数的前70项进行求和,可以这样做:

sum n=1 to 70 do 1/n

要定义一个取一个数字的平方并加一的函数,你可以这样做。

function f(x) = x^2 + 1

对 f 进行从 -1 到 1 的数值积分。

NumericalIntegral(f, -1, 1)

将一个数字分解成素数。

Factorize(123456789)

求解一个线性系统 Ax=b。

SolveLinearSystem(A,b)

给出 y'=x^2+y,初始条件 y(0)=0,使用 Runge-Kutta 以 20 的增量求出 y(1)。

RungeKutta (`(x,y) = x^2 + y, 0, 0, 1, 20)

Genius 的最初目标是建立一个比 BC 更好的 BC。这个目标早就达到并超越了,Genius 与 BC 已经没有多少共同之处。它现在正向 Matlab/Octave、Maple 和 Mathematica 的领域进军,尽管它不完全是这些东西的一部分。我不认为它能取代任何东西,但它已经是一个非常好的实验工具,我已经在研究中多次使用它。

Genius 代表什么?

我不知道......G 可能是 GNOME 或 GNU。我想它曾经代表着什么,但我忘了。所以现在它只是 Genius。最初的窗口标题是 "GnomENIUS计算器",但那听起来很蠢,所以也不是了。

当然,Genius 是自由软件,根据 GNU 通用公共许可证发布。

未来?也就是说,Genius 在未来的某个时间点会做什么。

  • 更好的绘图,可能转移到 PlPlot。GtkExtra 的界面非常糟糕,基本上没有人维护,而且看起来也不尽如人意。我们也可以为 PlPlot 提供直接的接口,让天才可以做所有 PlPlot 可以做的事情,除了我们现在做的一些有限的高水平的事情。
  • 十进制浮点数。我想我们真的应该用十进制工作。
  • 多项式处理(它已经通过使用向量做了一些多项式处理,但它只针对单变量多项式)。
  • 一些更多的符号计算(这与多项式处理有关)。我们应该至少能够简化,如果不是整合的话。
  • 如果需要的话,用符号来处理根和常数,比如 pi 和 e,而不是转换为浮点数。事实上,我们可以同时做这两件事。
  • 更好的集合支持(而不是用向量来伪造)。

鸣谢

在部分开发过程中,作者(Lebl)得到了美国国家科学基金会资助DMS 0900885、美国国家科学基金会资助DMS 1362337、伊利诺伊大学厄巴纳-香槟分校、加州大学圣地亚哥分校、威斯康星大学麦迪逊分校、俄克拉荷马州大学的部分支持。

使用中的 Genius

以下是一份不完全的清单,列出了Genius被使用的事情。

  • Jiří Lebl and Daniel Lichtblau, Uniqueness of certain polynomials constant on a line, Linear Algebra and its Applications, 433 (2010), no. 4, 824-837, DOI:10.1016/j.laa.2010.04.020, preprint arXiv:0808.0284. 这项研究的部分内容是用Genius完成的,代码可查:https://www.jirka.org/LL08-archive.zip。
  • 关于 Diffy Qs 的说明: 工程师的微分方程。一套 UIUC 的数学286的笔记/教科书。书中的图表是用 Genius 做的,我也用 Genius 在课堂上演示过。涵盖了一阶和二阶 ODE,线性 ODE 系统,傅里叶级数方法和 PDEs,边界和特征值问题,以及拉普拉斯变换。


主要指标

概览
名称与所有者flathub/org.gnome.Genius
主编程语言
编程语言 (语言数: 0)
平台BSD, Linux, Unix-like
许可证
所有者活动
创建于2017-12-17 19:51:08
推送于2024-09-19 15:30:06
最后一次提交2024-09-19 20:59:58
发布数0
用户参与
星数0
关注者数2
派生数3
提交数22
已启用问题?
问题数2
打开的问题数0
拉请求数4
打开的拉请求数57
关闭的拉请求数0
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?

Genius Calculator

Genius calculator is a general purpose calculator and mathematics tool
with many features.

For a manual read help/genius.txt (or see the manual in the gnome
help browser).


Requirements:
- lex (tested under flex)
- yacc (tested under bison -y)
- gmp (relatively new one required)
- mpfr (relatively new one)
- glib 2.12
And for the GNOME frontend you need:
- gtk+ 2.18
- vte
- gtksourceview or gtksourceview2 (optional but recommended)

If you want to compile without the GNOME frontend, try the
--disable-gnome
argument to the ./configure script. You will miss out on the GUI stuff
(which includes the plotting) but you can use all the rest nicely.

It's under GPL so read COPYING

Note: the gtkextra/ directory which includes the plotting widgetry is
copyright: Adrian E. Feiguin feiguin@ifir.edu.ar and is under LGPL. When
GtkExtra is actually released, stable, free of bugs, widely deployed and all
that it will become a requirement rather then being included like this. This
seems very unlikely at this time.

George jirka@5z.com