Matlab之函數積分
一元函數(一重)積分:
求一元函數積分有quad函數,quadl函數,int函數:
quad和quadl:
quad和quadl兩個函數,他們使用不同的演算法,一般來說quadl更精確一點
例:求的積分:
f=inline('sqrt(4*cos(2*t).^2+sin(t).^2+1)');disp(quad(f, 0, 3*pi));
或者:
f=@(t)(sqrt(4*cos(2*t).^2+sin(t).^2+1));disp(quad(f, 0, 3*pi)); %顯示積分值
quad(f, lower, upper)中的f是被積函數控制代碼,lower是積分下限,upper是積分上限,quad返回積分值,quadl函數的用法類似。
int:
int函數也可以求一元函數,它和quad函數(或quadl函數)的區別是int函數可以求解不定積分,而quad函數(或quadl函數)只能求解定積分。另外,int函數採用的演算法是牛頓--萊布尼茨方法,因此對於複雜的被積函數,int函數求不出。而quad函數採用的演算法是曲線下面積的方法,因此適用於大多數的被積函數。
例:求的積分:
syms x;f=(log(x)/(1+x))^2;disp(int(f, x, 0, 1)); %顯示積分值
注意:用int求解積分時,需要先定義一個符號變數!
int(f, x, lower, upper)中的f是一個含有符號變數的函數,x是符號變數,lower和upper分別是積分的下上限。
二元函數(二重)積分:
求二元函數積分可以使用dblquad函數:
例:求的積分:
f=@(x, y)(y.*sin(x)+x.*cos(y));xmin=pi;xmax=2*pi;ymin=0;ymax=pi;disp(dblquad(f, xmin, xmax, ymin, ymax));
dblquad(f, xmin, xmax, ymin, ymax)中的f是被積函數控制代碼,xmin是最內部積分下限,xmax是最內部積分上限,ymin是外部積分下限,ymax是外部積分上限,dblquad返回積分值。三重積分可以使用triplequad函數,用法類似。