向各位CSers隆重介紹一位好朋友懒震,它聰明伶俐、優(yōu)雅大方嗤详、功能強(qiáng)大个扰,而且它會(huì)向你坦白一切,因?yàn)樗?a href="http://www.reibang.com/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的各種功能玷禽!
方法2
下載Sage源代碼或安裝包,在Linux下或者在Mac OS下安裝一個(gè)Sage呀打,很方便矢赁。
方法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)
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)幔烛。