Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
matlab四元函数中的一个错误?_Matlab - Fatal编程技术网

matlab四元函数中的一个错误?

matlab四元函数中的一个错误?,matlab,Matlab,Matlabquad函数中似乎存在一个缺陷,用于使用求积公式计算积分。运行 quad(@(x) (2/sqrt(2*pi))*(x.^2).*exp(-x.^2/2), 0, 10) 返回3.4715e-8。这似乎也是quadl的情况。然而,integral命令似乎工作正常。这是一个已知问题还是我遗漏了什么?在启用quad和quadl的情况下运行这两个表达式会导致结果为1。机器可能有问题。阅读quad,使用quadgk似乎是个好主意。在这种情况下,它给出了积分间隔(0100)的正确结果: 有趣。

Matlab
quad
函数中似乎存在一个缺陷,用于使用求积公式计算积分。运行

quad(@(x) (2/sqrt(2*pi))*(x.^2).*exp(-x.^2/2), 0, 10)
返回
3.4715e-8
。这似乎也是
quadl
的情况。然而,
integral
命令似乎工作正常。这是一个已知问题还是我遗漏了什么?

在启用
quad
quadl
的情况下运行这两个表达式会导致结果为1。机器可能有问题。

阅读
quad
,使用
quadgk
似乎是个好主意。在这种情况下,它给出了积分间隔(0100)的正确结果:


有趣。仅将下限增加到.01将返回1它可能与MATLAB版本、实现等有关。它可能已在较新版本中修复。(我在Linux机器上的R2012a中找到了它。)谢谢,那可能是正确的选择。尽管很奇怪,其他的
四元组
函数如此不稳定。同意。现在还不清楚
quadgk
是否总是最好的选择,或者何时选择它们variant@passerby51,等:求积就像数值积分一样-有许多方法,需要使用适合于手头函数的方法和/或使用适当的设置。指数、对数和周期函数通常需要特别注意。例如,在双精度中,如果
x
大于38.7,此函数的计算结果为零<如果公差选项设置得足够小,例如
1e-12
,则实际上可以使用code>quad。但是
quadgk
(或更新版本中的
integral
)几乎总是更好的首选。 quad(@(x) (2/sqrt(2*pi))*(x.^2).*exp(-x.^2/2), 0, 100)
>> quadgk(@(x) (2/sqrt(2*pi))*(x.^2).*exp(-x.^2/2), 0, 100)

ans =

    1.0000