【MATLAB】複數、數列、矩陣和算式

複數運算

z = a + jb

  • real(z):顯示 a 值
  • imag(z):顯示 b 值
  • abs(z):顯示 a^2+b^2
  • angle(z):顯示 atan2(\frac {b}{a}) 值(相角)

數列與級數

x = 1:100 = 1:1:100 = linspace(1,100,100)

  • x = 1:1:100:起始值:階層:終值,從 1 到 100 每次 + 1,等於 1 2 3 4 5 …. 98 99 100
  • linspace(1,5,20):從 1 到 5 中切成 20 等分
  • sum(x):數列全部總和
  • [num, index] = max(x):找出最大值 num 及所在位置 index
  • prod(x):數列所有數的成績
  • randperm(x):將數列打散位置 -> 隨機數列
  • cumsum(x):顯示每個數字與所有前面項的值(舉例:1 2 3 4 5 -> 1 3 6 10 15)

矩陣運算

  • A .* B:不同於 AB,將 A 每一項與 B 對應項相乘,而非正常的矩陣乘法
  • A\BA^{-1}B
  • A/BAB^{-1}
  • det(A):算出 A 的行列值

算式處理

  • syms x y z:宣告 x y z 三個變數
  • sqrt( x^2+y^2+z^2 )\sqrt{x^2+y^2+z^2}
  • v = sym( x*cos(y) ):定義 v = xcos(y)
  • diff(v,x):對 v 做 x 微分 = xcos(y)dx = -xsin(y)
  • subs(v,x,9):將原式 v = xcos(y) 中的 x 以 9 取代成為 9cos(y)
  • eval(v):只要算式對,沒有算不出來的算式!

多項式函數

x = [4 3 2 1] = 4x^3+3x^2+2x+1
y = [1 2 3] = x^2+2x+3

  • roots(x):解出方程式 4x^3+3x^2+2x+1=0* 的所有根(包含虛數解)
  • poly():重組方程式(計算因式分解展開)
    • poly( [1 2 3] ):相當於 (x-1)(x-2)(x-3) = [1 -6 11 -6] = x^3-6x^2+11x-6
  • conv(x,y):多項式乘積 = (4x^3+3x^2+2x+1) * (x^2+2x+3) = [4 11 20 14 8 3] = 4x^5+11x^4+20x^3+14x^2+8x+3
  • deconv(x,y):多項式除法 x 除以 y
  • [R, P, K] = residue(x,y):將 \frac{4x^3+3x^2+2x+1}{x^2+2x+3} 做部分分式展開成 K + \frac{R(1)}{s-P(1)}+\frac{R(2)}{s-P(2)}+\frac{R(3)}{s-P(3)} 的形式
  • polyval(y,5):將 5 帶入 x^2+2x+3 的 x 值得 38
  • polyder(x):將 4x^3+3x^2+2x+1 對 x 取微分得 [12 6 2] = 12x^2+6x+2
  • polyint(x):將 4x^3+3x^2+2x+1 對 x 取積分得 [1 1 1 1 0] = x^4+x^3+x^2+x+0
  • laplace(t*exp(-t)):對 te^{-t} 做拉普拉斯轉換得\frac{1}{(s+1)^2}

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *