MATLAB数值积分(正交)

本文概述

  • 四边形
  • 四元组
积分∫f(x)dx的数值评估称为正交。
函数f(x)在某个时间间隔[a, b]上的数值积分的一般形式是在有限数量(N +1)个采样点(节点)上的函数值的加权总和, 表示为” 正交” ‘ :
MATLAB数值积分(正交)

文章图片
MATLAB提供了用于数字积分的内置函数:
四边形 它在自适应Simpson规则的基础上集成了超出指定限制的指定功能。通过遵循自适应规则, 可以通过在积分范围内自适应地选择子区间的估计值, 同时评估组成积分的总和来提高准确性。
四元组 它在自适应Lobatto正交的基础上集成了超出指定限制的指定功能。这比四边形更准确, 但是它也使用了更多的功能评估。
quad和quad1的语法如下:
MATLAB数值积分(正交)

文章图片
要使用quad1, 请在语法中将quad替换为quad1。如语法所示, 这两个函数都要求我们提供被积分作为用户编写的函数。
可选的输入参数tol指定绝对公差(默认值为10-6)。另一个可选参数trace的非零值表示每个步骤的一些中间计算。
可选参数p1, p2等除了x之外, 还作为输入参数传递给用户定义的函数。
使用这些内置函数进行数值积分的步骤包括:
步骤1:编写一个函数, 该函数在给定x值的情况下返回被积f(x)的值。我们的函数应该能够接受输入值x作为向量, 并产生被积数(输出)的值作为向量。
步骤2:决定使用哪个函数-quad或quad1(quad更快, 但不如quad1准确)。默认公差值是10-6。
例子
让我们计算以下积分
MATLAB数值积分(正交)

文章图片
这种集成与误差函数erf密切相关。
MATLAB数值积分(正交)

文章图片
MATLAB还提供了误差函数erf作为内置函数, 我们可以以闭合形式(根据误差函数)求积分, 并比较数值积分的结果。让我们按照前面概述的步骤进行操作。
步骤1:这是在给定x处评估被积数的函数(允许将x作为向量)。
function y = erfcousin(x); % ERFCOUSIN function to evaluate exp(-x^2)y= exp(-x.^2); % the array operator .^ is used for vector x.

第二步:让我们以最简单的语法使用quad:
> > y=quad ('erfcousin', 1/2, 3/2)% here a=1/2, b=3/2y= 0.3949

【MATLAB数值积分(正交)】积分的精确结果(最多10位小数)为0.3949073872。在前面的示例中, 我们使用了默认公差。下表显示了使用积分进行的一些实验的结果。我们同时使用Quad和Quad1进行集成。对于四边形, 我们将具有不同公差的结果制成表格。在表中, 我们列出了积分的值, %误差和功能评估的次数。对于Quad1, 仅提供默认公差即可提供相当准确的解决方案。
Function tol Answer % Error F-evals
quad default 0.3949073927 1.3907 x 10-6 17
10-7 0.3949073894 5.5506 x 10-7 25
10-8 0.3949073873 2.4369 x 10-8 33
quad1 default 0.3949073875 8.0616 x 10-8 18

    推荐阅读