Sage: CSers的好朋友

向各位CSers隆重介紹一位好朋友,它聰明伶俐、優(yōu)雅大方、功能強(qiáng)大,而且它會(huì)向你坦白一切,因?yàn)樗?a href="http://www.itdecent.cn/p/eab781d2f8b9" target="_blank">開(kāi)源自由軟件。如果你能交上這樣的朋友,它一定能給你很大的幫助,它的名字就叫Sage。

如何使用Sage?

方法1

通過(guò)瀏覽器訪(fǎng)問(wèn)SageMathCell(無(wú)需帳號(hào)登錄,缺點(diǎn)就是不能保存文檔。)或者SageMathCell(需要通過(guò)帳號(hào)登錄,可保存相關(guān)文檔。),即可享受Sage的各種功能!

SageMathCell

方法2

下載Sage源代碼或安裝包,在Linux下或者在Mac OS下安裝一個(gè)Sage,很方便。

Sage in Mac

方法3

如果你是Windows用戶(hù),其實(shí)也很方便,卸載Windows再裝一個(gè)Linux唄。或者用方法1。

Sage能干什么?

1. 計(jì)算

實(shí)際情況就是,我們學(xué)了計(jì)算機(jī),懂這個(gè)那個(gè),但是不精通計(jì)算,對(duì)不?Sage主要在計(jì)算上幫我們大忙。你總不會(huì)以為下面這些工作你很“精通”吧?

例子0,來(lái)一個(gè)容易的,求兩個(gè)整數(shù)之和或者積。
sage: 123456789 + 987654321 1111111110 sage: 111111111*111111111 12345678987654321

例子1,想知道2的1000次方是多少?
sage: 2**1000 10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376

例子2,想知道2的1279次方減1是否素?cái)?shù)?
sage: is_prime(2**1279 - 1) True
例子3,對(duì)函數(shù) f(x) = x^x 進(jìn)行求導(dǎo)。
sage: derivative(x^x, x) x^x*(log(x) + 1)

例子4,對(duì)某個(gè)矩陣求其逆矩陣,或者求矩陣的特征值。
sage: A = Matrix([[1,0,0,0],[1,1,0,0],[1,2,1,0],[1,3,3,1]]) sage: A.inverse() [ 1 0 0 0] [-1 1 0 0] [ 1 -2 1 0] [-1 3 -3 1] sage: A.eigenvalues() [1, 1, 1, 1]
例子5,作圖。一個(gè)命令作出的正態(tài)分布圖。
sage: plot(gs(x, 3, 1), x, 0, 10)

正態(tài)分布圖

gs這個(gè)函數(shù)定義如下,完全是Python的語(yǔ)法:
def gs(x,mu,sigma): a = 1/(sqrt(2*3.1415926)*sigma) b = -(x - mu)^2/(2*sigma^2) return a*exp(b)

當(dāng)然,例子還有很多,數(shù)不勝數(shù)。然而,怎么舉例都顯得小看了Sage,因?yàn)樗鼛缀鯚o(wú)所不能。其實(shí),學(xué)習(xí)使用Sage除了讓它幫忙計(jì)算,還主要因?yàn)樗梢詭椭覀?.....

2. 教學(xué)

Sage可以幫助我們學(xué)習(xí)。學(xué)什么?使用Sage進(jìn)行教學(xué)的大學(xué)課程包括但肯定定不局限于此:

a、高等數(shù)學(xué): 求導(dǎo)數(shù)、求積分、求極限、作圖.....
b、線(xiàn)性代數(shù): 高斯消元、Eigenvalue、Determinant.....
c、概率論
d、算法
e、計(jì)算機(jī)安全學(xué)
f、組合數(shù)學(xué)、數(shù)論、離散數(shù)學(xué)
g、抽象代數(shù)

Sage在教學(xué)中的好處就是,把所有的理論都通過(guò)可以實(shí)踐的程序呈現(xiàn)出來(lái),把抽象的內(nèi)容以直觀(guān)的方法表現(xiàn)出來(lái),增強(qiáng)課本的可讀性,增強(qiáng)學(xué)習(xí)的趣味性,也可提高學(xué)習(xí)者的主動(dòng)性。

3. 編程

Sage是一門(mén)強(qiáng)大的編程語(yǔ)言,語(yǔ)法與Python基本相同。你甚至可以把Sage理解為擴(kuò)展了非常多功能的Python。同時(shí),Sage與很多計(jì)算機(jī)軟件、程序設(shè)計(jì)語(yǔ)言有非常優(yōu)雅的結(jié)合,比如,Sage的輸出可以方便地與LaTex結(jié)合在一起。

由于Python已經(jīng)得到廣泛應(yīng)用,無(wú)論是老程序員還是新入門(mén)者,選擇Sage都顯得非常恰當(dāng)。老程序員會(huì)更容易上手,無(wú)需改變什么;而新入門(mén)者也無(wú)需擔(dān)心選擇Sage所帶來(lái)的局限性。

4. 科研

Sage當(dāng)然是科研的好幫手:統(tǒng)計(jì)、高精度計(jì)算、仿真建模等。想?yún)⒓哟髮W(xué)生數(shù)學(xué)建模比賽的同學(xué)能不關(guān)注?

如何學(xué)習(xí)Sage

目前國(guó)外大量的教材支持Sage的使用,因?yàn)镾age是開(kāi)源的自由軟件。因此,建議是在網(wǎng)上檢索相關(guān)的教材。其次,Sage的網(wǎng)頁(yè)上已經(jīng)集結(jié)了海量的教材,微積分、線(xiàn)性代數(shù)、數(shù)論等各種指南應(yīng)有盡有。加上,Sage的使用本身就非常簡(jiǎn)單,稍微掌握一點(diǎn)命令就可以工作,入門(mén)門(mén)檻極低,大家完全有能力自己學(xué)習(xí)。也許這個(gè)簡(jiǎn)明友好的入門(mén)能立即拉近你與Sage的距離,請(qǐng)不要猶豫地點(diǎn)開(kāi)它!這一份教程也非常不錯(cuò),只可惜,看起來(lái)它一直停留在沒(méi)有完成的狀態(tài)。

另外,如果有人向你推薦MATLAB,你就可以在向他請(qǐng)教的同時(shí),適時(shí)向他推薦一把Sage:開(kāi)源的,免費(fèi),別老用盜版。

Sage的缺點(diǎn)

Sage的缺陷也是很明顯的,主要體現(xiàn)在:很多功能還有待完善;有不少功能需要統(tǒng)一或者協(xié)調(diào)一致性;開(kāi)源同時(shí)也帶來(lái)了開(kāi)發(fā)的困難。W. Stein,Sage的一位重要的開(kāi)發(fā)者對(duì)Sage的未來(lái)也表示了擔(dān)憂(yōu)和負(fù)面的評(píng)價(jià)。他很有可能已經(jīng)離開(kāi)高校,成立公司專(zhuān)注于Sage開(kāi)發(fā),因?yàn)闊o(wú)法獲取資助與終身教職,戳開(kāi)這里也許可以看一點(diǎn)八卦。

困難是有的,缺點(diǎn)是有的。然而,只要人類(lèi)還充滿(mǎn)對(duì)自由的渴望,開(kāi)源自由軟件就會(huì)有美好的未來(lái)。

資源

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容