這兩個函式是MATLAB中的內建函式,是基於梯形法則的數值積分公式,trapz其實就是Trapezoidal(梯形的簡寫)。
使用方法如下:
I=trapz(x,y)
其中x和y分別是自變數和對應的值,例如我們有函式y=x^3-2x-3,為了計算在[0,1]上的積分,可以這麼做:
>> format compact
>> x=0:0.05:1;
>> y=x.^3-2.*x-3;
>> I=trapz(x,y)
I =
-3.7494
我們知道這個函式是可以直接使用經典積分理論計算的,精確值為 -15/4=-3.75,誤差為0.016%
可積函式用這個並沒有太大的意義,但是對於複雜的函式,使用起來就有用的多了。
cumtrapz函式和trapz函式使用方法類似,但是返回的結果不一樣。
前面的cum是cumulation的意思,也就是累積,相當於是不斷地從第一個值累積到當前的結果。
還是以上面的函式為例:
>> x=0:0.1:1;
>> Z=cumtrapz(x,y)
Z =
0 -0.3100 -0.6395 -0.9878 -1.3532 -1.7337 -2.1267 -2.5287 -2.9360 -3.3440 -3.7475
這幾個都是積分結果,下限都是x(0),也就是0,上限分別是0,0.1,0.2,一直到1.0
這兩個函式是MATLAB中的內建函式,是基於梯形法則的數值積分公式,trapz其實就是Trapezoidal(梯形的簡寫)。
使用方法如下:
I=trapz(x,y)
其中x和y分別是自變數和對應的值,例如我們有函式y=x^3-2x-3,為了計算在[0,1]上的積分,可以這麼做:
>> format compact
>> x=0:0.05:1;
>> y=x.^3-2.*x-3;
>> I=trapz(x,y)
I =
-3.7494
我們知道這個函式是可以直接使用經典積分理論計算的,精確值為 -15/4=-3.75,誤差為0.016%
可積函式用這個並沒有太大的意義,但是對於複雜的函式,使用起來就有用的多了。
cumtrapz函式和trapz函式使用方法類似,但是返回的結果不一樣。
前面的cum是cumulation的意思,也就是累積,相當於是不斷地從第一個值累積到當前的結果。
還是以上面的函式為例:
>> x=0:0.1:1;
>> y=x.^3-2.*x-3;
>> Z=cumtrapz(x,y)
Z =
0 -0.3100 -0.6395 -0.9878 -1.3532 -1.7337 -2.1267 -2.5287 -2.9360 -3.3440 -3.7475
這幾個都是積分結果,下限都是x(0),也就是0,上限分別是0,0.1,0.2,一直到1.0