使用R,我需要评估[使用乳胶符号]
形式的表达式\frac{1}{n^2} \sum_{i=1}^n \sum_{j=1}^n f(x_i-x_j),
其中x_i,x_j
是实数(标量)数,f
是带标量输入和输出的非线性函数。
我目前最好的[现在使用R命令]是
mat <- outer(x,x,function(y,z) f(y-z))
res <- mean(mat)
其中x
是一个长度为n
的向量,它包含所有x_i
个。
对于n = 10000
,此操作在我的电脑上大约需要26秒,但是(正如预期的那样)计算时间会在n
中大幅增加。我想加快速度,主要是因为我想稍后将上述结果传递给优化器。有什么建议?谢谢!