本文概述
- 四边形
- 四元组
函数f(x)在某个时间间隔[a, b]上的数值积分的一般形式是在有限数量(N +1)个采样点(节点)上的函数值的加权总和, 表示为” 正交” ‘ :
文章图片
MATLAB提供了用于数字积分的内置函数:
四边形 它在自适应Simpson规则的基础上集成了超出指定限制的指定功能。通过遵循自适应规则, 可以通过在积分范围内自适应地选择子区间的估计值, 同时评估组成积分的总和来提高准确性。
四元组 它在自适应Lobatto正交的基础上集成了超出指定限制的指定功能。这比四边形更准确, 但是它也使用了更多的功能评估。
quad和quad1的语法如下:
文章图片
要使用quad1, 请在语法中将quad替换为quad1。如语法所示, 这两个函数都要求我们提供被积分作为用户编写的函数。
可选的输入参数tol指定绝对公差(默认值为10-6)。另一个可选参数trace的非零值表示每个步骤的一些中间计算。
可选参数p1, p2等除了x之外, 还作为输入参数传递给用户定义的函数。
使用这些内置函数进行数值积分的步骤包括:
步骤1:编写一个函数, 该函数在给定x值的情况下返回被积f(x)的值。我们的函数应该能够接受输入值x作为向量, 并产生被积数(输出)的值作为向量。
步骤2:决定使用哪个函数-quad或quad1(quad更快, 但不如quad1准确)。默认公差值是10-6。
例子
让我们计算以下积分
文章图片
这种集成与误差函数erf密切相关。
文章图片
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 |
推荐阅读
- MATLAB高斯和高斯-乔丹消除
- MATLAB插值详解
- MATLAB双积分
- MATLAB多项式
- MATLAB符号数学
- MATLAB特征值和特征向量
- MATLAB rref精简行梯形
- MATLAB线性代数
- MATLAB 3D函数surfc()