【发布时间】:2016-08-11 11:12:59
【问题描述】:
我最近一直在尝试计算函数fun = @(v,x)(10^4)*0.648*(1+v*0.001).*( exp(-2.83./( 10^-8+(sqrt(1+2*v*0.001)).*(x.^2)) ) -1).*(exp(-(v.^2)*0.33)) 的二重积分,v 的范围为 (-1000,1000),x 的范围为 (0,a),其中 a 是一个非常大的数字或无穷大.我发现,虽然在 a = inf 的情况下,该值似乎相当准确(它减少为单个积分,在数值上评估不太麻烦),但如果我从 0 积分到 10^9 和从 10 ^9 到无穷大,积分总和不等于正确值,后者为零。我真正感兴趣的是从 0 到 10^9 的积分,但这些结果让我怀疑我是否可以完全相信它。
在我所做的事情中,我还必须在函数前面使用一个大的前置因子(10^200)来“补偿”小数字;否则结果都是一派胡言。我曾尝试使用 vpa,但没有成功。我做错了什么?
罗伯
【问题讨论】:
-
能否提供您的代码。
-
我不确定这是否是一个编程问题。它看起来更像是一个数字/数学问题。
-
@obchardon 我声明了上面写的函数,然后输入 'integral2(-1000,1000,a,b)' 和 a,b 适当的极值。
-
@MSalters 我在这里发布它是因为我看到了一个类似的问题,但这对我没有帮助。你会建议在其他地方问吗?
-
我不是数值数学专家,所以恐怕我不知道哪个 Stack Exchange 站点更合适。这是一个相当具体的专业领域,我不知道真正的专家聚集在哪里。 Stack Exchange 的风险在于,有太多的非专家不知道他们缺少关键知识。这样的“答案”可能会适得其反。一个好的答案应该不仅仅是一个建议,它应该解释出了什么问题以及如何回避。