Matlab 教材:Matlab 接受變數
Matlab 比工程型計算器更好,除了因為他會計算複數之外,
還因為他接受變數 (variable)。
簡化來說,Matlab 的變數有兩個屬性:
- 它的名字
- 它的值
想像變數是一口箱子,在箱子上貼了標籤,表明它的名字,
箱子裡面就放著它的值。
箱子本來不存在,只要您在 Matlab 操作視窗內「呼喚」它的名字,
就像阿拉丁神燈裡面的精靈一樣,呼啦,它忽然就出現了。
譬如您說
foo
Matlab 可能回應 Undefined function or variable 'foo',
這就是說 Matlab 沒有一個名叫 foo 的函式,也沒有一口名叫 foo 的箱子。
但是,只要說
foo = 5
Matlab 就自動製造了一口名叫 foo 的箱子,並且在箱子裡放了 5。
之後,您可以再說
foo
Matlab 就會告訴您,foo 的值是 5。
把一個數值放進箱子的學名叫做 指派 (assign),
Matlab 用 = 作為指派符號。用法是
變數名字 = 數值
如果變數名字原來不存在,Matlab 就臨時開一口新箱子給您;
如果它原來就存在,Matlab 放進新的數值、舊的便不見了,
就好像新的數值「覆蓋」了舊的數值。
因為箱子裡面的數值很容易改變,所以我們稱它為「變數」。
指派的數值可以是一個常數,例如
foo = 2.7183
或者任何計算的結果,例如
foo = 2.7183^(-2)
或者
foo = exp(i*pi)
變數的顯然用處就是節省打字。
如果某個數值要一用再用,可以利用變數把它存起來,將來再用。
譬如可以說
x = 1/7
然後用
7*x
來檢查 7x 是不是可以還原為 1?
啊哈,從這個例子我們看到,變數的值可以拿來計算,就好像之前我們使用常數做計算一樣!
那就趕快試試看
x + x + x + x + x + x + x
或者
1 - (x + x + x + x + x + x + x)
吧!
更好玩的實驗,有如先說
x = (-8)^(1/3)
然後再說
x^3
看看 Matlab 是不是真的計算了 -8 的三次方根?
或者是
t = pi/4, exp(i*t), cos(t) + sin(t)*i
這樣子 Matlab 會連續做三件事:
- 先把 pi/4 指派給 t
- 然後計算 exp(i*t)
- 然後計算 cos(t) + sin(t)*i
讀者可以用向上的箭頭將前一個指令取出來,再用左右箭頭、[Backspace]、[Delete]
等鍵修改指令,然後按 [Enter] 再執行。如此這般,您可以依序實驗
- t = pi/6, exp(i*t), cos(t) + sin(t)*i
- t = pi/4, exp(i*t), cos(t) + sin(t)*i
- t = pi/3, exp(i*t), cos(t) + sin(t)*i
- t = pi/2, exp(i*t), cos(t) + sin(t)*i
- t = 2*pi/3, exp(i*t), cos(t) + sin(t)*i
- t = 3*pi/4, exp(i*t), cos(t) + sin(t)*i
- t = pi, exp(i*t), cos(t) + sin(t)*i
觀察這些計算的結果,有沒有發現什麼規則呢?
最後,請試試看
x = acos(2)
然後驗算
(exp(i*x) + exp(-i*x))/2
您還可以做好多實驗:
- x = acos(0), (exp(i*x) + exp(-i*x))/2
- x = acos(0.25), (exp(i*x) + exp(-i*x))/2
- x = acos(1), (exp(i*x) + exp(-i*x))/2
- x = acos(3.14), (exp(i*x) + exp(-i*x))/2
- x = acos(16), (exp(i*x) + exp(-i*x))/2
習題
- 實驗
- t = pi/6, exp(i*t), cos(t) + sin(t)*i
- t = pi/4, exp(i*t), cos(t) + sin(t)*i
- t = pi/3, exp(i*t), cos(t) + sin(t)*i
- t = pi/2, exp(i*t), cos(t) + sin(t)*i
- t = 2*pi/3, exp(i*t), cos(t) + sin(t)*i
- t = 3*pi/4, exp(i*t), cos(t) + sin(t)*i
- t = pi, exp(i*t), cos(t) + sin(t)*i
觀察這些計算的結果,有沒有發現什麼規則呢?
- 實驗
- x = 1, sin(pi*x)/x
- x = 0.1, sin(pi*x)/x
- x = 0.01, sin(pi*x)/x
- x = 0.001, sin(pi*x)/x
- x = 0.0001, sin(pi*x)/x
觀察這些計算的結果,請猜測
(寫出它的數值,到小數點下第四位,並且猜測真正的答案應該是多少。)
- 實驗
- x = 1, (exp(x)-1)/x
- x = 0.1, (exp(x)-1)/x
- x = 0.01, (exp(x)-1)/x
- x = 0.001, (exp(x)-1)/x
- x = 0.0001, (exp(x)-1)/x
觀察這些計算的結果,請猜測
(寫出它的數值,到小數點下第四位,並且猜測真正的答案應該是多少。)
單維彰 (03/03/06) ---