Yenlung的記事

星期六, 12月 24, 2005

[Maxima] Maxima 求梯型矩陣

每一個矩陣 A 都可以用高斯消去法得到它對應的梯型矩陣, 即 row echelon form。如果我們在 Maxima 定義了一個矩陣 A, 要求梯型矩陣是用

echelon(A);


不過, 我們似乎不能直接求得 reduced row echelon form。

[Google] 用 Google 換算匯率

我知道有很多軟體可以換算匯率。可是, 你如果只是偶而要知某個產品在美國(香港, 日本, whatever)賣多少, 想算算是合台幣多少。你可能一時找不出方法來換算, 也可能要再開你那換算匯率的小程式也麻煩。

其實, Google 可以做這件事。現在很多人用電腦的習慣就是一開機就掛網, 所以用 Google 來處理類似這種事是很合理的。如果你用 Firefox, Safari 等有 Google Search Box 的就更方便;IE 的話可以考慮用 Google Toolbox。

我們用個例子說明, 相信更容易瞭解。比方說, 你想知道美金 1500 合台幣多少, 那就在 Google 的搜尋裡打入:

1500 USD in TWD


Google 就會告訴你答案。我把個人常用的貨幣名稱縮寫列出來, 以供參考:


  • JPY 日幣

  • HKD 港幣

  • EUR 歐元

  • CNY 人民幣

星期四, 12月 22, 2005

[咖啡]家用 Espresso 機

要好的 espresso 不是件容易的事, 好在現在有越來越多好機器可以選擇。

最簡單的分法, espresso 有所謂的幫浦機和蒸氣機。蒸氣機根本不能做真正的 espresso, 所以我們暫且不要理它。

那一個像樣的幫浦機大概是多少呢?

有點樣子的大概會是兩萬台幣左右。

高檔一點大概四到八萬。

真正一流的大概要十幾二十萬。

如果你只是想試試自己咖啡熱忱, 也可以考慮更便宜的。如果發現自己不能滿足, 再來加入追尋終極咖啡的行列。

[咖啡] 終極咖啡的追尋

很多人誤解 espresso。

我常常看到某些咖啡店的訪問, 老闆說他不喜歡 espresso, 而喜歡 sypon 那種手工的咖啡。如果說的是饅頭, 就好像在說 syphon 的是手饅頭, espresso 是那種便宜的機器饅頭。

當然啦, 全世界真的把 espresso 做得好的店真是很少, 做得好的店也不能把每一杯都做得如同聖杯一樣, 所以有這樣的想法也不能說奇怪。

只是, 把 espresso 當成一種沒什麼深度的咖啡, 是完全不正確的想法。

Espresso 可以說是把咖啡往前大步推進的一種沖泡方式。因為, 它最有希望把咖啡最微細的美妙之處找出來, 最可能把咖啡帶到以前完全達不到的境界。

西雅圖一家叫 Vivace 咖啡店的老闆, David Schomer, 小時候常常跟著媽媽到超市買咖啡。美國超市都有很多咖啡豆, 還可以在超市裡現磨。磨豆子的香味讓小 David 心存幻想, 覺得咖啡一定是非常美妙的飲品。終於, 到了他可以喝咖啡的年齡, 他迫不及待的喝了一口, 差一點沒有吐出來!他想:

「人們在沖煮咖啡時一定做錯了什麼, 要不然聞起來這麼香的咖啡, 怎麼會喝起來這樣難喝?」

於是, 他展開了一生的追尋, 尋找可以把香味帶入咖啡的沖泡方式。多年之後, 他也找到這個答案。沒錯, 正是 espresso。

真正 espresso 的專家, 不時會發現完全無法以其他方法得到的咖啡美妙之處, 比方說, 一杯香味在咖啡中的咖啡, 一杯不加糖卻如糖漿般的咖啡, 一杯直接衝上味覺頂端的咖啡。這是為什麼有許多人, 願意花費大量的精神, 去尋找一杯完美的咖啡。

只可惜, 要做出好的 espresso 並不容易。好的豆子, 好的烘焙方式, 好的機器, 當然, 更重要的是一位好的咖啡調理師。你必需注意每一個細節。這也是為什麼想要追求完美聖杯的人, 往往是不斷想辦法尋找最好的機器, 最好的磨豆機, 也自己烘豆子。

就算是這樣, 大多數的時候, 得到的只能說比一般亂來咖啡店好得多的 espresso。真正完美的作品可遇不可求。然而, 或許是真的遇見過完美的咖啡, 或著深信 espresso 的完美傳說, 許多咖啡迷仍然樂此不疲。

Espresso 是全新的咖啡世界, 也是咖啡的新希望。

星期六, 12月 03, 2005

[Singular] 工作環的設定

在計算代數幾何的專業軟體和其他數學軟體不太一樣的地方, 就是要先設定「工作環」, 也就是你要在什麼樣的環下工作。更清楚的說, 是你要在什麼樣的多項式環下工作。一般來說, 就是 K[x1,x2,x3] 這類型的多項式環, 而你要告訴 Singular 三件事:


  • 你要選哪個體 K? 實數, 複數, 有理數, 有限體。

  • 你的變數有哪些? 比方說 x, y, z 等等。

  • 你選用的 monomial ordering 是什麼? 比方說 lex order, graded lex order 等等。



我們舉例來說更加清楚:


ring r=0, (x,y,z), lp;


這裡的意思如下:


  • 第一項 0 表式用特微值 0 的體 (這裡指有理數), 你還可以用 real 表實實, complex 表複數等。

  • 第二項 (x,y,z) 表是要用 x,y,z 三個變數, 並依此為由大而小的順序。

  • 第三項 lp 表最常用的 lex order, 另外如果是 graded lex order 是 Dp。

星期六, 11月 12, 2005

[Singular] Singular 在 Windows 上的安裝

我推薦的 Singular 執行方式是搭配 emacs 使用。當然, 我們並不一定要非常會用 emacs, 只是 emacs 執行 Singular 看來比較舒服。Singular 並沒有像 Maxima 那樣漂亮界面選擇, 所以如果不是需要比較專業的 Groebner Basis 計算, 我還是推薦 Maxima。

要在 Windows 上使用 Singular, 我們必需要先安裝 Cygwin:

Cygwin

Cygwin 好像放了個類似 Unix 的系統到 Windows 中。這讓你不用離開 Windows, 就可以享有許多 Unix 系統下的應用程式。

在上面那個網站 download Cygwin 的 setup 之後, 執行它, 選擇個 ftp server, 就可以安裝。

除了 Cygwin 預設安裝, 我們還要安裝下面的套件:

xorg-x11-base: (在 X11 之下) 以後可執行 Unix 系的視窗程式 (在這是為了 emacs)
emacs-X11: (在 Editor 之下)安裝 X11 版的 emacs
singular-base: (在 Math 之下)安裝 Singular

裝好之後, 以後執行 Cygwin, 你就會看到類似 DOS 的文字視窗出現。此時打入


startx


就會出現 xterm, 讓你準備執行 X-Windows 的程式。在 xterm 裡面下


ESingular


就可以執行 emacs 及 Singular。

[Singular] 代數幾何專業軟體

我本來想用 Maxima 來做全功能數學教學就好, 不過最近發現一個驚人的事實:

看來 Maxima 計算 Groebner Basis 能力很差。

所謂能力差並不是說 Maxima 算得很慢, 畢竟如果只是教學上的例子, 會算就可以了。問題是, Maxima 一直沒有健全的 Groebner Basis 模組, 至少還沒有標準內建型的。

於是, 如果要計算 Groebner Basis, 我們不得不求助其他軟體。我個人的選擇是 Singular。

Singular

星期三, 11月 09, 2005

[Maxima] Maxima 的簡介

Maxima 是一個全功能電腦代數系統 (Computer Algebra System, 簡稱 CAS) 。電腦代數系統大家比較熟悉的是 Mathematica, Maple 等等。電腦代數系統最讓人稱道的是符號計算, 也就是從小我們數學課計算的方式, 而不像平常的電腦/計算機系統都只能做數值的計算。

在所有 CAS 當中, 我要特別推薦 Maxima 的原因有三個:

(1) Maxima 是自由軟體, 不用花錢, 馬上可以使用。Mathematica, Maple 都很貴, 在台灣更是沒有合理的教育授權 (據我所知學生大約要花一萬元左右才可合法在他自己電腦使用 Mathematica/Maple), 這不是一般學生可付擔的花費。就算學校/系上有錢, 所有電腦室都放一套 Mathematica/Maple, 我想還是不如學生都可自己在家上機學習方便。又另有很多老師都假定學生可以「自行取得」非法軟體, 我想是最糟糕的。我們明明有很好的, 免費的替代品, 為什麼不用呢?

(2) Mathematica, Maple 事實上就是受到 Maxima 的前身, Macsyma 影響而有的。Macsyma 正是第一套 CAS 軟體。所以學習 CAS, 從始祖學起, 實在再合適不過。因為這觀念基本上是一樣的, 以後就算要改用 Mathematica, Maple 也很容易。

(3) Maxima 雖然免費, 但功能相當完整。基本的像是微分積分, 矩陣計算, 二維三維繪圖等, 全部都有, 更有許多高階的應用。要在免費軟體, 甚至商用軟體中找功能這麼完整的, 其實很少。而且 Maxima 在主要平台如 Windows, Mac OS, Linux 全部都有, 你不用轉換你喜歡的平台, 就可以享有高功能的數學軟體。

看到這, 你可能有個疑問, 「如果 Maxima 這樣好, 為什麼 Maxima 好像沒什麼名氣呢?」很重要的原因是, 自由軟體版的 Maxima 是到 1998 年才被授權的! Macsyma 原本是 MIT 一個實驗室發展的軟體, 後來 MIT 決定要將這個軟體商業化。這舉動正是讓 Richard Stallman 決定要推動自由軟體的重要原因。

1982 年, University of Texas, Austin 的教授 William Schelter 決定自行開發 Macsyma 的自由版本, 也就是這裡介紹的 Maxima。這個版本在有商業版 Macsyma 的情況, 自然難以得到正式授權, 因此只有少部份的人知道並使用 Maxima。Schelter 教授就在這不知何時才能讓他的 Maxima 自由流傳的情況下, 仍堅持他的理想, 繼續 Maxima 的開發長達 16 年! 終於, 1998 年, Maxima 才得到正式授權。

遺憾的是, Schelter 教授在 2001 年突然過逝。我們現在在 Maxima 的 mailing list, 可以看到 Schelter 教授過逝之前, 還在回答網友對 Maxima 的問題。

還好, Maxima 已經是合法的自由軟體, 所以有一批熱心的開發人員, 繼續開發, 推出更好的 Maxima。

Maxima 的官方網頁

星期一, 10月 24, 2005

[Windows] 令人滿意的 Application Launcher

在 Winodws 系統,你都是怎麼執行程式的呢?

我們可以用[開始]功能表去找,但不久之後你就會受不了。

我們可以建個捷徑,放在桌面上。但不久之後你就會發現滿桌都是捷徑...

其實,要執行一個軟體,我們通常知道它叫什麼名字。至少,我們會記得這個軟體一部份的名稱。所以呢,最容易找到,執行這軟體的方式,應該就是打幾個字,電腦就幫我們執行。

比方說,我打 Word,電腦就執執行 Word。

我打 Power,電腦會找出 Power Point等等。

在 Mac 上有這麼一個程式,叫 QuickSilver。我對這軟體的依賴程度,已經到了沒有就差不多不會用電腦的感覺。

Windows 有沒有這樣設計的 Application Launcher 呢?答案是,有,而且和 QuickSilver 一樣是免費的。這軟體就是:

Find and Run Robot

Find and Run Robot 是免費的,不過你需要註冊才可以。如果沒有樂捐一點小錢,註冊碼在 180 天之後會失效,不過你還是可以再要新的註冊碼。

使用上很容易,按 Alt-Space, Find and Run Robot 就會執行。此時打入程式全部或部份名稱,電腦就會自動找出符合的程式。如果有一個以上,可以按數字鍵選擇要執行的程式。就這麼容易!

星期四, 2月 17, 2005

職業倫理是專業的一部份

這個世界上有幾種很特別的人,其中兩種是醫生和教師。

如果醫生或教師出了什麼問題,就會有兩派的看法出現。第一種是以超高的道德標準來看待醫生和老師。這可能是主流的想法,認為繼然身為醫生,或是老師,就要有什麼救人第一啦,可為學生典範啦什麼什麼的。另一個看法是醫生老師也是人,當然不能要求他們...

兩種看法都有點道理,但是都不完全正確。

首先,過度的道德標準是不合理的。醫生和老師也是人,是一個平凡人的職業。我們為什麼要要求他們像聖人一般?如果一個醫生真的需要一個月執班十五天,甚至更多。我不知道有多少家庭可以承受?沒有錯,如果有醫生是很高興的去做這件事,我們肯定他奉獻的精神,肯定他的家庭親人為此的犧牲。但,我們不能要求所有醫生都這樣。老師也是一樣。我們沒有理由要求老師是一位聖人。

所以,基本上我是支持醫生老師也是人,也是平凡人的看法。不過,這不是說,醫生可以病人來了不管他,老師也可以無限制的和胡作非為。

他們必需遵守他們的「職業倫理」。事實上,所有職業都有職業倫理。比方說銀行不可以任意把客戶資料讓他人知道,計程車司機不可以短程拒載等等。醫生和老師當然都有自己的職業倫理。要求醫生要把每個病人視為自己親人,這就太過份(雖然做得到的醫生我們會很讚嘆)。但是,應該要負責的病人,醫生就應該要去認真醫治,這是職業倫理。

我不太認同老是用「沒有醫德」來批評一位醫生。因為「醫德」會讓我們以為是道德的問題,也會讓我們以為這和專業無關。我以為,我們不應該用太過份的道德標準來批評一位老師,一位醫生,甚至任何一個專業工作者。但是,我們應該慢慢建立,某些專業,應該具備什麼樣的職業倫理的概念。更重要的是:

我們必需要把職業倫理當做專業的一部份!

一個醫生的專業,絕對不是只有手術技巧,看病的能力。同樣的,一位老師的專業,絕對不應只是他教課講述的能力,他的論文功力。他們還需要知道,在什麼樣的情況,他應該如何做,不應該如何做。我再說一次,職業倫理絕對是專業的一部份。