Linux的高级科学计算器

Genius是一个计算器程序,具有命令行版本和GNOME GUI版本。 它应该在您的发行版的软件包管理系统中可用。 对于基于Debian的发行版,GUI版本和命令行版本是两个单独的软件包。 假设要同时安装这两种软件,则可以使用以下命令进行安装:

[linuxidc@linux:~/www.linuxidc.com]$ sudo apt-get install genius gnome-genius

Genius - Linux的高级科学计算器

如果使用Ubuntu,请注意gnome-genius软件包似乎不在Bionic中。 它处于早期版本(trusty, xenial  和 arty),并且似乎处于下一版本(cosmic)。 如果要在Ubuntu 18.04中安装,用其他方法,特地跟你说下,以免使您感到烦恼。

启动命令行版本提供了一个Python或R用户应该熟悉的解释器。

Genius - Linux的高级科学计算器

图1、启动Genius命令行时,您会看到版本和一些许可证信息,然后您将看到解释器提示。

如果您启动gnome-genius,您将看到一个图形界面,对于新用户来说可能更舒适。 在本文的其余部分中,我将使用GUI版本来演示您可以使用Genius进行的一些操作。

Genius - Linux的高级科学计算器

图2. GUI界面可让您轻松访问Genius中的大多数功能。

您可以将Genius用作通用计算器,因此可以执行以下操作:

genius> 7+9
= 16

除了基本的数学运算符,您还可以使用三角函数。 此命令给出60度正弦:

genius> sin(60)
= -0.304810621102

这些类型的计算基本上可以是任意大小的。您还可以使用开箱即用的复数。还有许多其他的标准数学函数,包括对数、统计、组合、甚至微积分函数。

除了函数之外,Genius还提供了控制结构,比如条件语句和循环结构。例如,下面的代码为您提供了一个基本的For循环,它打印出前60度的正弦值:

genius> for i = 1 to 60 do (
      > x = sin(i);
      > print(x)
      > )
0.841470984808
0.909297426826
0.14112000806
-0.756802495308
-0.958924274663
-0.279415498199
0.656986598719

Genius - Linux的高级科学计算器

如您所见,语法几乎类似于C。 乍一看,看起来分号被用作行尾字符,但实际上它是命令分隔符。 这就是为什么在正弦函数行上没有分号,而在带有打印函数行上没有分号的原因。 这意味着您可以编写如下的for循环:

genius> for i = 1 to 60 do ( m = sin(i); print(m) )
0.841470984808
0.909297426826
0.14112000806
-0.756802495308
-0.958924274663
-0.279415498199

Genius - Linux的高级科学计算器

除了for循环外,还有while循环,until循环,do-while循环,do-until循环和foreach循环。 您还可以使用break和continue命令控制是否弹出循环。 它们的行为与使用C之类的语言时的行为相同。Genius中的条件结构是非常基本的if结构,因此基本的if-then语句如下所示:

if (i==6) then (i=i-1)

您还可以使用else语句:

if (b>0) then (b=b-1) else (b=0)

Genius没有elseif声明。

你可以在任何你想放表达式的地方使用条件句,这意味着你可以使用if结构来设置一个变量值:

x = (if i>0 then i else 1)

Genius - Linux的高级科学计算器

如刚才看到的那样,这里我没有使用括号。您只需要在可能混淆操作顺序的情况下使用它们。

到目前为止,我已经介绍了命令,变量,条件和循环结构。 Genius还声称它使用一种称为GEL的编程语言。 编程语言应具有最后一种结构,即将代码组织成可重用的块的能力。 而且,当然,GEL具有让最终用户定义自己的函数的能力。 函数定义的基本语法如下所示:

function <identifier>(<comma separated arguments>) =
 ↪<function body>

作为一个非常简单的示例,以下代码定义了一个cubing函数:

genius> function linuxidc_cube(x) = a*a*a
= (`(x)=((a*a)*a))

然后,您可以像使用其他任何函数一样使用它:

genius> genius> linuxidc_cube(3) = 27
Lvalue not an identifier/dereference/matrix location!
= ((genius>linuxidc_cube(3))=27)

Genius - Linux的高级科学计算器

有时,您可能需要能够处理函数的输入参数的可变列表。 在这些情况下,您定义的函数的最后一个参数为“ ...”。 看起来如下:

function linuxidc_func(a, b, c...) = <function body>

在这种情况下,输入参数将作为值的向量传递给函数主体。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/11498.html