Matlab 教材:Matlab 認得複數

Matlab 甚至超越了一般工程型計算器該有的基本功能, 以後我們會看到更多超越的功能,現在先看一個:複數。

譬如我們要 Matlab 計算

sqrt(-1)
而以為他不會,但是他回答 0 + 1.0000i 好厲害,他會耶。 如果讀者看不懂,那就是您的數學基礎還不夠,請跳過這一節。

Matlab 能夠在計算中自動產生複數,使用者也可以直接輸入複數。譬如

1 + 2i
注意,上面的 2i 之間,可以不寫一個 * 號, 寫了也可以。Matlab 的所有運算符號、所有函式,都懂得如何做複數計算。 例如
(1+2i) - (1-2i)
或者
3* (1+2i)
而此刻 abs( ) 計算的是複數的「長度」,例如
abs(3+4i)
根據畢氏定理,我們知道答案的確是 5。

複數的平方根是由「比較係數」法求得, 例如要找 1+2i 的平方根,就計算 (a + bi)2 = 1+2i 然後比較係數得到聯立方程式

a2 - b2 = 1
2ab = 2
Matlab 可以代勞,只要說
sqrt(1+2i)
就行了。

最後,我們談談

(-1)^(1/3)
這是 -1 開三次方根的意思,我們一般會認為答案是 -1,但是 Matlab 說是 0.5000 + 0.8660i。稍加檢查,發現這個數是
\begin{displaymath} \frac12 + \frac{\sqrt3}2 i \end{displaymath}

它也就是複數平面單位圓上角度為 60 度的點。 而 -1 的三次方根其實是 x3 = -1 的根, 我們知道三次多項式在複數中必有三個根 (其中一個實根,兩個共軛複根), -1 只是其中一個根,而 Matlab 計算出來的另是一個複根。

讀者如果學習了夠多的數學,將會知道,其實 Matlab 計算出來的根, 才是「數學上喜歡的」一個根。

習題

  1. 試試看 (1/2 + sqrt(3)/2*i)^2 答案如何?請解釋是否合理?
  2. 試試看 (1/2 + sqrt(3)/2*i)^3 答案如何?請解釋是否合理?
  3. 試試看 (1/2 + sqrt(3)/2*i)^4 答案如何?請解釋是否合理?
  4. 試試看計算 (1/2 + sqrt(3)/2*i)^n ,讓 n 代入 1, 2, 3, 4, ..., 10,請問觀察到什麼現象?能解釋嗎?(教您一個撇步,可以按向上的箭頭, 得到上一步的指令,然後用 [Backspace] 鍵修改次方的數,然後再按 [Enter], 就可以很方便地做實驗了。)
  5. 檢查 (-8)^(1/3)(-1)^(1/3) 的幾倍? 能解釋嗎?
  6. 實驗 abs((-1)^(1/3))abs((-8)^(1/3))abs((-27)^(1/3)) 、 觀察到什麼現象?能解釋嗎?
單維彰 (03/03/06) --- [Prev] [Next] [Up]