在進行符號運算之前,我們可用 syms 指令來定義符號變數,例如:syms a b c x上式定義了四個符號變數 a、b、c、x。定義了符號變數之後,我們就可以使用這些符號變數來形成數學運算式,例如:
f = a*x^2+b*x+c;此時 f 是一個 MATLAB 內建的符號物件,你可以輸入 class(f) 來確認 f 的資料型態。接著我們就可以對 f 進行各種符號運算和處理,例如,若要算 f 的根,可輸入如下:
solve(f)得到的答案就是:
若要求解 x3+ax2+bx+c=0 的三根,可輸入如下:[ 1/2/a*(-b+(b^2-4*a*c)^(1/2))] [ 1/2/a*(-b-(b^2-4*a*c)^(1/2))] solve(f+x^3)此時就可以得到一個複雜的答案,請各位同學自己試試看!
Symbolic Math Toolbox 也可以進行化簡的功能,例如,我們可定義黃金比例如下:
rho = sym('(1+sqrt(5))/2');其中 sym 指令可將字串 '(1+sqrt(5))/2' 轉成 MATLAB 內建的符號物件。(若要將符號物件 rho 轉成一般數值,可用 eval 指令。)接著我們進行下列運算:
g = rho^2-rho-1得到的答案是
若要化簡上述運算式,可輸入如下:(1/2+1/2*5^(1/2))^2-3/2-1/2*5^(1/2) simplify(g)所得結果應該不出所料。(你自己試試看囉。)
我們也可以對矩陣進行符號運算,例如:
syms t A = [cos(t), sin(t); -sin(t), cos(t)]; B = A*A*A 此時顯示的矩陣 B 是
我們可用另一個功能較強大的 simple 指令來對矩陣 B 進行化簡:[ (cos(t)^2-sin(t)^2)*cos(t)-2*cos(t)*sin(t)^2, (cos(t)^2-sin(t)^2)*sin(t)+2*cos(t)^2*sin(t)] [ -2*cos(t)^2*sin(t)-(cos(t)^2-sin(t)^2)*sin(t), (cos(t)^2-sin(t)^2)*cos(t)-2*cos(t)*sin(t)^2] simple(B)經過了幾個複雜的中間過程,最後得到的答案是:
你猜到了嗎?若有興趣,你可以試試看 simple(A^5) 或 simple(A^10)。[ cos(3*t), sin(3*t)] [ -sin(3*t), cos(3*t)]
Symbolic Math Toolbox