站長資訊網
最全最豐富的資訊網站

Genius – 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>

在這種情況下,輸入參數將作為值的向量傳遞給函數主體。

當您開始編寫較大的代碼段時,您可能需要開始處理錯誤情況。 Genius(以及因此的GEL)具有基本的錯誤處理功能。 當您在代碼中檢測到錯誤時,可以使用error命令向最終用戶發送消息:

genius> if not IsMatrix (M) then (
      > error(“M is not a matrix”)
      > )
使用了未初始化的變量“M”,可能您指的是 ‘m’。
M is not a matrix

Genius - Linux的高級科學計算器 

但是,這可能還不夠。如果錯誤無法恢復,則需要以某種方式停止執行。 GEL提供了兩種選擇。首先是停止當前功能,然后使用bailout命令返回到調用代碼。如果錯誤極其嚴重,則可能需要停止所有執行。在這種情況下,可以使用exception命令。

Genius還具有大量高級功能。

您還可以進行無窮和(infinite sums),數值微分(numerical derivatives)和極限(limits)。

我想要查看的最后一項只有在GNOME版本的Genius中才可用。在這種情況下,您可以繪制數據和函數并將它們顯示在屏幕上。當您單擊主窗口上的繪圖按鈕時,您將得到一個可以定義繪圖參數的新窗口。

Genius - Linux的高級科學計算器

繪圖窗口使您可以定義多個函數的line plots 和 surface plots。

由于可以繪制多個函數,所以可以在同一個窗口中并排看到它們。如果你需要繪制一個曲面的3D圖形,你可以選擇繪圖窗口的“繪制面”選項卡,并定義一個關于x和y的函數,在繪圖窗口中,有幾個選項可以改變視圖。對于曲面圖,你甚至可以讓它旋轉,這樣你就可以從各個角度看到結果圖。當您讓圖形看起來完全符合您的需要時,單擊繪圖菜單項并將其導出為幾種文件格式之一,這樣您就可以在其他出版物或報告中使用它。

Genius - Linux的高級科學計算器

GNOME Genius使您可以輕松地繪制多個函數。例如,您可以繪制正弦和切線以查看它們之間的比較。

Genius - Linux的高級科學計算器

您可以輕松地根據x和y繪制單個函數,例如x*sin(y)。

如您所見,Genius在一個小包裝中提供了相當多的功能。它已用于教育中,使學生可以快速查看不同計算的結果,并根據輸入或算法的變化顯示它們的變化。同樣,它提供了高級科學計算器的基本知識。使用過HP或TI高級手持式計算器的人會發現Genius是桌面版上非常強大的替代產品。您可以在主網站上找到更多信息,包括手冊和示例集。

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
国产精品高清在线观看地址| 好属妞这里只有精品久久| 久久精品女人天堂AV免费观看| 亚洲国产精品久久66| 最新国产精品拍自在线播放| 国产乱子伦精品无码专区| 免费精品久久久久久中文字幕| 精品国产免费观看| 亚洲综合一区国产精品| 国产99视频精品一区| 1024你懂的国产精品| 色妞www精品视频| 久久露脸国产精品| 精品亚洲成α人无码成α在线观看 | 日韩在线观看视频网站| 久久精品无码专区免费青青| 奇米精品一区二区三区在线观看 | 久久精品水蜜桃av综合天堂| 久久一区二区精品综合| 久久精品人人爽人人爽| 国产精品免费看久久久| 久久国产亚洲精品麻豆| 青青青青久久精品国产h| 日本人精品video黑人| 亚洲线精品一区二区三区 | 国产亚洲美女精品久久久2020| 久久精品亚洲乱码伦伦中文| 久久精品99无色码中文字幕| 国产偷伦精品视频| 成人无码精品1区2区3区免费看| 精品久久久久久无码免费| 中文字幕久热精品视频在线| 99re热这里只有精品视频中文字幕| 97视频在线观看这里只有精品 | 久久精品中文字幕大胸| 一本一本久久a久久综合精品蜜桃| 亚洲youwu永久无码精品| 老牛精品亚洲成av人片| 国产成人精品影院狼色在线| 国产日韩亚洲大尺度高清| 亚洲av日韩综合一区二区三区|