matlab quad函数中的一个错误?

时间:2013-09-21 13:58:04

标签: matlab

Matlab quad函数中似乎存在使用求积公式评估积分的错误。正在运行

quad(@(x) (2/sqrt(2*pi))*(x.^2).*exp(-x.^2/2), 0, 10)

回复1.0000这是正确答案,但将上限提高到100,即

quad(@(x) (2/sqrt(2*pi))*(x.^2).*exp(-x.^2/2), 0, 100)

返回3.4715e-8quadl似乎也是如此。但是,integral命令似乎工作正常。这是一个已知问题还是我错过了什么?

2 个答案:

答案 0 :(得分:2)

阅读quad documentation,看起来使用quadgk可能是个好主意。在这种情况下,它使用积分间隔(0,100)给出正确的结果:

>> quadgk(@(x) (2/sqrt(2*pi))*(x.^2).*exp(-x.^2/2), 0, 100)

ans =

    1.0000

答案 1 :(得分:1)

octave上运行quadquadl的两个表达式,结果为1.机器可能出现问题。