数值积分(求积)

2025年3月17日 | 阅读 3 分钟

对积分 ∫ f(x)dx 的数值评估称为求积。

函数 f (x) 在某个区间 [a, b] 上的数值积分的一般形式是在有限数量 (N + 1) 个采样点(节点)处函数值的加权总和,表示为“求积”

MATLAB Numerical Integration

MATLAB 提供了用于数值积分的内置函数

quad

它在指定限制内对指定函数进行积分,基于自适应辛普森法则。自适应规则通过自适应地选择积分限制内子区间的估计值来提高精度,同时评估构成积分的总和。

quadl

它在指定限制内对指定函数进行积分,基于自适应Lobatto求积。这个比quad更准确,但它也使用更多的函数评估。

quad 和 quad1 的语法如下

MATLAB Numerical Integration

要使用quad1,您需要在语法中将quad替换为quad1。如语法所示,这两个函数都需要我们提供积分函数作为用户编写的函数。

可选输入参数tol指定绝对容差(默认值为 10-6)。另一个可选参数trace的非零值会在每个步骤中显示一些中间计算。

可选参数p1、p2等作为输入参数传递给用户定义的函数,除了 x 之外。

使用这些内置函数进行数值积分的步骤包括

步骤1:编写一个函数,给定 x 的值,返回积分函数 f(x) 的值。我们的函数应该能够将输入值 x 接受为向量,并将积分函数的值(输出)生成为向量。

步骤2:它决定使用哪个函数-quad 或 quad1(quad 速度更快但不如 quad1 准确)。默认容差值为 10-6 找到积分。

示例

让我们计算以下积分

MATLAB Numerical Integration

这个积分与误差函数 erf 密切相关。

MATLAB Numerical Integration

MATLAB 还提供了误差函数erf作为内置函数,我们可以以闭合形式(关于误差函数)评估我们的积分,并比较数值积分的结果。让我们按照前面概述的步骤进行操作。

步骤1:这是在给定 x (x 允许为向量) 处评估积分函数的函数。

步骤2:让我们使用 quad 及其最简单的语法

积分的精确结果(精确到小数点后 10 位)是 0.3949073872。在前面的例子中,我们使用了默认的容差。这是一个表格,显示了几个积分实验的结果。我们同时使用quadquad1进行积分。对于 quad,我们用不同的容差值列出了结果。在表中,我们列出了积分值、% 误差和函数评估次数。对于 quad1,仅使用默认容差即可获得非常准确的解。

函数tol答案% 误差F-evals
quaddefault0.39490739271.3907 x 10-617
10-70.39490738945.5506 x 10-725
10-80.39490738732.4369 x 10-833
quad1default0.39490738758.0616 x 10-818

下一主题MATLAB双重积分