Alex_McAvoy

想要成为渔夫的猎手

Matlab 数值积分

【数值积分】

数值积分是数值计算的重要部分,它是求定积分的一种近似方法,具有实际意义

其不同于符号计算给出的符号解,其给出的是一个精确的近似解

matlab 提供了自适应辛普森法和自适应洛巴托法两种方法来求积分

【一重积分】

自适应辛普森法

在 matlab 中,quad 利用自适应辛普森法计算函数的数值积分,适用于精度低,被积函数平滑性差的数值积分。

  • quad(Fun,a,b):计算函数 Fun 在区间 (a,b) 上的积分
  • quad(Fun,a,b,tol):计算函数 Fun 在区间 (a,b) 上的积分,tol 控制自适应辛普森法的误差,tol 越大计算速度越快精度越低,默认情况下,tol=1e-6

说明:Fun 是函数句柄,一般利用匿名函数

1
2
>> quad(@(x)x.^2,1,2)
ans = 2.3333

自适应洛巴托法

在 matlab 中,quadl 利用自适应洛巴托法计算函数的数值积分,适用于精度高,被积函数平滑性好的数值积分。

  • quadl(Fun,a,b):计算函数 Fun 在区间 (a,b) 上的积分
  • quadl(Fun,a,b,tol):计算函数 Fun 在区间 (a,b) 上的积分,tol 控制自适应洛巴托法的误差,tol 越大计算速度越快精度越低,默认情况下,tol=1e-6

说明:

  1. Fun 是函数句柄,一般利用匿名函数
  2. 与 quad 相比,quadl 耗时更长,但精度更高
1
2
>> quadl(@(x)x.^2,1,2)
ans = 2.3333

【多重积分】

二重积分

  • dplquad(Fun,x_min,x_max,y_min,y_max):计算函数 Fun 在积分限 (x_min,x_max) 和 (y_min,y_max) 上的积分
  • dplquad(Fun,x_min,x_max,y_min,y_max,tol):计算函数 Fun 在积分限 (x_min,x_max) 和 (y_min,y_max) 上的积分,tol 控制误差,tol 越大计算速度越快精度越低,默认情况下,tol=1e-6

说明:Fun 是函数句柄,一般利用匿名函数

1
2
3
>> f=@(x,y)x.*y+x.^2.*y.^2;
>> dblquad(f,1,2,3,4)
ans = 34.0278

三重积分

  • triplequad(Fun,x_min,x_max,y_min,y_max,z_min,z_max):计算函数 Fun 在积分限 (x_min,x_max) 、(y_min,y_max)、(z_min,z_max) 上的积分
  • triplequad(Fun,x_min,x_max,y_min,y_max,z_min,z_max,tol):计算函数 Fun 在积分限 (x_min,x_max) 、(y_min,y_max)、(z_min,z_max) 上的积分,tol 控制误差,tol 越大计算速度越快精度越低,默认情况下,tol=1e-6

说明:Fun 是函数句柄,一般利用匿名函数

1
2
3
>> f=@(x,y,z)x.*y.*z;
>> triplequad(f,1,2,2,3,3,4)
ans = 13.1250
感谢您对我的支持,让我继续努力分享有用的技术与知识点!