在MATLAB中,如何利用triplequad函数求三元函数的积分

2020年12月7日10:38:25在MATLAB中,如何利用triplequad函数求三元函数的积分已关闭评论

在MATLAB中,如何利用triplequad函数求三元函数的积分

在MATLAB语言中,使用triplequad函数求三元函数的积分。其使用格式如下。

·triplequad(fun,XMAM,YMIN,YMAX,ZMIN,ZMAX)命令求函数fun(x,y,z)在矩形区间[XMIN,XMAX,YMIN,YMAX,ZMIN,ZMAX]上的积分值。函数fun(x,y,z)必须接受向量x以及标量y和z并返回一个积分向量。

·triplequad(fun,XMAM,YMIN,YMAX,ZMIN,ZMAX,tol)命令使用tol作为允许的误差值,取y代默认值1.e-6。

·triplequad(fun,XMAM,YMIN,YMAX,ZMIN,ZMAX,tol,@quadl)命令使用指定的算法代替y默认的算法quad。

·triplequad(fun,XMAM,YMIN,YMAX,ZMIN,ZMAX,tol,ZMIN,ZMAX,@myquadf)命令使用自定义的算法myquadf取代默认值quad。函数myquadf必须和quad与quadl两函数有相同调用次序的函数句柄。

ytriplequad(fun,XMAM,YMIN,YMAX,ZMIN,ZMAX,tol,@quadl,·1,p2,…)命令将可选参数p1,p2,…等传递函数fun(x,y,p1,p2,…)。若tol和quadl都是空矩阵时,则使用默认函数精度和算法quad。

例题 使用triplequad函数求三元函数f=y sin(x)+zcos(x)的积分

输入程序如下:

>> Q=triplequad(inline('y*sin(x)+z*cos(x)'),0,pi,0,1,-1,1)

Q =

2.0000

>> Q=triplequad(inline('y*sin(x)+z*cos(x)'),0,pi,0,1,-1,1,1.e-9)

Q =

2.0000

>> vpa(Q,10)

ans =

2.0

可见,ans=2.0000即为本例的精确值。此外,用户还可以使用如下形式来求解积分值。

>> Q=triplequad(@integrnd,0,pi,0,1,-1,1)

Q =

2.0000

其中integrnd函数的M文件如下:

function f=integrnd(x,y,z)

f=y*sin(x)+z*cos(x);

end

  • 版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。