【问题标题】:Comparing numerical results with different integration grids sizes (MATLAB)比较不同积分网格大小的数值结果 (MATLAB)
【发布时间】:2016-02-12 07:58:49
【问题描述】:

我正在尝试使用 Matlab 的 integral 比较复积分的数值结果。

特别是,我想使用

检查结果的准确性
  • 固定积分区间 [0,T],
  • 但不同的稀疏或集成网格大小。

在使用 Matlab 的integral 时,有没有办法指定积分网格大小(即:等间距网格点的数量)?还是我应该寻找其他替代方案?

【问题讨论】:

  • 听起来你应该推出自己的数值积分算法。写一些基本的东西并不难。对于右黎曼和,x = linspace(T/n,T,n)'; y = f(x); dx = T/n; my_integral = sum(y * dx)

标签: matlab grid integration


【解决方案1】:

在使用 MATLAB 的 integral 时,有没有办法指定积分网格大小(即:等间距网格点的数量)?

简短回答:不。

documentation 表示您只能输入:

q = integral(fun,xmin,xmax,Name,Value) 指定带有一个或多个名称、值对参数的附加选项。例如,指定 'WayPoints' 后跟一个实数或复数向量以指示积分器要使用的特定点。

所以,我们向下滚动一点,读取允许的名称/值对并找到:

  • 'AbsTol',绝对容错
  • 'RelTol',相对容错度
  • 'ArrayValued',数组值函数标志
  • 'Waypoints',集成航路点

MATLAB 自动优化积分并以数值方式计算(当然),对于给定的错误结束,由 'AbsTol''RelTol' 定义。我会同意的。

如果您确实想指定积分步长,您可以检查如果将 'Waypoints' 指定为 [0:1/(100*T):T] 会发生什么。不过,我会自己集成它,使用一个简单的黎曼求和实现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多