个性化阅读
专注于IT技术分析

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/2
y=
	0.3949

积分的精确结果(最多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

赞(0)
未经允许不得转载:srcmini » MATLAB数值积分(正交)

评论 抢沙发

评论前必须登录!