1-4 n

我們可使用 int 指令來對符號運算式進行積分,例如:
syms a b c x f = a*x^2+b*x+c; int(f)
傳回的結果是:
1/3*a*x^3+1/2*b*x^2+c*x
上述結果是不定積分的結果,但並未包含不定常數。若要進行定積分的計算,只需加入上下限即可,可見下例:
syms a b c x f = a*x^2+b*x+c; int(f, 1, 2)
傳回的結果是
7/3*a+3/2*b+c
同 diff 指令一樣,MATLAB 會自動決定獨立變數來進行積分。若要改對不同的變數進行積分,可修改如下:
syms a b c x f = a*x^2+b*x+c; int(f, a, 1, 2)
其中 int(f, a, 1, 2) 代表 f 對 a 的定積分,上下限為 1 和 2,傳回的結果是
3/2*x^2+b*x+c
事實上,積分運算比微分運算還要難,所以不一定能夠找到 close-form solution,因此 MATLAB 並不是每一次都能找到積分的答案,例如:
int(sin(tan(x))/x)
此時 MATLAB 會回傳一個警告訊息「Warning: Explicit integral could not be found.」,並顯示結果為:
int(sin(tan(x))/x,x)
上述結果代表 MATLAB 無法找到 int(sin(tan(x))/x) 的 close-form solution。雖然不定積分並無 close-form solution,但我們仍可以用 double 指令來呼叫其他數值方法進行定積分,例如
double(int(sin(tan(x))/x, -1, 1))
傳回的答案是
2.0689

Symbolic Math Toolbox