主要内容

quadgk

数值计算积分-高斯-克朗罗德求积

描述

例子

问:= quadgk (享乐一种B.集成功能句柄享乐一种B.使用高阶全局自适应正交和默认错误容差。

例子

[问:errbnd.) = quadgk (享乐一种B.另外,返回绝对误差的近似上限|q-I|哪里一世是积分的精确值。

例子

[___) = quadgk (享乐一种B.名称,价值使用以前的输出参数组合中的任何一个,指定具有一个或多个名称值对参数的其他选项。例如,指定“航路点”然后是真实或复杂数字的向量,以指示积分器使用的特定点。

例子

全部收缩

评估积分

问: = 0. 1 E. X 自然对数 X DX.

这一积分在点上有一个奇点 X = 0. 因为 自然对数 0. 偏离 -

为被积函数创建匿名函数日志功能计算 自然对数 X

f = @(x)exp(x)。* log(x);

整合F从0到1。

q =四极(f,0,1)
q = -1.3179.

通过指定轮廓,围绕极点积分复函数。

评估复杂的轮廓积分

问: = DZ. 2 Z. - 1

被积函数有一个简单的极点 Z. = 1 / 2 ,所以使用一个包围该点的矩形轮廓。该轮廓从 X = 1 在实数线上。使用“航路点”名称-值对,用于指定轮廓中的分段线段。

f=@(z)1./(2.*z-1);等高线_段=[1+1i0+1i0-1i1-1i];q=quadgk(f,1,1,“航路点”,等高线(U段)
q = -0.0000 + 3.1416i

quadgk计算一个难以计算的振荡被积函数。

评估积分

问: = 0. π 20000 π X DX.

被积函数振荡很快,因此很难计算。使用quadgk为了评估积分,并指定两个输出以检查是否满足误差公差的近距离。

fun=@(x)sin(2e4*pi*x);[Q,errbnd]=quadgk(fun,0,pi)
警告:已达到使用中的最大间隔数的限制。误差的近似界是5.7e-01。这个积分可能不存在,或者很难用数值来近似。将MaxIntervalCount增加到1272以使QUADGK能够继续进行另一个迭代。
Q=-0.0082
errbnd=0.5723

警告消息指示如何调整最大间隔计数允许在解决方案过程中进行另一次迭代。

再次求解积分,但指定最大间隔计数作为1E5..有了更多的间隔,quadgk能够满足问题的绝对误差容差(1e-10双重精度)。

[Q, errbnd] = quadgk(有趣,0,π,'maxIntervalcount',1E5)
Q=1.6656e-06
errbnd = 2.6323e-12

输入参数

全部收缩

Integrand,指定为函数句柄,定义要集成的功能一种B.

对于标量值的问题,功能y = fun(x)必须接受向量参数X并返回一个向量结果y哪里y是在每个元素中评估的集成和平X. 这一要求通常意味着享乐必须使用数组操作符(.^.*,而不是矩阵运算符(^*, …).

参数化功能说明如何为函数提供其他参数享乐,如有需要。

例子:Q = quadgk(@(x) exp(1-x.^2),a,b)集成匿名功能句柄。

例子:q =四极(@ myfun,a,b)整合功能我的乐趣,将其另存为文件。

数据类型:function_handle.

积分限制,指定为实标量或复标量的独立参数。极限一种B.-inf..如果两者都是有限的,它们可以复杂。如果至少一个是复杂的,则积分在直线路径上近似一种B.在复杂的飞机上。

例子:Quadgk(乐趣,0,1)集成了享乐0.1

数据类型:仅有一个的|双重的
复数支持:万博1manbetx

名称 - 值参数

指定可选的逗号分离对名称,价值参数。名称是参数名称和价值是对应的值。名称必须出现在引号内。您可以以任何顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:q =四极(乐趣,a,b,'waypoints',[0.1 1.1 2.1])使用“航路点”选项指定应在其中计算被积函数的几个关注点。

绝对误差公差,指定为逗号分隔对,包括'ABSTOL'和一个非负实数。quadgk使用绝对误差公差限制绝对误差的估计值,|q–I|哪里问:是积分的计算值和一世是(未知的)精确值。quadgk如果减少绝对误差容差,可能会提供更多小数精度。

quadgk试图满足

errbnd<=最大值(防抱死制动系统,相对制动系统*防抱死制动系统(q))
此关系是绝对的错误控制q | |是足够的小而相对的错误控制q | |更大。对于纯绝对错误控制,使用“AbsTol”> 0“RelTol”=0.用于纯相对误差控制'Reltol'> 0“AbsTol”= 0.除了使用纯绝对错误控制时,最小相对容差是“RelTol”>=100*eps(等级(q))

例子:Quadgk(乐趣,A,B,'ABStol',1E-12)将绝对误差公差设置为大约12位小数的精度。

例子:quadgk(乐趣,a,b,'Absol',tol,'RelTol',0)使用纯粹的绝对错误控制,要求errbnd<=tol

数据类型:仅有一个的|双重的

相对误差容差,指定为逗号分隔对组成'Reltol'和一个非负实数。quadgk使用相对误差容差来限制相对误差的估计,| Q - I | / | I |哪里问:是积分的计算值和一世是(未知的)精确值。quadgk如果降低相对误差容限,可能会提供更有效的精度数字。

quadgk试图满足

errbnd<=最大值(防抱死制动系统,相对制动系统*防抱死制动系统(q))
此关系是绝对的错误控制q | |是足够的小而相对的错误控制q | |更大。对于纯绝对错误控制,使用“AbsTol”> 0“RelTol”=0.用于纯相对误差控制'Reltol'> 0“AbsTol”= 0.除了使用纯绝对错误控制时,最小相对容差是“RelTol”>=100*eps(等级(q))

例子:quadgk(乐趣,a,b,'RelTol',1e-9)将相对误差容错设置为大约9个有效数字。

例子:quadgk(有趣,a、b“AbsTol”,0,RelTol, tol)使用纯相对误差容限,要求errbnd <= | i | * tol

数据类型:仅有一个的|双重的

集成航路点,指定为逗号分隔对,由“航路点”和真实或复杂数字的矢量。使用WASPOINTS指示集成间隔中的点,您希望Integration在初始网格中使用:

  • 在函数的有趣功能附近添加更多的评估点,例如当地极值。

  • 通过指定不连续的位置,通过指定不连续性的位置有效地整合整合的不连续性。

  • 通过将复数指定为航路点来执行复杂等高线积分。如果xmin最大值,或路径点向量的任何入口是复数的,则在复平面上对一系列直线路径进行积分。在这种情况下,所有的积分极限和路径点都必须是有限的。

不要使用航路点来指定奇点。相反,应拆分间隔并将单独积分的结果与端点处的奇点相加。

例子:'waypoints',[1 + 1i,1-1i]指定沿积分间隔的两个复杂航路点。

数据类型:仅有一个的|双重的
复数支持:万博1manbetx

允许的最大间隔数,指定为标量。此选项限制允许的间隔数quadgk在第一次迭代后的任何时间使用。如果出现警告quadgk由于这个限制而提前返回。不建议使用常规增加此值,但可能是适当的errbnd.小到几乎可以达到预期的精度。

例子:Quadgk(乐趣,A,B,'MaxIntervalCount',700)

输出参数

全部收缩

整数的值,作为标量返回。

绝对误差上的大致上限,作为标量返回。集成中绝对误差的近似界限是errbnd = | q - 我|哪里问:是积分的计算值和一世是(未知的)精确值。quadgk试图满足

errbnd<=最大值(防抱死制动系统,相对制动系统*防抱死制动系统(q))
指定此输出参数以查看集成在多大程度上满足AbsolRelTol误差公差。如果errbnd.接近期望值,可以通过增加?的值来达到期望值最大间隔计数

提示

  • quadgk不可缺少的基本上使用相同的集成方法。你通常应该使用不可缺少的而不是quadgk.但是,你可以使用quadgk到:

    • 用计算机监控溶液的准确度errbnd.输出参数。

    • 指定大量值最大间隔计数什么时候不可缺少的警告达到最大间隔数。

  • quadgk如果奇点不太强,可以对有限端点处的奇异函数进行积分。例如,它可以对端点处的函数进行积分C就像对数| x-c||x-c|P.为了p> = -1/2.如果函数在积分极限内的点处是奇异的[甲、乙],然后将积分写成子区间上以奇点为端点的积分和,用quadgk,并添加结果。

  • 如果间隔是无限的, [ 一种 ,然后求积分乐趣(x)存在,乐趣(x)必须腐烂X接近无穷大,并且quadgk需要它迅速衰变。

参考文献

[1] Shampine,L.F.“MATLAB中的矢量化自适应求积®."计算和应用数学杂志2008年第211卷,第131-140页。

扩展能力

C/C++代码生成
使用Matlab®编码器生成C和C++代码™.

在R2007B中介绍