quadl matlab,MATLAB求一元函数的数值积分(quad,quadl,quadv),大师来详解

MATLAB提供了quad( ),quadl( )等函数命令计算一元函数的数值积分,其中quad( )采用遍历的自适应Simpson法计算函数的数值积分,quadl采用遍历的自适应Lobatto法计算函数的数值积分。其调用格式一般为[Q,Fcnt]=quad(function,a,b),其中function为被积函数(形式为函数句柄/匿名函数),a,b分别积分上限,[Q,Fcnt]分别返回数值积分的结果和函数计算的次数。

83fc49549876d824fd575ea4f404ad9b.png

工具/材料

MATLAB

quad

quadl

操作方法

01

第一,计算下图两个一元函数的数值积分。

2f3fd469b0a0d41af2fef2f07a5272ea.png

02

第二,启动MATLAB,新建脚本(Ctrl+N),输入如下代码:

close all; clear all; clcformat compactfigure('Position',[50,50,600,500],'Name','sin(0.5x)')f1=@(x) sin(0.5*x);[Q1a,Fcnt1a]=quad(f1,0,2)[Q1b,Fcnt1b]=quadl(f1,0,2)fplot(f1,[0,2]);%-------------------%figure('Position',[100,100,600,500],'Name','e^x+1')f2=@(x) exp(x)+1;[Q2a,Fcnt2a]=quad(f2,-1,2)[Q2b,Fcnt2b]=quadl(f2,-1,2)fplot(f2,[-1,2]);

其中f1=@(x) sin(0.5*x),f2=@(x) exp(x)+1是建立被积分的函数(形式为函数句柄/匿名函数)。

[Q,Fcnt]=quad(function,a,b),quadl(function,a,b)是分别采用quad和quadl两种方法求数值积分。

其中被积函数function要为上述建立的函数句柄/匿名函数,a,b分别积分上限,[Q,Fcnt]分别返回数值积分的结果和函数计算的次数。

f3bbacbcc1d81f3b2a6c4fbf5faaa671.png

03

第三,保存和运行上述脚本,在命令行窗口(Command Window)得到如下结果:

Q1a =    0.9194Fcnt1a =    13Q1b =    0.9194Fcnt1b =    18Q2a =   10.0212Fcnt2a =    37Q2b =   10.0212Fcnt2b =    18

可以看出,采用quad( )和quadl两种方法计算函数(1)的数值积分都是0.9194,函数(2)的数值积分都是10.0212,只是计算次数不同。例如采用quad( )计算函数(1)的数值积分,计算次数为13,采用quadl( )计算次数为18。

bfe60941f384b99e898f10f67e290da5.png

04

第四,下图为被积分函数(1)的图像。

5bdfa49a97af98af3f4972db04b21f30.png

05

第五,下图为被积分函数(2)的图像,其中fplot( )绘图命令可以绘制函数句柄/匿名函数的图像。

135719fd6362b5f8ad9e16d0a7c0388d.png

好了,以上就是大致内容了,(END)

quad,quadl要求被积函数必须为函数句柄/匿名函数,即用f=@(x)创建的函数。

quad( )计算一元函数数值积分的速度快但准确性稍差,quadl( )计算速度慢但准确性强。

声明:该文观点仅代表作者本人,天晴资讯网系信息发布平台,仅提供信息存储空间服务。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值