使用quad和quad8函数可以进行自适应递归Simpson求积。积分要具有下面的形式
\[q=\int_{a}^{b} {f(x)dx}\]
以quad函数为例,quad和quad8函数具有下面的语法形式。
q=quad(fun,a,b):求函数fun从a到b的积分近似,误差为1e-6。fun为M文件函数或匿名函数的句柄。函数y=fun(x)应该接受向量变量x并返回结果向量y。
q=quad(fun,a,b,tol):使用绝对误差容限tol代替默认误差容限1.0e-6。当tol的值更大时,需要的计算次数更少,计算更快,但计算精度差一些。
q=quad(fun,a,b,tol,trace):在递归过程中使用非0的trace参数。
[q,fcnt]=quad(…):返回函数计算次数。
【例22】用quad函数求下面积分的数值积分
\[\int_{0}^{2} {\frac{1}{{x}^{3}-2x-5}}dx\]
首先编写函数的M文件myfun.m。
code.matlab
function y = myfun(x)
y = 1./(x.^3-2*x-5);
然后在命令窗口中输入
code.matlab
>> Q = quad(@myfun,0,2)
Q=
-0.4605
也可以直接使用匿名函数的形式,如
code.matlab
>> F = @(x)1./(x.^3-2*x-5);
>> Q = quad(F,0,2);