我正在开展一个项目,我想从包含双积分的协方差函数创建一个协方差矩阵。由于我的数据有350个条目,因此该矩阵变为350x350。
我的问题是,没有积分的那个会在几秒钟内运行
没有INTEGRAL
k_function = @(x01,x02) hyp(1)^2*exp(-0.5*(x01-x02).^2/hyp(2)^2);
for i = 1:length(x1)
for j = 1:length(x2)
K(i,j) = integral2(k_function,0,x1(i),0,x2(j));
end
end
带积分的人需要将近一个小时才能完成。关于如何用计算量较小的方法实现相同结果的任何想法?
WITH INTEGRAL
k_function = @(x01,x02) hyp(1)^2*exp(-0.5*(x01-x02).^2/hyp(2)^2);
for i = 1:length(x1)
for j = 1:i
K(i,j) = integral2(k_function,0,x1(i),0,x2(j));
end
end
K = triu(K,1)' + K;
编辑:
包含协方差函数的3个超参数的hyp - 数组(因此在创建矩阵时基本上是常量)
Edit2: - >使用对称属性(仍然很慢)
{{1}}
谢谢,
马加什