MATLAB 另外提供二種積分函數,它們分別是辛普森法
quad
和牛頓-康茲法
quad8。三種方法的精確度由低
而高,分別為
trapz,
quad,
quad8。
由於這二種方法依據的積分法不同於梯形法,因此它們的語法就和
trapz
不同;其語法為 quad('function',a,b)
(quad8語法相同),其中function是一已定義函數的名稱(如sin,
cos,
sqrt,
log
等),而 a,
b是積分的下限和
上限。和
trapz比較,quad,
quad8不同之處在於這二者類似解析式的積分式,只須設定上下限及定義要積分
的函數;而
trapz則是針對離散點型態的數據做積分。
我們看一簡單積分式
以下為 MATLAB 的程式
>> a=0; b=0.5;
>> kq=quad('sqrt',a,b)
kq =
0.2357
>> kq8=quad8('sqrt',a,b)
kq8 =
0.2357
再來看一個較複雜的積分式
>> x=-1:0.17:2;
>> y=humps(x);
>> area=trapz(x,y)
area =
25.9174
>> x=-1:0.07:2;
>> y=humps(x);
>> area=trapz(x,y)
area =
26.6243
>> area=quad('hump',-1,2)
area =
26.3450
>> area=quad8('hump',-1,2)
area =
26.3450
