许多变量的数值积分

和是函数在这些变量中。 x = ( x 1 , x 2 , , x n ) [ 0 , 1 ] n f ( x ) : [ 0 , 1 ] n C

此迭代积分是否有递归方案?

[ 0 , 1 ] n d x i f ( x )

如果且我将分成100个段,则我们要加点。必须有一个更聪明的方法。[ 0 1 ] 10 20 n = 10 [ 0 , 1 ] 10 20


实际上,我要集成的功能是单一组的Haar度量

U ( n ) f ( A )   d A = 1 n ! [ 0 , 2 π ] n j < k | e i θ j e i θ k | 2 f ( θ 1 , , θ n )   d θ 1 2 π     d θ n 2 π

8个回答

如果维数不太大,则还可以考虑对积分使用稀疏正交方法。
@Paul您可以在答案中进一步解释这个话题吗?我可能会投票赞成

对于具有许多变量的积分,通常采用蒙特卡洛方法进行拟合。其误差减小为,其中N是所选的等分点数。当然,这对于存在高阶方法的低维(1D和2D)空间不是很好。但是,大多数这些确定性方法在较高维度中占据了大量的点。例如,一阶一维方案在2D中为,在3D中为。蒙特卡洛方法的优势在于误差收敛与空间维数无关。无论您的空间是1D还是100D,它都是。 O O ( N ) ON 1 O ( N ) O O ( N 1 4 ) O ( N )

但是,由于它是概率性的,因此您需要使用一定数量的点对其进行多次集成,以找到标准偏差和误差估计。

对于积分,使用准蒙特卡洛(例如,使用Sobel序列)要好一些。
嗯,是的,我指出了均分点(基于伪随机),但没有明确区分两者。
@GodricSeer看起来 Sobol序列即使在高维度上也可以构建一个很好的均匀间隔的网格。看来他正在解决同一问题:非常快地使。 格雷码差异似乎是个问题。
1 n f ( x i ) [ 0 , 1 ] n f   d x
是的,Sobol序列将建立良好的点分布。准蒙特卡洛可能是解决问题的更好方法之一。

稀疏网格正交是集成到更高维度的替代方法。

正交依赖于评估特定“最佳”点上函数值的加权和。传统的正交函数使用高维张量积网格结构,这意味着您必须在维数增加时以指数增长的点数评估函数。

稀疏网格正交的技巧是,您可以使用一小张张量积网格来获得相同的阶次精度(在渐近意义上)。您选择的稀疏点最终是那些准确地集成了达到期望总度数的单项式的点。随着尺寸的增加,计算量的节省(与张量积网格相比)显着增加。

但是,您应该注意这种方法的缺点。

  1. 如果您的函数不平滑(或者无法通过多项式函数很好地近似),则此方法将无法正常工作。
  2. 尽管稀疏网格正交的精度等级可以等同于张量积网格,但相对精度可能更差。这是因为稀疏网格的精度顺序前面的常数可能非常大。
  3. 相对较小的尺寸,稀疏的网格效果很好。但是有一个维度,之后您可能会使用另一种方法(例如蒙特卡洛或其变体)更好。

有关稀疏网格的更多信息,我建议使用Burkardt的《高维稀疏网格》。如果您对生成稀疏网格的代码感兴趣,则可能需要考虑这些matlab文件