matlab求取积分

声明:引用请注明出处http://blog.csdn.net/lg1259156776/

对于Matlab的使用情况常常是这样子的,很多零碎的函数名字很难记忆,经常用过后过一段时间就又忘记了,又得去网上查,这样就容易造成效率比较低下。加强记忆的最好办法就是将这些零碎的用法随着在实际编程开发中的应用进行总结,当需要相应的功能而又记不起来时,就可以从总结的博文中快速的找到并使用,这会是一种比较好策略。


matlab求取函数积分有两种方法,一种是符号运算,另一种是数值运算。

符号积分

int(f,v)

int(f,v,a,b)

计算f(t)=exp(−t2)[0,1]上的定积分

syms x
int(exp(-x^2),0,1)
ans=
    (pi^(1/2)*erf(1))/2 %erf为误差函数
syms x; 
vpa(int(exp(-x^2),0,1)) %Variable precision arithmetic

ans =

0.74682413281242702539946743613185

数值积分

  1. trapz(x,y)%梯形法沿列方向求函数Y关于自变量X的积分
  2. cumtrapz(x,y)%梯形法沿列方向求函数Y关于自变量X的累计积分
  3. quad(fun,a,b,tol)%采用递推自适应Simpson法计算积分
  4. quad1(fun,a,b,tol)%采用递推自适应Lobatto法求数值积分
  5. dbquad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol)%二重(闭型)数值积分指令
  6. triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol)%三重(闭型)数值积分指令

计算f(t)=exp(−t2)[0,1]上的定积分

 d=0.001;
 x=0:d:1;
 d*trapz(exp(-x.^2))

ans =

    0.7468

参考:http://blog.csdn.net/aldenphy/article/details/5796449


2015-9-22 艺少