+、−、*、/)與指數(^),
在輸入窗格中輸入指令,再按下 enter 鍵, Octave 就會算出結果,並顯示在結果窗格。例如:想要計算 2 加上 3 乘以 5 的平方,則輸入
2 + 3 * 5^2
輸入完成後,按下 enter 鍵, Octave 就會執行輸入的指令,接著輸出結果
ans = 77
注意: Octave 一般會預設將結果儲存在變數 ans 中。
( 2 + 3 ) * 7
輸出結果為
ans = 35
cos(): cos 函數,輸入值為角度(單位為徑度量) cosd(): cos 函數,輸入值為角度(單位為度度量) sin(): sin 函數,輸入值為角度(單位為徑度量) sind(): sin 函數,輸入值為角度(單位為度度量) tan(): tan 函數,輸入值為角度(單位為徑度量) tand(): tan 函數,輸入值為角度(單位為度度量) acos(): cos 的反函數,輸出值為角度(單位為徑度量) acosd(): cos 的反函數,輸出值為角度(單位為度度量) asin(): sin 的反函數,輸出值為角度(單位為徑度量) asind(): sin 的反函數,輸出值為角度(單位為度度量) atan(): tan 的反函數,輸出值為角度(單位為徑度量) atand(): tan 的反函數,輸出值為角度(單位為度度量) exp(): 指數函數 log(): 自然對數 log10(): 以10為底的對數 abs(): 絕對值 sqrt(): 平方根 help 跟 doc,這兩個指令在有點不確定函數用法時很好用。
help 是簡單查詢,而 doc 是開啟 Octave 的線上參考手冊,除了解釋函數或指令,還會給出更多使用方法以及範例。
像是如果不記得 cosd() 這個函數的意思,就可以輸入
help cosd
然後得到以下結果
-- cosd (X)
Compute the cosine for each element of X in degrees.
Returns zero for elements where '(X-90)/180' is an integer
;)
舉例來說,如果做這樣的計算
a = 3
b = 5
c = 7
(a + b) * c
然後得到以下四項結果
a = 3
b = 5
c = 7
ans = 56
但是
a = 3;
b = 5;
c = 7;
(a + b) * c
然後卻只會得到一項結果
ans = 56
a = 3
b = (a + 7) / 6
c = a + b^2
A = [0 1 3 -3]
或是輸入
A = [0, 1, 3, -3]
都可以得到以下的結果
A =
0 1 3 -3
若是輸入
A = [0; 1; 3; -3]
則會得到
A =
0
1
3
-3
a(i) 來表示。 舉例來說:
A = [7 8 2 9]
A(4)
結果為
A =
7 8 2 9
ans = 9
因此,我們也可以只更改向量中的某一個元素,例如,我們想把已知向量中的第3個元素換掉,我們可以這樣做。
A = [7 8 2 9]
A(3) = 1
結果為
A =
7 8 2 9
A =
7 8 1 9
dot( , ) 即可。可以直接放入兩個向量,或是令成變數再做內積都可以。
例如:我們想做兩個向量 $\vec{v}=[10, 4, -1, 8]$ 跟 $\vec{u} = [-5, -2, 3, -4]$ 的內積,那麼只要輸入
dot( [10, 4, -1, 8], [-5, -2, 3, -4] )
或是
v = [10, 4, -1, 8]
u = [-5, -2, 3, -4]
dot(v, u)
最終都可以得到答案
ans = -93
norm() 即可。一樣是可以直接放入向量,或是令成變數再放入都可以。
例如:我們想求向量 $\vec{v}=[10, 4, -1, 8]$ 的長度 $|\vec{v}|$,那麼只要輸入
norm( [10, 4, -1, 8] )
或是
v = [10, 4, -1, 8]
dot( v )
最終都可以得到答案
ans = 13.454
注意一下,由於長度須從開根號得到,所以這邊給出的值只是近似值,也就是 Octave 會把數值四捨五入到小數點後 3 位。(想要更改小數點後面的長度設定,請查閱 format)pi
cos(): cos 函數,輸入值為角度(單位為徑度量) cosd(): cos 函數,輸入值為角度(單位為度度量) acos(): cos 的反函數,輸出值為角度(單位為徑度量) acosd(): cos 的反函數,輸出值為角度(單位為度度量)
cosd( 60 )
cos( pi / 3 )
的結果為
ans = 0.5000
ans = 0.5000
而求 $\cos^{-1}(0.5)$ 也是一樣有兩種:
acosd( 0.5 )
acos( 0.5 )
第一個的結果表示的是 $60^{\circ}$,第二個的結果表示的是 $\frac{\pi}{3}$ 的近似值
ans = 60.000
ans = 1.0472
A=[0 1 3 -3; 2 4 5 -1;4 -2 3 5]
就可以得到矩陣了
A =
0 1 3 -3
2 4 5 -1
4 -2 3 5
然後也跟 1-2 時一樣,矩陣內部元素也是有編號的,像是
$A =
\begin{bmatrix}
a_{1,1} & a_{1,2} & ... & a_{1,n}\\
a_{2,1} & a_{2,2} & ... & a_{2,n}\\
\vdots & \vdots & \ddots & \vdots\\
a_{m,1} & a_{m,2} & ... & a_{m,n}\\
\end{bmatrix}$A(i,j) 來表示的。
像是剛剛上面那個例子中的矩陣 A ,他的 A(2,3) 的值就是 5 。 A(i,:),
如果想取出矩陣 A 的第 j 個 column vector,便可以用 A(:,j)
舉例來說:
A = [0 1 3 -3; 2 4 5 -1;4 -2 3 5]
a = A(2,3)
v = A(:,3)
u = A(2,:)
A =
0 1 3 -3
2 4 5 -1
4 -2 3 5
a = 5
v =
3
5
3
u =
2 4 5 -1
至於矩陣相乘、矩陣相加減、矩陣的常數乘法都很直觀。
A = [0 1 3; 2 4 5;4 -2 3]
B = [3 1 3; 2 9 7;4 -6 3]
C = A + B
D = 5 * A
E = A * B
A =
0 1 3
2 4 5
4 -2 3
B =
3 1 3
2 9 7
4 -6 3
C =
3 2 6
4 13 12
8 -8 6
D =
0 5 15
10 20 25
20 -10 15
E =
14 -9 16
34 8 49
20 -32 7
當你打完一個矩陣,但是忘記它的尺寸 (size) 的時候,你可以在 Octave 裡查詢,只要使用 size()就可以
A = [0 1 3 8 1; 2 4 5 1 0;4 -2 3 6 7]
size(A)
A =
0 1 3 8 1
2 4 5 1 0
4 -2 3 6 7
ans =
3 5
zeros(m,n),
而一個 $n \times n$ 的 zero matrix 可以寫成 zeros(n,n) 或者是簡單的 zeros(n) 都可以。A = zeros(2,4) B = zeros(3)
所謂的 identity matrix,根據我們課本上的定義,是一個 $n\times n$ 矩陣,其中主對角線 (左上到右下) 上的元素為 1 ,其餘的元素為 0 。 在 Octave 上會用A = 0 0 0 0 0 0 0 0 B = 0 0 0 0 0 0 0 0 0
eye(n) 表示 $n\times n$ identity matrix 。
不過 Octave 也支援使用 eye(m,n) 形式的矩陣。同學們可以自己用來乘上其他矩陣試試。
A = eye(3) B = eye(2,4) C = eye(4,2)
A = Diagonal Matrix 1 0 0 0 1 0 0 0 1 B = Diagonal Matrix 1 0 0 0 0 1 0 0 C = Diagonal Matrix 1 0 0 1 0 0 0 0
transpose( ),或是當矩陣裡的係數均為實數的時候,可以也可以只幫矩陣加上一個'
A = [1 2 3 4] B = transpose(A) C = A'
A = 1 2 3 4 B = 1 2 3 4 C = 1 2 3 4
rref() 即可找出矩陣的 reduced row-echelon form。像是 1-4 的習題第 5 題。只要輸入
就可以輕鬆算出答案了。A = [-1 3 0 1 4;1 -3 0 0 -1;2 -6 2 4 0;0 0 1 3 -4] rref(A)
不過求聯立方方程組的解,這部分就還是要麻煩各位同學自行判斷了。A = -1 3 0 1 4 1 -3 0 0 -1 2 -6 2 4 0 0 0 1 3 -4 ans = 1 -3 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1
inv()像是課本 1-5 的例子 4,就是這樣計算的:
A = [ 1 3 -2;2 5 -3; -3 2 -4]
inv(A)
就可以輕鬆算出答案了。
A =
1 3 -2
2 5 -3
-3 2 -4
ans =
14 -8 -1
-17 10 1
-19 11 1
或者是利用 rref 的性質
A = [ 1 3 -2;2 5 -3; -3 2 -4]
B = [ A, eye(3)]
rref(B)
也可以看出 A 的 inverse matrix 就出現在 rref(B) 的右半側。
A =
1 3 -2
2 5 -3
-3 2 -4
B =
1 3 -2 1 0 0
2 5 -3 0 1 0
-3 2 -4 0 0 1
ans =
1 0 0 14 -8 -1
0 1 0 -17 10 1
0 0 1 -19 11 1
不過像是課本 1-5 例題 2 題這種給定 $A\vec{x}=\vec{b}$ 要求 $\vec{x}=A^{-1}\vec{b}$ 的題目,我們有兩種做法:
首先是確認我們的矩陣是否有 inverse matrix,確定好了之後,我們可以用 inv(A) * b 或者是 A \ b 來求解。
A = [2 9;1 4]
b = [-5; 7]
v = A \ b
u = inv(A) * b
看得出來,這兩種算法得到的答案是一樣的。
A =
2 9
1 4
b =
-5
7
v =
83
-19
u =
83
-19