matlab - MATLAB 中积分函数的奇怪行为

标签 matlab integration

我创建了两个函数 fx 和 fy,如下所示:

fx = @(x) ncx2pdf(x, 10, 1);
fy = @(y) ncx2pdf(y + 25, 10, 10);

然后,我定义fs函数如下:

shift = 0
fs = @(s) fx(s) .* fy(shift - s)

请注意,fs 始终为正(两个概率密度函数的乘积)。如果我计算:

integral(fs, -Inf, 100)

我得到真值 0.0413,但如果我计算

integral(fs, -Inf, 1000)

我得到 0。为什么使用积分函数会发生这种奇怪的行为?请注意,如果我计算

integral(fs, -Inf, Inf) 

我得到了真值 0.0413。

最佳答案

“数值正交的工作原理是迭代地将区间分开并逼近每个分区的积分。逼近是通过离散化子区间并使用某种形式的积分逼近(黎曼求和等)来完成的。由于存在一些离散化,因此有会有一些误差,这取决于分区,因此我们最好使积分限制更接近对积分贡献最大的点。”,Brendan Hamm

引用:http://www.mathworks.com/matlabcentral/answers/242910-strange-behaviour-in-integral-function-in-matlab#answer_192302

关于matlab - MATLAB 中积分函数的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32566819/

相关文章:

Matlab:将行添加到单元格

javascript - 有没有一种简单的方法可以将 jshint 与 netbeans 集成?

java - 在 java 中给予应用程序焦点

matlab - 矩阵中四组的总和

matlab - 如何在 Matlab 中对矩阵中的列求和?

arrays - 没有循环或矩阵的乘法

matlab - 并集上的交集,但用 MATLAB 中的最小面积替换并集

php - 如何在 Python 中包含 PHP 脚本?

java - Spring集成消息驱动 channel 适配器

automation - 如何在TFS构建中集成NUnit测试(用C#编写)?