1 | #region License Information
|
---|
2 | /* HeuristicLab
|
---|
3 | * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
|
---|
4 | *
|
---|
5 | * This file is part of HeuristicLab.
|
---|
6 | *
|
---|
7 | * HeuristicLab is free software: you can redistribute it and/or modify
|
---|
8 | * it under the terms of the GNU General Public License as published by
|
---|
9 | * the Free Software Foundation, either version 3 of the License, or
|
---|
10 | * (at your option) any later version.
|
---|
11 | *
|
---|
12 | * HeuristicLab is distributed in the hope that it will be useful,
|
---|
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
---|
15 | * GNU General Public License for more details.
|
---|
16 | *
|
---|
17 | * You should have received a copy of the GNU General Public License
|
---|
18 | * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
|
---|
19 | */
|
---|
20 | #endregion
|
---|
21 |
|
---|
22 | using System.Linq;
|
---|
23 | using HeuristicLab.Algorithms.DataAnalysis;
|
---|
24 | using Microsoft.VisualStudio.TestTools.UnitTesting;
|
---|
25 |
|
---|
26 | namespace HeuristicLab.Algorithms.DataAnalysis_34.Tests {
|
---|
27 | [TestClass]
|
---|
28 |
|
---|
29 | // reference values calculated with Rasmussen's GPML MATLAB package
|
---|
30 | public class GaussianProcessFunctionsTest {
|
---|
31 | [TestMethod]
|
---|
32 | public void MeanConstTest() {
|
---|
33 | TestMeanFunction(new MeanConst(), 0,
|
---|
34 | new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
---|
35 | new double[][] { new double[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } }
|
---|
36 | );
|
---|
37 | TestMeanFunction(new MeanConst(), 1,
|
---|
38 | new double[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
---|
39 | new double[][] { new double[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } }
|
---|
40 | );
|
---|
41 | }
|
---|
42 |
|
---|
43 | [TestMethod]
|
---|
44 | public void MeanZeroTest() {
|
---|
45 | TestMeanFunction(new MeanZero(), 0,
|
---|
46 | new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
---|
47 | new double[][] { new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
|
---|
48 | );
|
---|
49 | TestMeanFunction(new MeanZero(), 1,
|
---|
50 | new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
---|
51 | new double[][] { new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
|
---|
52 | );
|
---|
53 | }
|
---|
54 |
|
---|
55 | [TestMethod]
|
---|
56 | public void MeanSumTest() {
|
---|
57 | var sum = new MeanSum();
|
---|
58 | sum.Terms.Add(new MeanConst());
|
---|
59 | sum.Terms.Add(new MeanConst());
|
---|
60 | TestMeanFunction(sum, 0,
|
---|
61 | new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
---|
62 | new double[][]
|
---|
63 | {
|
---|
64 | new double[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
---|
65 | new double[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
|
---|
66 | }
|
---|
67 | );
|
---|
68 | TestMeanFunction(sum, 1,
|
---|
69 | new double[] { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 },
|
---|
70 | new double[][]
|
---|
71 | {
|
---|
72 | new double[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
---|
73 | new double[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
|
---|
74 | }
|
---|
75 | );
|
---|
76 | }
|
---|
77 | [TestMethod]
|
---|
78 | public void MeanProdTest() {
|
---|
79 | var prod = new MeanProd();
|
---|
80 | prod.Factors.Add(new MeanConst());
|
---|
81 | prod.Factors.Add(new MeanConst());
|
---|
82 | TestMeanFunction(prod, 0,
|
---|
83 | new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
---|
84 | new double[][]
|
---|
85 | {
|
---|
86 | new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
---|
87 | new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
---|
88 | }
|
---|
89 | );
|
---|
90 | TestMeanFunction(prod, 1,
|
---|
91 | new double[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
---|
92 | new double[][]
|
---|
93 | {
|
---|
94 | new double[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
---|
95 | new double[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
|
---|
96 | }
|
---|
97 | );
|
---|
98 |
|
---|
99 | prod.Factors.Clear();
|
---|
100 | prod.Factors.Add(new MeanZero());
|
---|
101 | prod.Factors.Add(new MeanLinear());
|
---|
102 | TestMeanFunction(prod, 0,
|
---|
103 | new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
---|
104 | new double[][]
|
---|
105 | {
|
---|
106 | new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
---|
107 | new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
---|
108 | new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
---|
109 | new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
---|
110 | new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
---|
111 | }
|
---|
112 | );
|
---|
113 | TestMeanFunction(prod, 1,
|
---|
114 | new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
---|
115 | new double[][]
|
---|
116 | {
|
---|
117 | new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
---|
118 | new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
---|
119 | new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
---|
120 | new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
---|
121 | new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
---|
122 | }
|
---|
123 | );
|
---|
124 |
|
---|
125 | prod.Factors.Clear();
|
---|
126 | prod.Factors.Add(new MeanConst());
|
---|
127 | prod.Factors.Add(new MeanLinear());
|
---|
128 | TestMeanFunction(prod, 1,
|
---|
129 | new double[] { 1.843574580675791, 2.127929337522181, 3.116568910281474, 1.688566127130978, 3.250517738447450, 2.961262743634280, 2.326019412613392, 1.729286976436201, 1.769654419215176, 2.398170347588917 },
|
---|
130 | new double[][]
|
---|
131 | {
|
---|
132 | new double[] { 2.9088, 1.8646, 3.1971, 1.9890, 1.7640, 1.2801, 2.8059, 3.7243, 3.1899 ,1.4978 },
|
---|
133 | new double[] { 0.4173, 0.0497, 0.9027, 0.9448, 0.4909, 0.4893, 0.3377, 0.9001, 0.3692 ,0.1112 },
|
---|
134 | new double[] { 0.7803, 0.3897, 0.2417, 0.4039, 0.0965, 0.1320, 0.9421, 0.9561, 0.5752 ,0.0598 },
|
---|
135 | new double[] { 0.2348, 0.3532, 0.8212, 0.0154, 0.0430, 0.1690, 0.6491, 0.7317, 0.6477 ,0.4509 },
|
---|
136 | new double[] { 0.5470, 0.2963, 0.7447, 0.1890, 0.6868, 0.1835, 0.3685, 0.6256, 0.7802 ,0.0811 },
|
---|
137 | new double[] { 0.9294, 0.7757, 0.4868, 0.4359, 0.4468, 0.3063, 0.5085, 0.5108, 0.8176 ,0.7948 }
|
---|
138 | }
|
---|
139 | );
|
---|
140 | }
|
---|
141 |
|
---|
142 | [TestMethod]
|
---|
143 | public void MeanLinear() {
|
---|
144 | TestMeanFunction(new MeanLinear(), 0,
|
---|
145 | new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
---|
146 | new double[][]
|
---|
147 | {
|
---|
148 | new double[] { 0.4173, 0.0497, 0.9027, 0.9448, 0.4909, 0.4893, 0.3377, 0.9001, 0.3692, 0.1112 },
|
---|
149 | new double[] { 0.7803, 0.3897, 0.2417, 0.4039, 0.0965, 0.1320, 0.9421, 0.9561, 0.5752, 0.0598 },
|
---|
150 | new double[] { 0.2348, 0.3532, 0.8212, 0.0154, 0.0430, 0.1690, 0.6491, 0.7317, 0.6477, 0.4509 },
|
---|
151 | new double[] { 0.5470, 0.2963, 0.7447, 0.1890, 0.6868, 0.1835, 0.3685, 0.6256, 0.7802, 0.0811 },
|
---|
152 | new double[] { 0.9294, 0.7757, 0.4868, 0.4359, 0.4468, 0.3063, 0.5085, 0.5108, 0.8176, 0.7948 }
|
---|
153 | }
|
---|
154 | );
|
---|
155 | TestMeanFunction(new MeanLinear(), 1,
|
---|
156 | new double[] { 1.8436, 2.1279, 3.1166, 1.6886, 3.2505, 2.9613, 2.3260, 1.7293, 1.7697, 2.3982 },
|
---|
157 | new double[][]
|
---|
158 | {
|
---|
159 | new double[] { 0.4173, 0.0497, 0.9027, 0.9448, 0.4909, 0.4893, 0.3377, 0.9001, 0.3692, 0.1112 },
|
---|
160 | new double[] { 0.7803, 0.3897, 0.2417, 0.4039, 0.0965, 0.1320, 0.9421, 0.9561, 0.5752, 0.0598 },
|
---|
161 | new double[] { 0.2348, 0.3532, 0.8212, 0.0154, 0.0430, 0.1690, 0.6491, 0.7317, 0.6477, 0.4509 },
|
---|
162 | new double[] { 0.5470, 0.2963, 0.7447, 0.1890, 0.6868, 0.1835, 0.3685, 0.6256, 0.7802, 0.0811 },
|
---|
163 | new double[] { 0.9294, 0.7757, 0.4868, 0.4359, 0.4468, 0.3063, 0.5085, 0.5108, 0.8176, 0.7948 }
|
---|
164 | }
|
---|
165 | );
|
---|
166 | }
|
---|
167 |
|
---|
168 | [TestMethod]
|
---|
169 | public void CovSeIsoTest() {
|
---|
170 | TestCovarianceFunction(new CovarianceSEiso(), 0,
|
---|
171 | new double[,]
|
---|
172 | {
|
---|
173 | { 0.5771, 0.5404, 0.8569, 0.5612, 0.7545, 0.4980, 0.6649, 0.7484, 0.6564, 0.8184},
|
---|
174 | { 0.6206, 0.7027, 0.7091, 0.6015, 0.7295, 0.5338, 0.6705, 0.8202, 0.7155, 0.8029},
|
---|
175 | { 0.7743, 0.7513, 0.8468, 0.6865, 0.5645, 0.7861, 0.8404, 0.6625, 0.7555, 0.8335},
|
---|
176 | { 0.7773, 0.5513, 0.7792, 0.7166, 0.4534, 0.5870, 0.8913, 0.8796, 0.8656, 0.8245},
|
---|
177 | { 0.8839, 0.5934, 0.7689, 0.8982, 0.4126, 0.4741, 0.7883, 0.9201, 0.9077, 0.8649},
|
---|
178 | { 0.8746, 0.7341, 0.7020, 0.8323, 0.4826, 0.5922, 0.8706, 0.9508, 0.9524, 0.8660},
|
---|
179 | { 0.6133, 0.7560, 0.7280, 0.5749, 0.8722, 0.5651, 0.6530, 0.6260, 0.6633, 0.8195},
|
---|
180 | { 0.6113, 0.6277, 0.8110, 0.5489, 0.7110, 0.6221, 0.6948, 0.5425, 0.6227, 0.7828},
|
---|
181 | { 0.6394, 0.6950, 0.8669, 0.6107, 0.7933, 0.5985, 0.6823, 0.6858, 0.6702, 0.8492},
|
---|
182 | { 0.5790, 0.7156, 0.6274, 0.5324, 0.6323, 0.6100, 0.6863, 0.8091, 0.6855, 0.7173},
|
---|
183 | },
|
---|
184 | new double[][,]
|
---|
185 | {
|
---|
186 | new double[,] {
|
---|
187 | { 0, 0.3197, 0.6358, 0.5518, 0.5207, 0.5909, 0.3361, 0.4897, 0.2447, 0.5720},
|
---|
188 | { 0.3197, 0, 0.6697, 0.6190, 0.4635, 0.4047, 0.4190, 0.6899, 0.3650, 0.1552},
|
---|
189 | { 0.6358, 0.6697, 0, 0.6031, 0.5367, 0.5927, 0.6008, 0.4084, 0.4103, 0.6843},
|
---|
190 | { 0.5518, 0.6190, 0.6031, 0, 0.4173, 0.2740, 0.6339, 0.6114, 0.6702, 0.6455},
|
---|
191 | { 0.5207, 0.4635, 0.5367, 0.4173, 0, 0.2510, 0.6610, 0.6935, 0.5180, 0.5362},
|
---|
192 | { 0.5909, 0.4047, 0.5927, 0.2740, 0.2510, 0, 0.6019, 0.6955, 0.6232, 0.3756},
|
---|
193 | { 0.3361, 0.4190, 0.6008, 0.6339, 0.6610, 0.6019, 0, 0.3205, 0.3279, 0.6165},
|
---|
194 | { 0.4897, 0.6899, 0.4084, 0.6114, 0.6935, 0.6955, 0.3205, 0, 0.4189, 0.7344},
|
---|
195 | { 0.2447, 0.3650, 0.4103, 0.6702, 0.5180, 0.6232, 0.3279, 0.4189, 0, 0.5595},
|
---|
196 | { 0.5720, 0.1552, 0.6843, 0.6455, 0.5362, 0.3756, 0.6165, 0.7344, 0.5595, 0},
|
---|
197 | },
|
---|
198 | new double[,] {
|
---|
199 | { 2.0000, 1.6472, 1.1513, 1.3142, 1.3662, 1.2437, 1.6267, 1.4148, 1.7372, 1.2786},
|
---|
200 | { 1.6472, 2.0000, 1.0689, 1.1876, 1.4541, 1.5370, 1.5174, 1.0103, 1.5898, 1.8381},
|
---|
201 | { 1.1513, 1.0689, 2.0000, 1.2199, 1.3398, 1.2402, 1.2244, 1.5320, 1.5293, 1.0276},
|
---|
202 | { 1.3142, 1.1876, 1.2199, 2.0000, 1.5197, 1.7027, 1.1555, 1.2033, 1.0675, 1.1291},
|
---|
203 | { 1.3662, 1.4541, 1.3398, 1.5197, 2.0000, 1.7299, 1.0916, 0.9989, 1.3706, 1.3407},
|
---|
204 | { 1.2437, 1.5370, 1.2402, 1.7027, 1.7299, 2.0000, 1.2223, 0.9923, 1.1787, 1.5758},
|
---|
205 | { 1.6267, 1.5174, 1.2244, 1.1555, 1.0916, 1.2223, 2.0000, 1.6461, 1.6369, 1.1928},
|
---|
206 | { 1.4148, 1.0103, 1.5320, 1.2033, 0.9989, 0.9923, 1.6461, 2.0000, 1.5176, 0.7806},
|
---|
207 | { 1.7372, 1.5898, 1.5293, 1.0675, 1.3706, 1.1787, 1.6369, 1.5176, 2.0000, 1.3009},
|
---|
208 | { 1.2786, 1.8381, 1.0276, 1.1291, 1.3407, 1.5758, 1.1928, 0.7806, 1.3009, 2.0000},
|
---|
209 | }
|
---|
210 | }
|
---|
211 | );
|
---|
212 | TestCovarianceFunction(new CovarianceSEiso(), 1,
|
---|
213 | new double[,]
|
---|
214 | {
|
---|
215 | { 6.8592, 6.7985, 7.2362, 6.8334, 7.1127, 6.7239, 6.9920, 7.1048, 6.9798, 7.1914},
|
---|
216 | { 6.9271, 7.0445, 7.0531, 6.8979, 7.0803, 6.7872, 7.0000, 7.1935, 7.0617, 7.1727},
|
---|
217 | { 7.1376, 7.1086, 7.2246, 7.0223, 6.8388, 7.1522, 7.2172, 6.9886, 7.1139, 7.2091},
|
---|
218 | { 7.1414, 6.8169, 7.1438, 7.0632, 6.6389, 6.8750, 7.2749, 7.2619, 7.2462, 7.1986},
|
---|
219 | { 7.2667, 6.8852, 7.1309, 7.2824, 6.5548, 6.6792, 7.1550, 7.3063, 7.2929, 7.2454},
|
---|
220 | { 7.2563, 7.0864, 7.0436, 7.2078, 6.6953, 6.8834, 7.2517, 7.3388, 7.3405, 7.2466},
|
---|
221 | { 6.9160, 7.1146, 7.0783, 6.8557, 7.2536, 6.8398, 6.9750, 6.9351, 6.9897, 7.1926},
|
---|
222 | { 6.9130, 6.9378, 7.1825, 6.8129, 7.0557, 6.9294, 7.0338, 6.8021, 6.9302, 7.1482},
|
---|
223 | { 6.9551, 7.0340, 7.2476, 6.9120, 7.1611, 6.8932, 7.0166, 7.0213, 6.9995, 7.2274},
|
---|
224 | { 6.8624, 7.0619, 6.9373, 6.7848, 6.9446, 6.9109, 7.0221, 7.1802, 7.0209, 7.0642},
|
---|
225 | },
|
---|
226 | new double[][,]
|
---|
227 | {
|
---|
228 | new double[,] {
|
---|
229 | { 0, 0.3781, 1.0250, 0.7934, 0.7239, 0.8910, 0.4018, 0.6606, 0.2764, 0.8421},
|
---|
230 | { 0.3781, 0, 1.1512, 0.9715, 0.6106, 0.5082, 0.5320, 1.2453, 0.4451, 0.1669},
|
---|
231 | { 1.0250, 1.1512, 0, 0.9248, 0.7589, 0.8960, 0.9183, 0.5143, 0.5175, 1.2171},
|
---|
232 | { 0.7934, 0.9715, 0.9248, 0, 0.5292, 0.3149, 1.0188, 0.9487, 1.1534, 1.0583},
|
---|
233 | { 0.7239, 0.6106, 0.7589, 0.5292, 0, 0.2845, 1.1157, 1.2640, 0.7182, 0.7577},
|
---|
234 | { 0.8910, 0.5082, 0.8960, 0.3149, 0.2845, 0, 0.9214, 1.2749, 0.9845, 0.4616},
|
---|
235 | { 0.4018, 0.5320, 0.9183, 1.0188, 1.1157, 0.9214, 0, 0.3793, 0.3899, 0.9638},
|
---|
236 | { 0.6606, 1.2453, 0.5143, 0.9487, 1.2640, 1.2749, 0.3793, 0, 0.5318, 1.6567},
|
---|
237 | { 0.2764, 0.4451, 0.5175, 1.1534, 0.7182, 0.9845, 0.3899, 0.5318, 0, 0.8116},
|
---|
238 | { 0.8421, 0.1669, 1.2171, 1.0583, 0.7577, 0.4616, 0.9638, 1.6567, 0.8116, 0},
|
---|
239 | },
|
---|
240 | new double[,] {
|
---|
241 | { 14.7781, 14.3950, 13.7138, 13.9618, 14.0352, 13.8578, 14.3707, 14.1018, 14.4990, 13.9100},
|
---|
242 | { 14.3950, 14.7781, 13.5767, 13.7715, 14.1542, 14.2607, 14.2360, 13.4735, 14.3260, 14.6102},
|
---|
243 | { 13.7138, 13.5767, 14.7781, 13.8217, 13.9982, 13.8525, 13.8286, 14.2545, 14.2511, 13.5045},
|
---|
244 | { 13.9618, 13.7715, 13.8217, 14.7781, 14.2390, 14.4598, 13.7206, 13.7960, 13.5743, 13.6778},
|
---|
245 | { 14.0352, 14.1542, 13.9982, 14.2390, 14.7781, 14.4908, 13.6154, 13.4528, 14.0413, 13.9995},
|
---|
246 | { 13.8578, 14.2607, 13.8525, 14.4598, 14.4908, 14.7781, 13.8254, 13.4407, 13.7576, 14.3090},
|
---|
247 | { 14.3707, 14.2360, 13.8286, 13.7206, 13.6154, 13.8254, 14.7781, 14.3938, 14.3828, 13.7798},
|
---|
248 | { 14.1018, 13.4735, 14.2545, 13.7960, 13.4528, 13.4407, 14.3938, 14.7781, 14.2363, 13.0113},
|
---|
249 | { 14.4990, 14.3260, 14.2511, 13.5743, 14.0413, 13.7576, 14.3828, 14.2363, 14.7781, 13.9425},
|
---|
250 | { 13.9100, 14.6102, 13.5045, 13.6778, 13.9995, 14.3090, 13.7798, 13.0113, 13.9425, 14.7781},
|
---|
251 | },
|
---|
252 | }
|
---|
253 | );
|
---|
254 | }
|
---|
255 |
|
---|
256 | [TestMethod]
|
---|
257 | public void CovRQIsoTest() {
|
---|
258 | TestCovarianceFunction(new CovarianceRQiso(), 0,
|
---|
259 | new double[,]
|
---|
260 | {
|
---|
261 | { 0.6452, 0.6190, 0.8662, 0.6338, 0.7802, 0.5893, 0.7102, 0.7753, 0.7037, 0.8331},
|
---|
262 | { 0.6771, 0.7392, 0.7442, 0.6630, 0.7603, 0.6144, 0.7145, 0.8346, 0.7492, 0.8200},
|
---|
263 | { 0.7963, 0.7777, 0.8574, 0.7266, 0.6362, 0.8060, 0.8519, 0.7084, 0.7810, 0.8459},
|
---|
264 | { 0.7988, 0.6268, 0.8004, 0.7500, 0.5583, 0.6524, 0.8968, 0.8864, 0.8739, 0.8382},
|
---|
265 | { 0.8902, 0.6571, 0.7919, 0.9030, 0.5304, 0.5727, 0.8079, 0.9232, 0.9117, 0.8733},
|
---|
266 | { 0.8819, 0.7639, 0.7387, 0.8449, 0.5785, 0.6563, 0.8783, 0.9519, 0.9535, 0.8742},
|
---|
267 | { 0.6716, 0.7814, 0.7590, 0.6437, 0.8797, 0.6366, 0.7012, 0.6810, 0.7090, 0.8339},
|
---|
268 | { 0.6702, 0.6823, 0.8268, 0.6250, 0.7456, 0.6782, 0.7331, 0.6205, 0.6786, 0.8033},
|
---|
269 | { 0.6910, 0.7332, 0.8750, 0.6697, 0.8119, 0.6608, 0.7235, 0.7261, 0.7142, 0.8595},
|
---|
270 | { 0.6467, 0.7493, 0.6821, 0.6133, 0.6857, 0.6692, 0.7265, 0.8252, 0.7259, 0.7506},
|
---|
271 | },
|
---|
272 | new double[][,]
|
---|
273 | {
|
---|
274 | new double[,] {
|
---|
275 | { 0, 0.2722, 0.4584, 0.4165, 0.3996, 0.4367, 0.2838, 0.3820, 0.2165, 0.4271},
|
---|
276 | { 0.2722, 0, 0.4736, 0.4505, 0.3666, 0.3300, 0.3391, 0.4823, 0.3037, 0.1436},
|
---|
277 | { 0.4584, 0.4736, 0, 0.4428, 0.4084, 0.4376, 0.4416, 0.3323, 0.3336, 0.4799},
|
---|
278 | { 0.4165, 0.4505, 0.4428, 0, 0.3381, 0.2388, 0.4575, 0.4468, 0.4739, 0.4629},
|
---|
279 | { 0.3996, 0.3666, 0.4084, 0.3381, 0, 0.2213, 0.4698, 0.4837, 0.3981, 0.4081},
|
---|
280 | { 0.4367, 0.3300, 0.4376, 0.2388, 0.2213, 0, 0.4422, 0.4845, 0.4525, 0.3109},
|
---|
281 | { 0.2838, 0.3391, 0.4416, 0.4575, 0.4698, 0.4422, 0, 0.2728, 0.2781, 0.4493},
|
---|
282 | { 0.3820, 0.4823, 0.3323, 0.4468, 0.4837, 0.4845, 0.2728, 0, 0.3390, 0.4995},
|
---|
283 | { 0.2165, 0.3037, 0.3336, 0.4739, 0.3981, 0.4525, 0.2781, 0.3390, 0, 0.4206},
|
---|
284 | { 0.4271, 0.1436, 0.4799, 0.4629, 0.4081, 0.3109, 0.4493, 0.4995, 0.4206, 0},
|
---|
285 | },
|
---|
286 | new double[,] {
|
---|
287 | { 2.0000, 1.6749, 1.2884, 1.4086, 1.4481, 1.3558, 1.6576, 1.4857, 1.7530, 1.3818},
|
---|
288 | { 1.6749, 2.0000, 1.2296, 1.3147, 1.5166, 1.5831, 1.5672, 1.1884, 1.6266, 1.8443},
|
---|
289 | { 1.2884, 1.2296, 2.0000, 1.3383, 1.4280, 1.3533, 1.3417, 1.5791, 1.5769, 1.2005},
|
---|
290 | { 1.4086, 1.3147, 1.3383, 2.0000, 1.5691, 1.7228, 1.2914, 1.3262, 1.2286, 1.2725},
|
---|
291 | { 1.4481, 1.5166, 1.4280, 1.5691, 2.0000, 1.7466, 1.2457, 1.1805, 1.4515, 1.4286},
|
---|
292 | { 1.3558, 1.5831, 1.3533, 1.7228, 1.7466, 2.0000, 1.3401, 1.1758, 1.3083, 1.6150},
|
---|
293 | { 1.6576, 1.5672, 1.3417, 1.2914, 1.2457, 1.3401, 2.0000, 1.6740, 1.6662, 1.3186},
|
---|
294 | { 1.4857, 1.1884, 1.5791, 1.3262, 1.1805, 1.1758, 1.6740, 2.0000, 1.5674, 1.0305},
|
---|
295 | { 1.7530, 1.6266, 1.5769, 1.2286, 1.4515, 1.3083, 1.6662, 1.5674, 2.0000, 1.3985},
|
---|
296 | { 1.3818, 1.8443, 1.2005, 1.2725, 1.4286, 1.6150, 1.3186, 1.0305, 1.3985, 2.0000},
|
---|
297 | },
|
---|
298 | new double[,] {
|
---|
299 | { 0, -0.0124, -0.0541, -0.0386, -0.0340, -0.0452, -0.0137, -0.0298, -0.0073, -0.0419},
|
---|
300 | { -0.0124, 0, -0.0623, -0.0505, -0.0265, -0.0200, -0.0215, -0.0682, -0.0162, -0.0029},
|
---|
301 | { -0.0541, -0.0623, 0, -0.0474, -0.0363, -0.0455, -0.0470, -0.0204, -0.0206, -0.0664},
|
---|
302 | { -0.0386, -0.0505, -0.0474, 0, -0.0213, -0.0091, -0.0537, -0.0490, -0.0624, -0.0563},
|
---|
303 | { -0.0340, -0.0265, -0.0363, -0.0213, 0, -0.0077, -0.0600, -0.0693, -0.0336, -0.0362},
|
---|
304 | { -0.0452, -0.0200, -0.0455, -0.0091, -0.0077, 0, -0.0472, -0.0700, -0.0514, -0.0172},
|
---|
305 | { -0.0137, -0.0215, -0.0470, -0.0537, -0.0600, -0.0472, 0, -0.0125, -0.0131, -0.0500},
|
---|
306 | { -0.0298, -0.0682, -0.0204, -0.0490, -0.0693, -0.0700, -0.0125, 0, -0.0215, -0.0919},
|
---|
307 | { -0.0073, -0.0162, -0.0206, -0.0624, -0.0336, -0.0514, -0.0131, -0.0215, 0, -0.0399},
|
---|
308 | { -0.0419, -0.0029, -0.0664, -0.0563, -0.0362, -0.0172, -0.0500, -0.0919, -0.0399, 0},
|
---|
309 | }
|
---|
310 | }
|
---|
311 | );
|
---|
312 | TestCovarianceFunction(new CovarianceRQiso(), 1,
|
---|
313 | new double[,]
|
---|
314 | {
|
---|
315 | { 6.8660, 6.8070, 7.2367, 6.8409, 7.1145, 6.7347, 6.9959, 7.1068, 6.9839, 7.1923},
|
---|
316 | { 6.9324, 7.0474, 7.0559, 6.9038, 7.0827, 6.7961, 7.0038, 7.1944, 7.0644, 7.1739},
|
---|
317 | { 7.1392, 7.1106, 7.2253, 7.0255, 6.8461, 7.1536, 7.2179, 6.9926, 7.1158, 7.2099},
|
---|
318 | { 7.1429, 6.8249, 7.1453, 7.0658, 6.6525, 6.8816, 7.2752, 7.2623, 7.2467, 7.1995},
|
---|
319 | { 7.2671, 6.8913, 7.1326, 7.2827, 6.5716, 6.6915, 7.1564, 7.3065, 7.2931, 7.2459},
|
---|
320 | { 7.2567, 7.0886, 7.0466, 7.2086, 6.7069, 6.8897, 7.2522, 7.3388, 7.3405, 7.2471},
|
---|
321 | { 6.9215, 7.1164, 7.0807, 6.8626, 7.2540, 6.8471, 6.9792, 6.9401, 6.9937, 7.1935},
|
---|
322 | { 6.9185, 6.9428, 7.1836, 6.8210, 7.0584, 6.9346, 7.0369, 6.8105, 6.9354, 7.1496},
|
---|
323 | { 6.9598, 7.0372, 7.2481, 6.9176, 7.1623, 6.8992, 7.0200, 7.0247, 7.0033, 7.2280},
|
---|
324 | { 6.8692, 7.0646, 6.9424, 6.7937, 6.9495, 6.9165, 7.0254, 7.1813, 7.0242, 7.0668},
|
---|
325 | },
|
---|
326 | new double[][,]
|
---|
327 | {
|
---|
328 | new double[,] {
|
---|
329 | { 0, 0.3746, 0.9986, 0.7776, 0.7108, 0.8711, 0.3978, 0.6497, 0.2745, 0.8243},
|
---|
330 | { 0.3746, 0, 1.1178, 0.9478, 0.6013, 0.5017, 0.5249, 1.2062, 0.4401, 0.1662},
|
---|
331 | { 0.9986, 1.1178, 0, 0.9033, 0.7445, 0.8758, 0.8972, 0.5076, 0.5108, 1.1798},
|
---|
332 | { 0.7776, 0.9478, 0.9033, 0, 0.5222, 0.3124, 0.9927, 0.9261, 1.1199, 1.0301},
|
---|
333 | { 0.7108, 0.6013, 0.7445, 0.5222, 0, 0.2825, 1.0844, 1.2237, 0.7052, 0.7433},
|
---|
334 | { 0.8711, 0.5017, 0.8758, 0.3124, 0.2825, 0, 0.9000, 1.2339, 0.9601, 0.4563},
|
---|
335 | { 0.3978, 0.5249, 0.8972, 0.9927, 1.0844, 0.9000, 0, 0.3757, 0.3861, 0.9404},
|
---|
336 | { 0.6497, 1.2062, 0.5076, 0.9261, 1.2237, 1.2339, 0.3757, 0, 0.5247, 1.5872},
|
---|
337 | { 0.2745, 0.4401, 0.5108, 1.1199, 0.7052, 0.9601, 0.3861, 0.5247, 0, 0.7950},
|
---|
338 | { 0.8243, 0.1662, 1.1798, 1.0301, 0.7433, 0.4563, 0.9404, 1.5872, 0.7950, 0},
|
---|
339 | },
|
---|
340 | new double[,] {
|
---|
341 | { 14.7781, 14.3968, 13.7277, 13.9699, 14.0420, 13.8682, 14.3727, 14.1074, 14.5000, 13.9192},
|
---|
342 | { 14.3968, 14.7781, 13.5943, 13.7839, 14.1589, 14.2640, 14.2397, 13.4942, 14.3286, 14.6106},
|
---|
343 | { 13.7277, 13.5943, 14.7781, 13.8329, 14.0057, 13.8630, 13.8396, 14.2579, 14.2545, 13.5242},
|
---|
344 | { 13.9699, 13.7839, 13.8329, 14.7781, 14.2426, 14.4610, 13.7342, 13.8078, 13.5920, 13.6926},
|
---|
345 | { 14.0420, 14.1589, 14.0057, 14.2426, 14.7781, 14.4918, 13.6319, 13.4742, 14.0479, 14.0069},
|
---|
346 | { 13.8682, 14.2640, 13.8630, 14.4610, 14.4918, 14.7781, 13.8365, 13.4625, 13.7703, 14.3117},
|
---|
347 | { 14.3727, 14.2397, 13.8396, 13.7342, 13.6319, 13.8365, 14.7781, 14.3956, 14.3848, 13.7920},
|
---|
348 | { 14.1074, 13.4942, 14.2579, 13.8078, 13.4742, 13.4625, 14.3956, 14.7781, 14.2399, 13.0490},
|
---|
349 | { 14.5000, 14.3286, 14.2545, 13.5920, 14.0479, 13.7703, 14.3848, 14.2399, 14.7781, 13.9510},
|
---|
350 | { 13.9192, 14.6106, 13.5242, 13.6926, 14.0069, 14.3117, 13.7920, 13.0490, 13.9510, 14.7781},
|
---|
351 | },
|
---|
352 | new double[,] {
|
---|
353 | { 0, -0.0009, -0.0068, -0.0040, -0.0034, -0.0051, -0.0010, -0.0028, -0.0005, -0.0046},
|
---|
354 | { -0.0009, 0, -0.0086, -0.0061, -0.0024, -0.0016, -0.0018, -0.0101, -0.0013, -0.0002},
|
---|
355 | { -0.0068, -0.0086, 0, -0.0055, -0.0037, -0.0052, -0.0054, -0.0017, -0.0017, -0.0097},
|
---|
356 | { -0.0040, -0.0061, -0.0055, 0, -0.0018, -0.0006, -0.0067, -0.0058, -0.0087, -0.0073},
|
---|
357 | { -0.0034, -0.0024, -0.0037, -0.0018, 0, -0.0005, -0.0081, -0.0105, -0.0033, -0.0037},
|
---|
358 | { -0.0051, -0.0016, -0.0052, -0.0006, -0.0005, 0, -0.0055, -0.0106, -0.0063, -0.0013},
|
---|
359 | { -0.0010, -0.0018, -0.0054, -0.0067, -0.0081, -0.0055, 0, -0.0009, -0.0010, -0.0060},
|
---|
360 | { -0.0028, -0.0101, -0.0017, -0.0058, -0.0105, -0.0106, -0.0009, 0, -0.0018, -0.0183},
|
---|
361 | { -0.0005, -0.0013, -0.0017, -0.0087, -0.0033, -0.0063, -0.0010, -0.0018, 0, -0.0042},
|
---|
362 | { -0.0046, -0.0002, -0.0097, -0.0073, -0.0037, -0.0013, -0.0060, -0.0183, -0.0042, 0},
|
---|
363 | }
|
---|
364 | }
|
---|
365 | );
|
---|
366 | }
|
---|
367 |
|
---|
368 |
|
---|
369 | [TestMethod]
|
---|
370 | public void CovLinearTest() {
|
---|
371 | TestCovarianceFunction(new CovarianceLinear(), 0,
|
---|
372 | new double[,]
|
---|
373 | {
|
---|
374 | { 0.9089, 0.9972, 1.8813, 0.8618, 2.0021, 1.5168, 1.2612, 1.1009, 0.9505, 1.3851},
|
---|
375 | { 0.4654, 0.7436, 1.1758, 0.4150, 1.4523, 1.0699, 0.7535, 0.6763, 0.5205, 0.8497},
|
---|
376 | { 1.3720, 1.4959, 2.0386, 1.2323, 1.8810, 2.1422, 1.6645, 1.1482, 1.2602, 1.5724},
|
---|
377 | { 0.8471, 0.6576, 1.4266, 0.7465, 1.1331, 1.3214, 1.1946, 0.9028, 0.8676, 1.0329},
|
---|
378 | { 0.7965, 0.5520, 1.2342, 0.7932, 0.8598, 0.9288, 0.8927, 0.7687, 0.7359, 0.9016},
|
---|
379 | { 0.5306, 0.5096, 0.8879, 0.4618, 0.7612, 0.8960, 0.7367, 0.5462, 0.5287, 0.6475},
|
---|
380 | { 0.8779, 1.2411, 1.6264, 0.7940, 2.0552, 1.5512, 1.1513, 0.8304, 0.8692, 1.2945},
|
---|
381 | { 1.4220, 1.6026, 2.2818, 1.2951, 2.3982, 2.1948, 1.7607, 1.2346, 1.3533, 1.7961},
|
---|
382 | { 1.0930, 1.3304, 1.9745, 1.0278, 2.1338, 1.7821, 1.3686, 1.0951, 1.0529, 1.5035},
|
---|
383 | { 0.3406, 0.7064, 0.9980, 0.2373, 1.2538, 1.1479, 0.7212, 0.6072, 0.4222, 0.6815},
|
---|
384 | },
|
---|
385 | new double[][,]
|
---|
386 | {
|
---|
387 | }
|
---|
388 | );
|
---|
389 | }
|
---|
390 |
|
---|
391 | [TestMethod]
|
---|
392 | public void CovPeriodicTest() {
|
---|
393 | TestCovarianceFunction(new CovariancePeriodic(), 0,
|
---|
394 | new double[,]
|
---|
395 | {
|
---|
396 | { 0.9548, 0.7965, 0.1438, 0.8971, 0.3692, 0.5608, 0.8367, 0.3951, 0.8773, 0.1881},
|
---|
397 | { 0.9894, 0.6290, 0.5931, 0.9987, 0.4838, 0.7608, 0.8078, 0.1852, 0.5579, 0.2184},
|
---|
398 | { 0.2962, 0.3824, 0.1517, 0.7208, 0.9105, 0.2604, 0.1580, 0.8483, 0.3653, 0.1660},
|
---|
399 | { 0.2864, 0.8521, 0.2806, 0.5519, 0.3502, 0.9797, 0.1364, 0.1354, 0.1391, 0.1784},
|
---|
400 | { 0.1354, 0.9908, 0.3145, 0.1389, 0.2266, 0.4391, 0.2541, 0.1592, 0.1452, 0.1394},
|
---|
401 | { 0.1362, 0.4609, 0.6325, 0.1675, 0.4801, 0.9891, 0.1372, 0.2435, 0.2512, 0.1389},
|
---|
402 | { 0.9975, 0.3630, 0.4916, 0.9481, 0.1367, 0.9130, 0.8921, 0.9800, 0.8445, 0.1864},
|
---|
403 | { 0.9988, 0.9762, 0.2016, 0.8402, 0.5823, 0.9870, 0.6736, 0.8076, 0.9861, 0.2698},
|
---|
404 | { 0.9440, 0.6724, 0.1385, 0.9991, 0.2411, 0.9966, 0.7439, 0.7247, 0.8095, 0.1496},
|
---|
405 | { 0.9605, 0.5569, 0.9769, 0.7531, 0.9651, 0.9994, 0.7216, 0.2054, 0.7264, 0.5478},
|
---|
406 | },
|
---|
407 | new double[][,]
|
---|
408 | {
|
---|
409 | new double[,]
|
---|
410 | {
|
---|
411 | { 0, 0.6171, 0.0967, 0.2357, 0.4461, 0.0247, 0.6403, 0.6107, 0.5464, 0.1081},
|
---|
412 | { 0.6171, 0, 0.4105, 0.0173, 0.6953, 0.7281, 0.7351, 0.6132, 0.6825, 0.5825},
|
---|
413 | { 0.0967, 0.4105, 0, 0.0012, 0.3397, 0.0195, 0.0034, 0.7305, 0.7317, 0.5618},
|
---|
414 | { 0.2357, 0.0173, 0.0012, 0, 0.7346, 0.5651, 0.0847, 0.0026, 0.4161, 0.1700},
|
---|
415 | { 0.4461, 0.6953, 0.3397, 0.7346, 0, 0.5493, 0.3178, 0.6422, 0.4630, 0.3434},
|
---|
416 | { 0.0247, 0.7281, 0.0195, 0.5651, 0.5493, 0, 0.0023, 0.6572, 0.0311, 0.6971},
|
---|
417 | { 0.6403, 0.7351, 0.0034, 0.0847, 0.3178, 0.0023, 0, 0.6182, 0.6285, 0.0109},
|
---|
418 | { 0.6107, 0.6132, 0.7305, 0.0026, 0.6422, 0.6572, 0.6182, 0, 0.7351, 0.6230},
|
---|
419 | { 0.5464, 0.6825, 0.7317, 0.4161, 0.4630, 0.0311, 0.6285, 0.7351, 0, 0.1843},
|
---|
420 | { 0.1081, 0.5825, 0.5618, 0.1700, 0.3434, 0.6971, 0.0109, 0.6230, 0.1843, 0},
|
---|
421 | },
|
---|
422 | new double[,]
|
---|
423 | {
|
---|
424 | { 0, -0.4917, 1.9759, -2.5233, -2.9038, -0.9545, -0.6223, -2.7396, -0.0884, -1.8718},
|
---|
425 | { -0.4917, 0, 3.6663, 0.8377, -2.3760, -1.4241, -1.6437, 3.8424, -0.9067, 0.2162},
|
---|
426 | { 1.9759, 3.6663, 0, -0.2205, -2.7933, -0.8509, -0.3646, -1.4789, -1.5087, 3.8738},
|
---|
427 | { -2.5233, 0.8377, -0.2205, 0, -1.6172, -0.2162, 1.8523, 0.3213, 3.6804, 2.5815},
|
---|
428 | { -2.9038, -2.3760, -2.7933, -1.6172, 0, -0.1136, 3.3650, 3.7893, -2.9070, -2.7998},
|
---|
429 | { -0.9545, -1.4241, -0.8509, -0.2162, -0.1136, 0, -0.2974, 3.7478, 1.1265, -1.0310},
|
---|
430 | { -0.6223, -1.6437, -0.3646, 1.8523, 3.3650, -0.2974, 0, -0.4977, -0.5548, 0.6640},
|
---|
431 | { -2.7396, 3.8424, -1.4789, 0.3213, 3.7893, 3.7478, -0.4977, 0, -1.6417, 1.1444},
|
---|
432 | { -0.0884, -0.9067, -1.5087, 3.6804, -2.9070, 1.1265, -0.5548, -1.6417, 0, -2.3160},
|
---|
433 | { -1.8718, 0.2162, 3.8738, 2.5815, -2.7998, -1.0310, 0.6640, 1.1444, -2.3160, 0},
|
---|
434 | },
|
---|
435 | new double[,]
|
---|
436 | {
|
---|
437 | { 2.0000, 0.3597, 1.9008, 1.7477, 1.4793, 1.9751, 0.3943, 1.2046, 0.2758, 1.8887},
|
---|
438 | { 0.3597, 2.0000, 1.5291, 1.9826, 0.9929, 0.6320, 0.7047, 1.1997, 0.4741, 0.3153},
|
---|
439 | { 1.9008, 1.5291, 2.0000, 1.9988, 1.6221, 1.9804, 1.9966, 0.6498, 0.6595, 1.2969},
|
---|
440 | { 1.7477, 1.9826, 1.9988, 2.0000, 0.6957, 0.2956, 1.9134, 1.9974, 1.5215, 1.8218},
|
---|
441 | { 1.4793, 0.9929, 1.6221, 0.6957, 2.0000, 0.2787, 1.6495, 1.1369, 1.4549, 1.6174},
|
---|
442 | { 1.9751, 0.6320, 1.9804, 0.2956, 0.2787, 2.0000, 1.9977, 1.1010, 1.9686, 0.5106},
|
---|
443 | { 0.3943, 0.7047, 1.9966, 1.9134, 1.6495, 1.9977, 2.0000, 0.3612, 0.3762, 1.9891},
|
---|
444 | { 1.2046, 1.1997, 0.6498, 1.9974, 1.1369, 1.1010, 0.3612, 2.0000, 0.7040, 0.3681},
|
---|
445 | { 0.2758, 0.4741, 0.6595, 1.5215, 1.4549, 1.9686, 0.3762, 0.7040, 2.0000, 1.8059},
|
---|
446 | { 1.8887, 0.3153, 1.2969, 1.8218, 1.6174, 0.5106, 1.9891, 0.3681, 1.8059, 2.0000},
|
---|
447 | },
|
---|
448 | }
|
---|
449 | , 5e-3);
|
---|
450 | TestCovarianceFunction(new CovariancePeriodic(), 1,
|
---|
451 | new double[,]
|
---|
452 | {
|
---|
453 | { 5.8283, 5.7618, 6.7049, 5.7980, 6.3126, 5.7012, 6.0358, 6.2917, 6.0128, 6.5482},
|
---|
454 | { 5.9230, 6.1447, 6.1643, 5.8794, 6.2291, 5.7511, 6.0513, 6.5551, 6.1842, 6.4880},
|
---|
455 | { 6.3822, 6.3018, 6.6628, 6.0966, 5.8040, 6.4250, 6.6362, 6.0294, 6.3159, 6.6082},
|
---|
456 | { 6.3932, 5.7803, 6.4000, 6.1876, 5.6577, 5.8483, 6.8550, 6.8032, 6.7423, 6.5723},
|
---|
457 | { 6.8221, 5.8618, 6.3630, 6.8860, 5.6385, 5.6752, 6.4334, 6.9877, 6.9298, 6.7393},
|
---|
458 | { 6.7811, 6.2441, 6.1428, 6.6035, 5.6837, 5.8594, 6.7636, 7.1358, 7.1438, 6.7439},
|
---|
459 | { 5.9060, 6.3179, 6.2241, 5.8240, 6.7709, 5.8052, 6.0040, 5.9357, 6.0315, 6.5522},
|
---|
460 | { 5.9014, 5.9400, 6.5193, 5.7761, 6.1703, 5.9266, 6.1211, 5.7652, 5.9278, 6.4131},
|
---|
461 | { 5.9689, 6.1217, 6.7479, 5.9000, 6.4518, 5.8729, 6.0847, 6.0946, 6.0504, 6.6728},
|
---|
462 | { 5.8322, 6.1847, 5.9393, 5.7489, 5.9512, 5.8983, 6.0962, 6.5118, 6.0937, 6.1900},
|
---|
463 | },
|
---|
464 | new double[][,]
|
---|
465 | {
|
---|
466 | new double[,]
|
---|
467 | {
|
---|
468 | { 0, 1.5463, 2.7702, 2.4754, 2.3601, 2.6154, 1.6170, 2.2426, 1.2120, 2.5484},
|
---|
469 | { 1.5463, 0, 2.8809, 2.7132, 2.1407, 1.9051, 1.9633, 2.9438, 1.7399, 0.7903},
|
---|
470 | { 2.7702, 2.8809, 0, 2.6583, 2.4199, 2.6219, 2.6503, 1.9201, 1.9281, 2.9266},
|
---|
471 | { 2.4754, 2.7132, 2.6583, 0, 1.9565, 1.3445, 2.7639, 2.6871, 2.8826, 2.8025},
|
---|
472 | { 2.3601, 2.1407, 2.4199, 1.9565, 0, 1.2406, 2.8530, 2.9544, 2.3499, 2.4179},
|
---|
473 | { 2.6154, 1.9051, 2.6219, 1.3445, 1.2406, 0, 2.6541, 2.9603, 2.7276, 1.7848},
|
---|
474 | { 1.6170, 1.9633, 2.6503, 2.7639, 2.8530, 2.6541, 0, 1.5498, 1.5819, 2.7045},
|
---|
475 | { 2.2426, 2.9438, 1.9201, 2.6871, 2.9544, 2.9603, 1.5498, 0, 1.9628, 3.0510},
|
---|
476 | { 1.2120, 1.7399, 1.9281, 2.8826, 2.3499, 2.7276, 1.5819, 1.9628, 0, 2.5033},
|
---|
477 | { 2.5484, 0.7903, 2.9266, 2.8025, 2.4179, 1.7848, 2.7045, 3.0510, 2.5033, 0},
|
---|
478 | },
|
---|
479 | new double[,]
|
---|
480 | {
|
---|
481 | { 0, 1.2693, 1.2518, 1.4723, 1.4989, 1.4024, 1.3080, 1.5046, 1.0560, 1.4419},
|
---|
482 | { 1.2693, 0, 1.0599, 1.3190, 1.4956, 1.4360, 1.4550, 0.8895, 1.3688, 0.7299},
|
---|
483 | { 1.2518, 1.0599, 0, 1.3700, 1.4880, 1.3979, 1.3765, 1.4411, 1.4438, 0.9428},
|
---|
484 | { 1.4723, 1.3190, 1.3700, 0, 1.4529, 1.1461, 1.2600, 1.3448, 1.0562, 1.2056},
|
---|
485 | { 1.4989, 1.4956, 1.4880, 1.4529, 0, 1.0760, 1.1183, 0.8531, 1.5002, 1.4885},
|
---|
486 | { 1.4024, 1.4360, 1.3979, 1.1461, 1.0760, 0, 1.3735, 0.8314, 1.3035, 1.3888},
|
---|
487 | { 1.3080, 1.4550, 1.3765, 1.2600, 1.1183, 1.3735, 0, 1.2713, 1.2891, 1.3279},
|
---|
488 | { 1.5046, 0.8895, 1.4411, 1.3448, 0.8531, 0.8314, 1.2713, 0, 1.4549, -0.0705},
|
---|
489 | { 1.0560, 1.3688, 1.4438, 1.0562, 1.5002, 1.3035, 1.2891, 1.4549, 0, 1.4621},
|
---|
490 | { 1.4419, 0.7299, 0.9428, 1.2056, 1.4885, 1.3888, 1.3279, -0.0705, 1.4621, 0},
|
---|
491 | },
|
---|
492 | new double[,]
|
---|
493 | {
|
---|
494 | { 14.7781, 13.1371, 11.6509, 12.0296, 12.1738, 11.8516, 13.0567, 12.3184, 13.5101, 11.9373},
|
---|
495 | { 13.1371, 14.7781, 11.5044, 11.7253, 12.4422, 12.7230, 12.6543, 11.4201, 12.9155, 13.9651},
|
---|
496 | { 11.6509, 11.5044, 14.7781, 11.7964, 12.0992, 11.8434, 11.8067, 12.7053, 12.6959, 11.4432},
|
---|
497 | { 12.0296, 11.7253, 11.7964, 14.7781, 12.6624, 13.3637, 11.6592, 11.7593, 11.5022, 11.6084},
|
---|
498 | { 12.1738, 12.4422, 12.0992, 12.6624, 14.7781, 13.4786, 11.5416, 11.4058, 12.1864, 12.1017},
|
---|
499 | { 11.8516, 12.7230, 11.8434, 13.3637, 13.4786, 14.7781, 11.8019, 11.3978, 11.7066, 12.8636},
|
---|
500 | { 13.0567, 12.6543, 11.8067, 11.6592, 11.5416, 11.8019, 14.7781, 13.1331, 13.0967, 11.7366},
|
---|
501 | { 12.3184, 11.4201, 12.7053, 11.7593, 11.4058, 11.3978, 13.1331, 14.7781, 12.6549, 11.2744},
|
---|
502 | { 13.5101, 12.9155, 12.6959, 11.5022, 12.1864, 11.7066, 13.0967, 12.6549, 14.7781, 11.9944},
|
---|
503 | { 11.9373, 13.9651, 11.4432, 11.6084, 12.1017, 12.8636, 11.7366, 11.2744, 11.9944, 14.7781},
|
---|
504 | },
|
---|
505 | }
|
---|
506 | , 5e-3);
|
---|
507 | }
|
---|
508 |
|
---|
509 | [TestMethod]
|
---|
510 | public void CovSEardTest() {
|
---|
511 | TestCovarianceFunction(new CovarianceSEard(), 0,
|
---|
512 | new double[,]
|
---|
513 | {
|
---|
514 | { 0.5771, 0.5404, 0.8569, 0.5612, 0.7545, 0.4980, 0.6649, 0.7484, 0.6564, 0.8184},
|
---|
515 | { 0.6206, 0.7027, 0.7091, 0.6015, 0.7295, 0.5338, 0.6705, 0.8202, 0.7155, 0.8029},
|
---|
516 | { 0.7743, 0.7513, 0.8468, 0.6865, 0.5645, 0.7861, 0.8404, 0.6625, 0.7555, 0.8335},
|
---|
517 | { 0.7773, 0.5513, 0.7792, 0.7166, 0.4534, 0.5870, 0.8913, 0.8796, 0.8656, 0.8245},
|
---|
518 | { 0.8839, 0.5934, 0.7689, 0.8982, 0.4126, 0.4741, 0.7883, 0.9201, 0.9077, 0.8649},
|
---|
519 | { 0.8746, 0.7341, 0.7020, 0.8323, 0.4826, 0.5922, 0.8706, 0.9508, 0.9524, 0.8660},
|
---|
520 | { 0.6133, 0.7560, 0.7280, 0.5749, 0.8722, 0.5651, 0.6530, 0.6260, 0.6633, 0.8195},
|
---|
521 | { 0.6113, 0.6277, 0.8110, 0.5489, 0.7110, 0.6221, 0.6948, 0.5425, 0.6227, 0.7828},
|
---|
522 | { 0.6394, 0.6950, 0.8669, 0.6107, 0.7933, 0.5985, 0.6823, 0.6858, 0.6702, 0.8492},
|
---|
523 | { 0.5790, 0.7156, 0.6274, 0.5324, 0.6323, 0.6100, 0.6863, 0.8091, 0.6855, 0.7173},
|
---|
524 |
|
---|
525 | },
|
---|
526 | new double[][,]
|
---|
527 | {
|
---|
528 | new double[,]
|
---|
529 | {
|
---|
530 | { 0, 0.1113, 0.1356, 0.1828, 0.0037, 0.0032, 0.0052, 0.1649, 0.0020, 0.0599},
|
---|
531 | { 0.1113, 0, 0.3889, 0.4757, 0.1415, 0.1485, 0.0629, 0.3653, 0.0811, 0.0035},
|
---|
532 | { 0.1356, 0.3889, 0, 0.0011, 0.1136, 0.1060, 0.1954, 0.0000, 0.2176, 0.3219},
|
---|
533 | { 0.1828, 0.4757, 0.0011, 0, 0.1566, 0.1766, 0.2129, 0.0012, 0.1768, 0.3923},
|
---|
534 | { 0.0037, 0.1415, 0.1136, 0.1566, 0, 0.0000, 0.0128, 0.0836, 0.0101, 0.0966},
|
---|
535 | { 0.0032, 0.1485, 0.1060, 0.1766, 0.0000, 0, 0.0140, 0.0837, 0.0085, 0.1126},
|
---|
536 | { 0.0052, 0.0629, 0.1954, 0.2129, 0.0128, 0.0140, 0, 0.2603, 0.0008, 0.0306},
|
---|
537 | { 0.1649, 0.3653, 0.0000, 0.0012, 0.0836, 0.0837, 0.2603, 0, 0.2139, 0.2429},
|
---|
538 | { 0.0020, 0.0811, 0.2176, 0.1768, 0.0101, 0.0085, 0.0008, 0.2139, 0, 0.0433},
|
---|
539 | { 0.0599, 0.0035, 0.3219, 0.3923, 0.0966, 0.1126, 0.0306, 0.2429, 0.0433, 0},
|
---|
540 | },
|
---|
541 | new double[,]
|
---|
542 | {
|
---|
543 | { 0, 0.1257, 0.1670, 0.0931, 0.3194, 0.2613, 0.0213, 0.0219, 0.0365, 0.3319},
|
---|
544 | { 0.1257, 0, 0.0117, 0.0001, 0.0625, 0.0510, 0.2315, 0.1621, 0.0274, 0.1000},
|
---|
545 | { 0.1670, 0.0117, 0, 0.0160, 0.0141, 0.0075, 0.3003, 0.3909, 0.0850, 0.0170},
|
---|
546 | { 0.0931, 0.0001, 0.0160, 0, 0.0718, 0.0629, 0.1673, 0.1835, 0.0157, 0.0668},
|
---|
547 | { 0.3194, 0.0625, 0.0141, 0.0718, 0, 0.0011, 0.3903, 0.3690, 0.1570, 0.0009},
|
---|
548 | { 0.2613, 0.0510, 0.0075, 0.0629, 0.0011, 0, 0.4011, 0.3369, 0.1158, 0.0041},
|
---|
549 | { 0.0213, 0.2315, 0.3003, 0.1673, 0.3903, 0.4011, 0, 0.0002, 0.1102, 0.4643},
|
---|
550 | { 0.0219, 0.1621, 0.3909, 0.1835, 0.3690, 0.3369, 0.0002, 0, 0.1101, 0.3135},
|
---|
551 | { 0.0365, 0.0274, 0.0850, 0.0157, 0.1570, 0.1158, 0.1102, 0.1101, 0, 0.1728},
|
---|
552 | { 0.3319, 0.1000, 0.0170, 0.0668, 0.0009, 0.0041, 0.4643, 0.3135, 0.1728, 0},
|
---|
553 | },
|
---|
554 | new double[,]
|
---|
555 | {
|
---|
556 | { 0, 0.0115, 0.1979, 0.0316, 0.0251, 0.0027, 0.1396, 0.1747, 0.1481, 0.0299},
|
---|
557 | { 0.0115, 0, 0.1171, 0.0678, 0.0700, 0.0261, 0.0664, 0.0724, 0.0689, 0.0088},
|
---|
558 | { 0.1979, 0.1171, 0, 0.3960, 0.4057, 0.2638, 0.0181, 0.0061, 0.0230, 0.0705},
|
---|
559 | { 0.0316, 0.0678, 0.3960, 0, 0.0006, 0.0201, 0.2320, 0.3087, 0.2134, 0.1071},
|
---|
560 | { 0.0251, 0.0700, 0.4057, 0.0006, 0, 0.0137, 0.2005, 0.2369, 0.2506, 0.1115},
|
---|
561 | { 0.0027, 0.0261, 0.2638, 0.0201, 0.0137, 0, 0.1409, 0.1571, 0.1351, 0.0626},
|
---|
562 | { 0.1396, 0.0664, 0.0181, 0.2320, 0.2005, 0.1409, 0, 0.0056, 0.0000, 0.0234},
|
---|
563 | { 0.1747, 0.0724, 0.0061, 0.3087, 0.2369, 0.1571, 0.0056, 0, 0.0054, 0.0308},
|
---|
564 | { 0.1481, 0.0689, 0.0230, 0.2134, 0.2506, 0.1351, 0.0000, 0.0054, 0, 0.0252},
|
---|
565 | { 0.0299, 0.0088, 0.0705, 0.1071, 0.1115, 0.0626, 0.0234, 0.0308, 0.0252, 0},
|
---|
566 | },
|
---|
567 | new double[,]
|
---|
568 | {
|
---|
569 | { 0, 0.0518, 0.0225, 0.0842, 0.0134, 0.0822, 0.0259, 0.0044, 0.0472, 0.1388},
|
---|
570 | { 0.0518, 0, 0.1075, 0.0068, 0.1109, 0.0098, 0.0040, 0.0548, 0.1861, 0.0426},
|
---|
571 | { 0.0225, 0.1075, 0, 0.1884, 0.0022, 0.1953, 0.0866, 0.0109, 0.0010, 0.2263},
|
---|
572 | { 0.0842, 0.0068, 0.1884, 0, 0.1883, 0.0000, 0.0186, 0.1147, 0.1866, 0.0066},
|
---|
573 | { 0.0134, 0.1109, 0.0022, 0.1883, 0, 0.2191, 0.0553, 0.0019, 0.0060, 0.2459},
|
---|
574 | { 0.0822, 0.0098, 0.1953, 0.0000, 0.2191, 0, 0.0209, 0.0970, 0.2098, 0.0083},
|
---|
575 | { 0.0259, 0.0040, 0.0866, 0.0186, 0.0553, 0.0209, 0, 0.0544, 0.1387, 0.0493},
|
---|
576 | { 0.0044, 0.0548, 0.0109, 0.1147, 0.0019, 0.0970, 0.0544, 0, 0.0181, 0.1157},
|
---|
577 | { 0.0472, 0.1861, 0.0010, 0.1866, 0.0060, 0.2098, 0.1387, 0.0181, 0, 0.3179},
|
---|
578 | { 0.1388, 0.0426, 0.2263, 0.0066, 0.2459, 0.0083, 0.0493, 0.1157, 0.3179, 0},
|
---|
579 | },
|
---|
580 | new double[,]
|
---|
581 | {
|
---|
582 | { 0, 0.0195, 0.1128, 0.1600, 0.1591, 0.2414, 0.1441, 0.1240, 0.0109, 0.0116},
|
---|
583 | { 0.0195, 0, 0.0446, 0.0686, 0.0786, 0.1693, 0.0542, 0.0354, 0.0014, 0.0003},
|
---|
584 | { 0.1128, 0.0446, 0, 0.0016, 0.0011, 0.0202, 0.0003, 0.0004, 0.0837, 0.0487},
|
---|
585 | { 0.1600, 0.0686, 0.0016, 0, 0.0001, 0.0143, 0.0030, 0.0034, 0.0778, 0.0727},
|
---|
586 | { 0.1591, 0.0786, 0.0011, 0.0001, 0, 0.0171, 0.0021, 0.0020, 0.0942, 0.0812},
|
---|
587 | { 0.2414, 0.1693, 0.0202, 0.0143, 0.0171, 0, 0.0250, 0.0207, 0.1541, 0.1880},
|
---|
588 | { 0.1441, 0.0542, 0.0003, 0.0030, 0.0021, 0.0250, 0, 0.0000, 0.0782, 0.0489},
|
---|
589 | { 0.1240, 0.0354, 0.0004, 0.0034, 0.0020, 0.0207, 0.0000, 0, 0.0714, 0.0315},
|
---|
590 | { 0.0109, 0.0014, 0.0837, 0.0778, 0.0942, 0.1541, 0.0782, 0.0714, 0, 0.0003},
|
---|
591 | { 0.0116, 0.0003, 0.0487, 0.0727, 0.0812, 0.1880, 0.0489, 0.0315, 0.0003, 0},
|
---|
592 | },
|
---|
593 | new double[,]
|
---|
594 | {
|
---|
595 | { 2.0000, 1.6472, 1.1513, 1.3142, 1.3662, 1.2437, 1.6267, 1.4148, 1.7372, 1.2786},
|
---|
596 | { 1.6472, 2.0000, 1.0689, 1.1876, 1.4541, 1.5370, 1.5174, 1.0103, 1.5898, 1.8381},
|
---|
597 | { 1.1513, 1.0689, 2.0000, 1.2199, 1.3398, 1.2402, 1.2244, 1.5320, 1.5293, 1.0276},
|
---|
598 | { 1.3142, 1.1876, 1.2199, 2.0000, 1.5197, 1.7027, 1.1555, 1.2033, 1.0675, 1.1291},
|
---|
599 | { 1.3662, 1.4541, 1.3398, 1.5197, 2.0000, 1.7299, 1.0916, 0.9989, 1.3706, 1.3407},
|
---|
600 | { 1.2437, 1.5370, 1.2402, 1.7027, 1.7299, 2.0000, 1.2223, 0.9923, 1.1787, 1.5758},
|
---|
601 | { 1.6267, 1.5174, 1.2244, 1.1555, 1.0916, 1.2223, 2.0000, 1.6461, 1.6369, 1.1928},
|
---|
602 | { 1.4148, 1.0103, 1.5320, 1.2033, 0.9989, 0.9923, 1.6461, 2.0000, 1.5176, 0.7806},
|
---|
603 | { 1.7372, 1.5898, 1.5293, 1.0675, 1.3706, 1.1787, 1.6369, 1.5176, 2.0000, 1.3009},
|
---|
604 | { 1.2786, 1.8381, 1.0276, 1.1291, 1.3407, 1.5758, 1.1928, 0.7806, 1.3009, 2.0000},
|
---|
605 | },
|
---|
606 | }
|
---|
607 | );
|
---|
608 | TestCovarianceFunction(new CovarianceSEard(), 1,
|
---|
609 | new double[,]
|
---|
610 | {
|
---|
611 | { 6.8592, 6.7985, 7.2362, 6.8334, 7.1127, 6.7239, 6.9920, 7.1048, 6.9798, 7.1914},
|
---|
612 | { 6.9271, 7.0445, 7.0531, 6.8979, 7.0803, 6.7872, 7.0000, 7.1935, 7.0617, 7.1727},
|
---|
613 | { 7.1376, 7.1086, 7.2246, 7.0223, 6.8388, 7.1522, 7.2172, 6.9886, 7.1139, 7.2091},
|
---|
614 | { 7.1414, 6.8169, 7.1438, 7.0632, 6.6389, 6.8750, 7.2749, 7.2619, 7.2462, 7.1986},
|
---|
615 | { 7.2667, 6.8852, 7.1309, 7.2824, 6.5548, 6.6792, 7.1550, 7.3063, 7.2929, 7.2454},
|
---|
616 | { 7.2563, 7.0864, 7.0436, 7.2078, 6.6953, 6.8834, 7.2517, 7.3388, 7.3405, 7.2466},
|
---|
617 | { 6.9160, 7.1146, 7.0783, 6.8557, 7.2536, 6.8398, 6.9750, 6.9351, 6.9897, 7.1926},
|
---|
618 | { 6.9130, 6.9378, 7.1825, 6.8129, 7.0557, 6.9294, 7.0338, 6.8021, 6.9302, 7.1482},
|
---|
619 | { 6.9551, 7.0340, 7.2476, 6.9120, 7.1611, 6.8932, 7.0166, 7.0213, 6.9995, 7.2274},
|
---|
620 | { 6.8624, 7.0619, 6.9373, 6.7848, 6.9446, 6.9109, 7.0221, 7.1802, 7.0209, 7.0642},
|
---|
621 | },
|
---|
622 | new double[][,]
|
---|
623 | {
|
---|
624 | new double[,]
|
---|
625 | {
|
---|
626 | { 0, 0.1316, 0.2186, 0.2629, 0.0051, 0.0049, 0.0062, 0.2224, 0.0023, 0.0882},
|
---|
627 | { 0.1316, 0, 0.6685, 0.7466, 0.1864, 0.1865, 0.0799, 0.6593, 0.0990, 0.0037},
|
---|
628 | { 0.2186, 0.6685, 0, 0.0017, 0.1606, 0.1602, 0.2987, 0.0000, 0.2745, 0.5725},
|
---|
629 | { 0.2629, 0.7466, 0.0017, 0, 0.1985, 0.2030, 0.3422, 0.0019, 0.3043, 0.6432},
|
---|
630 | { 0.0051, 0.1864, 0.1606, 0.1985, 0, 0.0000, 0.0216, 0.1524, 0.0141, 0.1366},
|
---|
631 | { 0.0049, 0.1865, 0.1602, 0.2030, 0.0000, 0, 0.0215, 0.1535, 0.0134, 0.1384},
|
---|
632 | { 0.0062, 0.0799, 0.2987, 0.3422, 0.0216, 0.0215, 0, 0.3081, 0.0010, 0.0478},
|
---|
633 | { 0.2224, 0.6593, 0.0000, 0.0019, 0.1524, 0.1535, 0.3081, 0, 0.2715, 0.5480},
|
---|
634 | { 0.0023, 0.0990, 0.2745, 0.3043, 0.0141, 0.0134, 0.0010, 0.2715, 0, 0.0628},
|
---|
635 | { 0.0882, 0.0037, 0.5725, 0.6432, 0.1366, 0.1384, 0.0478, 0.5480, 0.0628, 0},
|
---|
636 | },
|
---|
637 | new double[,]
|
---|
638 | {
|
---|
639 | { 0, 0.1486, 0.2692, 0.1339, 0.4441, 0.3941, 0.0255, 0.0295, 0.0413, 0.4886},
|
---|
640 | { 0.1486, 0, 0.0201, 0.0002, 0.0823, 0.0641, 0.2940, 0.2925, 0.0334, 0.1076},
|
---|
641 | { 0.2692, 0.0201, 0, 0.0246, 0.0200, 0.0113, 0.4590, 0.4923, 0.1073, 0.0302},
|
---|
642 | { 0.1339, 0.0002, 0.0246, 0, 0.0910, 0.0723, 0.2689, 0.2847, 0.0270, 0.1096},
|
---|
643 | { 0.4441, 0.0823, 0.0200, 0.0910, 0, 0.0012, 0.6588, 0.6726, 0.2177, 0.0013},
|
---|
644 | { 0.3941, 0.0641, 0.0113, 0.0723, 0.0012, 0, 0.6140, 0.6177, 0.1829, 0.0050},
|
---|
645 | { 0.0255, 0.2940, 0.4590, 0.2689, 0.6588, 0.6140, 0, 0.0002, 0.1310, 0.7259},
|
---|
646 | { 0.0295, 0.2925, 0.4923, 0.2847, 0.6726, 0.6177, 0.0002, 0, 0.1398, 0.7073},
|
---|
647 | { 0.0413, 0.0334, 0.1073, 0.0270, 0.2177, 0.1829, 0.1310, 0.1398, 0, 0.2506},
|
---|
648 | { 0.4886, 0.1076, 0.0302, 0.1096, 0.0013, 0.0050, 0.7259, 0.7073, 0.2506, 0},
|
---|
649 | },
|
---|
650 | new double[,]
|
---|
651 | {
|
---|
652 | { 0, 0.0137, 0.3191, 0.0455, 0.0349, 0.0041, 0.1669, 0.2356, 0.1673, 0.0440},
|
---|
653 | { 0.0137, 0, 0.2012, 0.1063, 0.0922, 0.0327, 0.0843, 0.1306, 0.0841, 0.0094},
|
---|
654 | { 0.3191, 0.2012, 0, 0.6073, 0.5736, 0.3987, 0.0277, 0.0077, 0.0290, 0.1253},
|
---|
655 | { 0.0455, 0.1063, 0.6073, 0, 0.0007, 0.0231, 0.3728, 0.4790, 0.3672, 0.1755},
|
---|
656 | { 0.0349, 0.0922, 0.5736, 0.0007, 0, 0.0156, 0.3385, 0.4318, 0.3474, 0.1576},
|
---|
657 | { 0.0041, 0.0327, 0.3987, 0.0231, 0.0156, 0, 0.2156, 0.2880, 0.2133, 0.0769},
|
---|
658 | { 0.1669, 0.0843, 0.0277, 0.3728, 0.3385, 0.2156, 0, 0.0066, 0.0000, 0.0366},
|
---|
659 | { 0.2356, 0.1306, 0.0077, 0.4790, 0.4318, 0.2880, 0.0066, 0, 0.0068, 0.0694},
|
---|
660 | { 0.1673, 0.0841, 0.0290, 0.3672, 0.3474, 0.2133, 0.0000, 0.0068, 0, 0.0365},
|
---|
661 | { 0.0440, 0.0094, 0.1253, 0.1755, 0.1576, 0.0769, 0.0366, 0.0694, 0.0365, 0},
|
---|
662 | },
|
---|
663 | new double[,]
|
---|
664 | {
|
---|
665 | { 0, 0.0612, 0.0363, 0.1211, 0.0186, 0.1239, 0.0310, 0.0059, 0.0534, 0.2043},
|
---|
666 | { 0.0612, 0, 0.1847, 0.0107, 0.1461, 0.0123, 0.0050, 0.0989, 0.2270, 0.0458},
|
---|
667 | { 0.0363, 0.1847, 0, 0.2888, 0.0032, 0.2952, 0.1324, 0.0137, 0.0012, 0.4024},
|
---|
668 | { 0.1211, 0.0107, 0.2888, 0, 0.2388, 0.0000, 0.0299, 0.1780, 0.3210, 0.0108},
|
---|
669 | { 0.0186, 0.1461, 0.0032, 0.2388, 0, 0.2484, 0.0933, 0.0034, 0.0083, 0.3475},
|
---|
670 | { 0.1239, 0.0123, 0.2952, 0.0000, 0.2484, 0, 0.0320, 0.1778, 0.3315, 0.0102},
|
---|
671 | { 0.0310, 0.0050, 0.1324, 0.0299, 0.0933, 0.0320, 0, 0.0644, 0.1650, 0.0770},
|
---|
672 | { 0.0059, 0.0989, 0.0137, 0.1780, 0.0034, 0.1778, 0.0644, 0, 0.0230, 0.2610},
|
---|
673 | { 0.0534, 0.2270, 0.0012, 0.3210, 0.0083, 0.3315, 0.1650, 0.0230, 0, 0.4611},
|
---|
674 | { 0.2043, 0.0458, 0.4024, 0.0108, 0.3475, 0.0102, 0.0770, 0.2610, 0.4611, 0},
|
---|
675 | },
|
---|
676 | new double[,]
|
---|
677 | {
|
---|
678 | { 0, 0.0230, 0.1818, 0.2301, 0.2212, 0.3641, 0.1723, 0.1672, 0.0123, 0.0171},
|
---|
679 | { 0.0230, 0, 0.0767, 0.1076, 0.1036, 0.2126, 0.0688, 0.0640, 0.0017, 0.0004},
|
---|
680 | { 0.1818, 0.0767, 0, 0.0024, 0.0015, 0.0305, 0.0004, 0.0006, 0.1055, 0.0867},
|
---|
681 | { 0.2301, 0.1076, 0.0024, 0, 0.0001, 0.0164, 0.0049, 0.0052, 0.1338, 0.1192},
|
---|
682 | { 0.2212, 0.1036, 0.0015, 0.0001, 0, 0.0194, 0.0035, 0.0037, 0.1306, 0.1147},
|
---|
683 | { 0.3641, 0.2126, 0.0305, 0.0164, 0.0194, 0, 0.0382, 0.0380, 0.2434, 0.2311},
|
---|
684 | { 0.1723, 0.0688, 0.0004, 0.0049, 0.0035, 0.0382, 0, 0.0000, 0.0930, 0.0764},
|
---|
685 | { 0.1672, 0.0640, 0.0006, 0.0052, 0.0037, 0.0380, 0.0000, 0, 0.0907, 0.0710},
|
---|
686 | { 0.0123, 0.0017, 0.1055, 0.1338, 0.1306, 0.2434, 0.0930, 0.0907, 0, 0.0005},
|
---|
687 | { 0.0171, 0.0004, 0.0867, 0.1192, 0.1147, 0.2311, 0.0764, 0.0710, 0.0005, 0},
|
---|
688 | },
|
---|
689 | new double[,]
|
---|
690 | {
|
---|
691 | { 14.7781, 14.3950, 13.7138, 13.9618, 14.0352, 13.8578, 14.3707, 14.1018, 14.4990, 13.9100},
|
---|
692 | { 14.3950, 14.7781, 13.5767, 13.7715, 14.1542, 14.2607, 14.2360, 13.4735, 14.3260, 14.6102},
|
---|
693 | { 13.7138, 13.5767, 14.7781, 13.8217, 13.9982, 13.8525, 13.8286, 14.2545, 14.2511, 13.5045},
|
---|
694 | { 13.9618, 13.7715, 13.8217, 14.7781, 14.2390, 14.4598, 13.7206, 13.7960, 13.5743, 13.6778},
|
---|
695 | { 14.0352, 14.1542, 13.9982, 14.2390, 14.7781, 14.4908, 13.6154, 13.4528, 14.0413, 13.9995},
|
---|
696 | { 13.8578, 14.2607, 13.8525, 14.4598, 14.4908, 14.7781, 13.8254, 13.4407, 13.7576, 14.3090},
|
---|
697 | { 14.3707, 14.2360, 13.8286, 13.7206, 13.6154, 13.8254, 14.7781, 14.3938, 14.3828, 13.7798},
|
---|
698 | { 14.1018, 13.4735, 14.2545, 13.7960, 13.4528, 13.4407, 14.3938, 14.7781, 14.2363, 13.0113},
|
---|
699 | { 14.4990, 14.3260, 14.2511, 13.5743, 14.0413, 13.7576, 14.3828, 14.2363, 14.7781, 13.9425},
|
---|
700 | { 13.9100, 14.6102, 13.5045, 13.6778, 13.9995, 14.3090, 13.7798, 13.0113, 13.9425, 14.7781},
|
---|
701 | },
|
---|
702 | }
|
---|
703 | );
|
---|
704 | }
|
---|
705 |
|
---|
706 | [TestMethod]
|
---|
707 | public void CovSumTest() {
|
---|
708 | var cov = new CovarianceSum();
|
---|
709 | cov.Terms.Add(new CovarianceSEiso());
|
---|
710 | cov.Terms.Add(new CovarianceLinear());
|
---|
711 | TestCovarianceFunction(cov, 0,
|
---|
712 | new double[,]
|
---|
713 | {
|
---|
714 | { 1.4860, 1.5376, 2.7382, 1.4230, 2.7566, 2.0148, 1.9261, 1.8493, 1.6069, 2.2035},
|
---|
715 | { 1.0861, 1.4463, 1.8848, 1.0165, 2.1818, 1.6036, 1.4240, 1.4965, 1.2360, 1.6526},
|
---|
716 | { 2.1463, 2.2472, 2.8854, 1.9188, 2.4455, 2.9283, 2.5049, 1.8107, 2.0157, 2.4059},
|
---|
717 | { 1.6245, 1.2089, 2.2059, 1.4630, 1.5864, 1.9084, 2.0859, 1.7825, 1.7332, 1.8574},
|
---|
718 | { 1.6804, 1.1454, 2.0031, 1.6914, 1.2725, 1.4029, 1.6810, 1.6888, 1.6437, 1.7665},
|
---|
719 | { 1.4052, 1.2437, 1.5900, 1.2941, 1.2438, 1.4882, 1.6072, 1.4970, 1.4811, 1.5135},
|
---|
720 | { 1.4913, 1.9972, 2.3544, 1.3689, 2.9275, 2.1163, 1.8043, 1.4564, 1.5325, 2.1139},
|
---|
721 | { 2.0334, 2.2303, 3.0928, 1.8439, 3.1092, 2.8169, 2.4555, 1.7771, 1.9760, 2.5789},
|
---|
722 | { 1.7324, 2.0254, 2.8414, 1.6386, 2.9270, 2.3807, 2.0510, 1.7808, 1.7231, 2.3527},
|
---|
723 | { 0.9196, 1.4220, 1.6254, 0.7696, 1.8861, 1.7579, 1.4076, 1.4163, 1.1077, 1.3988},
|
---|
724 | },
|
---|
725 | new double[][,]
|
---|
726 | {
|
---|
727 | new double[,]
|
---|
728 | {
|
---|
729 | { 0, 0.3197, 0.6358, 0.5518, 0.5207, 0.5909, 0.3361, 0.4897, 0.2447, 0.5720},
|
---|
730 | { 0.3197, 0, 0.6697, 0.6190, 0.4635, 0.4047, 0.4190, 0.6899, 0.3650, 0.1552},
|
---|
731 | { 0.6358, 0.6697, 0, 0.6031, 0.5367, 0.5927, 0.6008, 0.4084, 0.4103, 0.6843},
|
---|
732 | { 0.5518, 0.6190, 0.6031, 0, 0.4173, 0.2740, 0.6339, 0.6114, 0.6702, 0.6455},
|
---|
733 | { 0.5207, 0.4635, 0.5367, 0.4173, 0, 0.2510, 0.6610, 0.6935, 0.5180, 0.5362},
|
---|
734 | { 0.5909, 0.4047, 0.5927, 0.2740, 0.2510, 0, 0.6019, 0.6955, 0.6232, 0.3756},
|
---|
735 | { 0.3361, 0.4190, 0.6008, 0.6339, 0.6610, 0.6019, 0, 0.3205, 0.3279, 0.6165},
|
---|
736 | { 0.4897, 0.6899, 0.4084, 0.6114, 0.6935, 0.6955, 0.3205, 0, 0.4189, 0.7344},
|
---|
737 | { 0.2447, 0.3650, 0.4103, 0.6702, 0.5180, 0.6232, 0.3279, 0.4189, 0, 0.5595},
|
---|
738 | { 0.5720, 0.1552, 0.6843, 0.6455, 0.5362, 0.3756, 0.6165, 0.7344, 0.5595, 0},
|
---|
739 | },
|
---|
740 | new double[,]
|
---|
741 | {
|
---|
742 | { 2.0000, 1.6472, 1.1513, 1.3142, 1.3662, 1.2437, 1.6267, 1.4148, 1.7372, 1.2786},
|
---|
743 | { 1.6472, 2.0000, 1.0689, 1.1876, 1.4541, 1.5370, 1.5174, 1.0103, 1.5898, 1.8381},
|
---|
744 | { 1.1513, 1.0689, 2.0000, 1.2199, 1.3398, 1.2402, 1.2244, 1.5320, 1.5293, 1.0276},
|
---|
745 | { 1.3142, 1.1876, 1.2199, 2.0000, 1.5197, 1.7027, 1.1555, 1.2033, 1.0675, 1.1291},
|
---|
746 | { 1.3662, 1.4541, 1.3398, 1.5197, 2.0000, 1.7299, 1.0916, 0.9989, 1.3706, 1.3407},
|
---|
747 | { 1.2437, 1.5370, 1.2402, 1.7027, 1.7299, 2.0000, 1.2223, 0.9923, 1.1787, 1.5758},
|
---|
748 | { 1.6267, 1.5174, 1.2244, 1.1555, 1.0916, 1.2223, 2.0000, 1.6461, 1.6369, 1.1928},
|
---|
749 | { 1.4148, 1.0103, 1.5320, 1.2033, 0.9989, 0.9923, 1.6461, 2.0000, 1.5176, 0.7806},
|
---|
750 | { 1.7372, 1.5898, 1.5293, 1.0675, 1.3706, 1.1787, 1.6369, 1.5176, 2.0000, 1.3009},
|
---|
751 | { 1.2786, 1.8381, 1.0276, 1.1291, 1.3407, 1.5758, 1.1928, 0.7806, 1.3009, 2.0000},
|
---|
752 | },
|
---|
753 | }
|
---|
754 | );
|
---|
755 | TestCovarianceFunction(cov, 1,
|
---|
756 | new double[,]
|
---|
757 | {
|
---|
758 | { 7.7681, 7.7957, 9.1175, 7.6951, 9.1148, 8.2406, 8.2532, 8.2057, 7.9303, 8.5765},
|
---|
759 | { 7.3926, 7.7881, 8.2289, 7.3128, 8.5326, 7.8570, 7.7535, 7.8698, 7.5822, 8.0224},
|
---|
760 | { 8.5096, 8.6045, 9.2632, 8.2546, 8.7198, 9.2945, 8.8817, 8.1368, 8.3741, 8.7816},
|
---|
761 | { 7.9886, 7.4745, 8.5704, 7.8096, 7.7719, 8.1964, 8.4695, 8.1648, 8.1138, 8.2315},
|
---|
762 | { 8.0632, 7.4371, 8.3651, 8.0757, 7.4147, 7.6080, 8.0477, 8.0750, 8.0288, 8.1469},
|
---|
763 | { 7.7869, 7.5959, 7.9316, 7.6696, 7.4564, 7.7793, 7.9884, 7.8850, 7.8692, 7.8941},
|
---|
764 | { 7.7940, 8.3557, 8.7048, 7.6497, 9.3089, 8.3910, 8.1263, 7.7655, 7.8589, 8.4871},
|
---|
765 | { 8.3350, 8.5404, 9.4643, 8.1079, 9.4540, 9.1241, 8.7945, 8.0367, 8.2835, 8.9443},
|
---|
766 | { 8.0481, 8.3644, 9.2221, 7.9399, 9.2948, 8.6753, 8.3852, 8.1164, 8.0524, 8.7309},
|
---|
767 | { 7.2030, 7.7683, 7.9353, 7.0220, 8.1984, 8.0588, 7.7433, 7.7874, 7.4431, 7.7457},
|
---|
768 | },
|
---|
769 | new double[][,]
|
---|
770 | {
|
---|
771 | new double[,]
|
---|
772 | {
|
---|
773 | { 0, 0.3781, 1.0250, 0.7934, 0.7239, 0.8910, 0.4018, 0.6606, 0.2764, 0.8421},
|
---|
774 | { 0.3781, 0, 1.1512, 0.9715, 0.6106, 0.5082, 0.5320, 1.2453, 0.4451, 0.1669},
|
---|
775 | { 1.0250, 1.1512, 0, 0.9248, 0.7589, 0.8960, 0.9183, 0.5143, 0.5175, 1.2171},
|
---|
776 | { 0.7934, 0.9715, 0.9248, 0, 0.5292, 0.3149, 1.0188, 0.9487, 1.1534, 1.0583},
|
---|
777 | { 0.7239, 0.6106, 0.7589, 0.5292, 0, 0.2845, 1.1157, 1.2640, 0.7182, 0.7577},
|
---|
778 | { 0.8910, 0.5082, 0.8960, 0.3149, 0.2845, 0, 0.9214, 1.2749, 0.9845, 0.4616},
|
---|
779 | { 0.4018, 0.5320, 0.9183, 1.0188, 1.1157, 0.9214, 0, 0.3793, 0.3899, 0.9638},
|
---|
780 | { 0.6606, 1.2453, 0.5143, 0.9487, 1.2640, 1.2749, 0.3793, 0, 0.5318, 1.6567},
|
---|
781 | { 0.2764, 0.4451, 0.5175, 1.1534, 0.7182, 0.9845, 0.3899, 0.5318, 0, 0.8116},
|
---|
782 | { 0.8421, 0.1669, 1.2171, 1.0583, 0.7577, 0.4616, 0.9638, 1.6567, 0.8116, 0},
|
---|
783 | },
|
---|
784 | new double[,]
|
---|
785 | {
|
---|
786 | { 14.7781, 14.3950, 13.7138, 13.9618, 14.0352, 13.8578, 14.3707, 14.1018, 14.4990, 13.9100},
|
---|
787 | { 14.3950, 14.7781, 13.5767, 13.7715, 14.1542, 14.2607, 14.2360, 13.4735, 14.3260, 14.6102},
|
---|
788 | { 13.7138, 13.5767, 14.7781, 13.8217, 13.9982, 13.8525, 13.8286, 14.2545, 14.2511, 13.5045},
|
---|
789 | { 13.9618, 13.7715, 13.8217, 14.7781, 14.2390, 14.4598, 13.7206, 13.7960, 13.5743, 13.6778},
|
---|
790 | { 14.0352, 14.1542, 13.9982, 14.2390, 14.7781, 14.4908, 13.6154, 13.4528, 14.0413, 13.9995},
|
---|
791 | { 13.8578, 14.2607, 13.8525, 14.4598, 14.4908, 14.7781, 13.8254, 13.4407, 13.7576, 14.3090},
|
---|
792 | { 14.3707, 14.2360, 13.8286, 13.7206, 13.6154, 13.8254, 14.7781, 14.3938, 14.3828, 13.7798},
|
---|
793 | { 14.1018, 13.4735, 14.2545, 13.7960, 13.4528, 13.4407, 14.3938, 14.7781, 14.2363, 13.0113},
|
---|
794 | { 14.4990, 14.3260, 14.2511, 13.5743, 14.0413, 13.7576, 14.3828, 14.2363, 14.7781, 13.9425},
|
---|
795 | { 13.9100, 14.6102, 13.5045, 13.6778, 13.9995, 14.3090, 13.7798, 13.0113, 13.9425, 14.7781},
|
---|
796 | },
|
---|
797 | }
|
---|
798 | );
|
---|
799 | }
|
---|
800 | [TestMethod]
|
---|
801 | public void CovProdTest() {
|
---|
802 | var cov = new CovarianceProd();
|
---|
803 | cov.Factors.Add(new CovarianceSEiso());
|
---|
804 | cov.Factors.Add(new CovarianceLinear());
|
---|
805 | TestCovarianceFunction(cov, 0,
|
---|
806 | new double[,]
|
---|
807 | {
|
---|
808 | { 0.5245, 0.5389, 1.6120, 0.4836, 1.5106, 0.7554, 0.8386, 0.8239, 0.6239, 1.1336},
|
---|
809 | { 0.2889, 0.5225, 0.8337, 0.2496, 1.0595, 0.5710, 0.5052, 0.5547, 0.3724, 0.6822},
|
---|
810 | { 1.0623, 1.1239, 1.7263, 0.8459, 1.0618, 1.6839, 1.3988, 0.7607, 0.9521, 1.3106},
|
---|
811 | { 0.6585, 0.3625, 1.1117, 0.5349, 0.5137, 0.7756, 1.0648, 0.7942, 0.7510, 0.8516},
|
---|
812 | { 0.7040, 0.3275, 0.9490, 0.7125, 0.3548, 0.4404, 0.7037, 0.7073, 0.6680, 0.7798},
|
---|
813 | { 0.4641, 0.3741, 0.6234, 0.3844, 0.3673, 0.5306, 0.6413, 0.5193, 0.5036, 0.5608},
|
---|
814 | { 0.5385, 0.9383, 1.1840, 0.4565, 1.7927, 0.8766, 0.7518, 0.5198, 0.5765, 1.0608},
|
---|
815 | { 0.8694, 1.0060, 1.8506, 0.7108, 1.7052, 1.3654, 1.2234, 0.6698, 0.8427, 1.4060},
|
---|
816 | { 0.6989, 0.9246, 1.7118, 0.6277, 1.6927, 1.0667, 0.9339, 0.7510, 0.7057, 1.2768},
|
---|
817 | { 0.1972, 0.5055, 0.6262, 0.1263, 0.7928, 0.7002, 0.4950, 0.4913, 0.2894, 0.4889},
|
---|
818 |
|
---|
819 | },
|
---|
820 | new double[][,]
|
---|
821 | {
|
---|
822 | new double[,]
|
---|
823 | {
|
---|
824 | { 0, 0.4127, 1.0287, 0.6741, 0.5630, 0.4325, 0.5722, 1.0336, 0.4752, 0.5617},
|
---|
825 | { 0.4127, 0, 0.6880, 0.3738, 0.2907, 0.1730, 0.4679, 0.8675, 0.4878, 0.1286},
|
---|
826 | { 1.0287, 0.6880, 0, 0.7937, 0.6606, 0.5323, 0.9538, 0.9634, 0.8138, 0.6381},
|
---|
827 | { 0.6741, 0.3738, 0.7937, 0, 0.3455, 0.1881, 0.6345, 0.9714, 0.7339, 0.3214},
|
---|
828 | { 0.5630, 0.2907, 0.6606, 0.3455, 0, 0.1313, 0.5056, 0.8485, 0.6038, 0.2630},
|
---|
829 | { 0.4325, 0.1730, 0.5323, 0.1881, 0.1313, 0, 0.3748, 0.6687, 0.4734, 0.1491},
|
---|
830 | { 0.5722, 0.4679, 0.9538, 0.6345, 0.5056, 0.3748, 0, 0.6955, 0.5871, 0.5059},
|
---|
831 | { 1.0336, 0.8675, 0.9634, 0.9714, 0.8485, 0.6687, 0.6955, 0, 0.9475, 0.6932},
|
---|
832 | { 0.4752, 0.4878, 0.8138, 0.7339, 0.6038, 0.4734, 0.5871, 0.9475, 0, 0.6046},
|
---|
833 | { 0.5617, 0.1286, 0.6381, 0.3214, 0.2630, 0.1491, 0.5059, 0.6932, 0.6046, 0},
|
---|
834 | },
|
---|
835 | new double[,]
|
---|
836 | {
|
---|
837 | { 4.0023, 2.1261, 1.8626, 1.6054, 1.4771, 0.9102, 2.7697, 2.9858, 3.3730, 1.2556},
|
---|
838 | { 2.1261, 1.9372, 1.0981, 0.7172, 0.9121, 0.6569, 1.6947, 1.2703, 2.1250, 1.5231},
|
---|
839 | { 1.8626, 1.0981, 4.6784, 1.6055, 1.6490, 1.1138, 1.9438, 3.6140, 3.0330, 0.9581},
|
---|
840 | { 1.6054, 0.7172, 1.6055, 2.5635, 1.2584, 1.1688, 1.1565, 1.9117, 1.1689, 0.5622},
|
---|
841 | { 1.4771, 0.9121, 1.6490, 1.2584, 1.8469, 0.9049, 0.8350, 1.2221, 1.5977, 0.6577},
|
---|
842 | { 0.9102, 0.6569, 1.1138, 1.1688, 0.9049, 0.8258, 0.7611, 0.9541, 0.8954, 0.6253},
|
---|
843 | { 2.7697, 1.6947, 1.9438, 1.1565, 0.8350, 0.7611, 3.6346, 3.5720, 2.9305, 0.9789},
|
---|
844 | { 2.9858, 1.2703, 3.6140, 1.9117, 1.2221, 0.9541, 3.5720, 5.8240, 3.4327, 0.7368},
|
---|
845 | { 3.3730, 2.1250, 3.0330, 1.1689, 1.5977, 0.8954, 2.9305, 3.4327, 4.3277, 1.4057},
|
---|
846 | { 1.2556, 1.5231, 0.9581, 0.5622, 0.6577, 0.6253, 0.9789, 0.7368, 1.4057, 1.7151},
|
---|
847 | },
|
---|
848 | }
|
---|
849 | );
|
---|
850 | TestCovarianceFunction(cov, 1,
|
---|
851 | new double[,]
|
---|
852 | {
|
---|
853 | { 6.2342, 6.7795, 13.6134, 5.8887, 14.2405, 10.1987, 8.8183, 7.8217, 6.6344, 9.9609},
|
---|
854 | { 3.2242, 5.2384, 8.2928, 2.8624, 10.2826, 7.2613, 5.2743, 4.8651, 3.6758, 6.0948},
|
---|
855 | { 9.7926, 10.6338, 14.7280, 8.6537, 12.8640, 15.3218, 12.0130, 8.0240, 8.9653, 11.3359},
|
---|
856 | { 6.0497, 4.4825, 10.1916, 5.2725, 7.5223, 9.0848, 8.6907, 6.5563, 6.2868, 7.4352},
|
---|
857 | { 5.7877, 3.8005, 8.8010, 5.7766, 5.6360, 6.2037, 6.3872, 5.6164, 5.3671, 6.5321},
|
---|
858 | { 3.8501, 3.6110, 6.2543, 3.3286, 5.0963, 6.1672, 5.3421, 4.0085, 3.8812, 4.6925},
|
---|
859 | { 6.0719, 8.8301, 11.5124, 5.4433, 14.9080, 10.6099, 8.0304, 5.7589, 6.0753, 9.3107},
|
---|
860 | { 9.8306, 11.1183, 16.3892, 8.8231, 16.9213, 15.2084, 12.3844, 8.3980, 9.3789, 12.8390},
|
---|
861 | { 7.6019, 9.3580, 14.3105, 7.1044, 15.2800, 12.2846, 9.6031, 7.6887, 7.3699, 10.8667},
|
---|
862 | { 2.3372, 4.9884, 6.9233, 1.6100, 8.7070, 7.9328, 5.0646, 4.3597, 2.9643, 4.8145},
|
---|
863 | },
|
---|
864 | new double[][,]
|
---|
865 | {
|
---|
866 | new double[,]
|
---|
867 | {
|
---|
868 | { 0, 0.4881, 1.6583, 0.9692, 0.7827, 0.6522, 0.6841, 1.3942, 0.5367, 0.8270},
|
---|
869 | { 0.4881, 0, 1.1827, 0.5867, 0.3830, 0.2172, 0.5941, 1.5658, 0.5949, 0.1383},
|
---|
870 | { 1.6583, 1.1827, 0, 1.2171, 0.9340, 0.8047, 1.4579, 1.2131, 1.0263, 1.1349},
|
---|
871 | { 0.9692, 0.5867, 1.2171, 0, 0.4382, 0.2161, 1.0197, 1.5073, 1.2629, 0.5270},
|
---|
872 | { 0.7827, 0.3830, 0.9340, 0.4382, 0, 0.1488, 0.8534, 1.5465, 0.8372, 0.3717},
|
---|
873 | { 0.6522, 0.2172, 0.8047, 0.2161, 0.1488, 0, 0.5737, 1.2259, 0.7478, 0.1832},
|
---|
874 | { 0.6841, 0.5941, 1.4579, 1.0197, 0.8534, 0.5737, 0, 0.8230, 0.6981, 0.7909},
|
---|
875 | { 1.3942, 1.5658, 1.2131, 1.5073, 1.5465, 1.2259, 0.8230, 0, 1.2028, 1.5638},
|
---|
876 | { 0.5367, 0.5949, 1.0263, 1.2629, 0.8372, 0.7478, 0.6981, 1.2028, 0, 0.8770},
|
---|
877 | { 0.8270, 0.1383, 1.1349, 0.5270, 0.3717, 0.1832, 0.7909, 1.5638, 0.8770, 0},
|
---|
878 | },
|
---|
879 | new double[,]
|
---|
880 | {
|
---|
881 | { 29.5729, 18.5805, 22.1876, 17.0550, 15.1746, 10.1428, 24.4678, 29.7604, 28.1516, 13.6594},
|
---|
882 | { 18.5805, 14.3139, 13.9483, 8.3170, 8.8785, 6.0953, 15.8990, 16.9410, 19.1490, 12.1067},
|
---|
883 | { 22.1876, 13.9483, 34.5691, 18.1905, 17.2281, 12.4415, 21.9535, 33.6266, 28.2630, 12.5918},
|
---|
884 | { 17.0550, 8.3170, 18.1905, 18.9418, 11.7900, 9.9253, 13.7325, 21.9184, 14.8634, 6.8107},
|
---|
885 | { 15.1746, 8.8785, 17.2281, 11.7900, 13.6471, 7.5799, 10.4142, 16.4592, 16.3685, 6.8676},
|
---|
886 | { 10.1428, 6.0953, 12.4415, 9.9253, 7.5799, 6.1018, 8.6086, 12.9238, 10.4507, 5.6783},
|
---|
887 | { 24.4678, 15.8990, 21.9535, 13.7325, 10.4142, 8.6086, 26.8561, 31.2335, 25.7489, 11.3079},
|
---|
888 | { 29.7604, 16.9410, 33.6266, 21.9184, 16.4592, 12.9238, 31.2335, 43.0336, 32.2012, 12.2815},
|
---|
889 | { 28.1516, 19.1490, 28.2630, 14.8634, 16.3685, 10.4507, 25.7489, 32.2012, 31.9778, 15.0663},
|
---|
890 | { 13.6594, 12.1067, 12.5918, 6.8107, 6.8676, 5.6783, 11.3079, 12.2815, 15.0663, 12.6728},
|
---|
891 | },
|
---|
892 | }
|
---|
893 | , 5e-3);
|
---|
894 | }
|
---|
895 |
|
---|
896 |
|
---|
897 | private void TestCovarianceFunction(ICovarianceFunction cf, double hypValue, double[,] expectedCov, double[][,] expectedGradients, double delta = 1E-3) {
|
---|
898 | var x = GetData();
|
---|
899 | var xt = GetDataTest();
|
---|
900 |
|
---|
901 | int nHyp = cf.GetNumberOfParameters(x.GetLength(1));
|
---|
902 | var hyp = Enumerable.Repeat(hypValue, nHyp).ToArray();
|
---|
903 | cf.SetParameter(hyp);
|
---|
904 |
|
---|
905 | int rows0 = x.GetLength(0);
|
---|
906 | int rows1 = xt.GetLength(0);
|
---|
907 | var actualCov = new double[rows0, rows1];
|
---|
908 | for (int i = 0; i < rows0; i++)
|
---|
909 | for (int j = 0; j < rows1; j++)
|
---|
910 | actualCov[i, j] = cf.GetCrossCovariance(x, xt, i, j);
|
---|
911 |
|
---|
912 | AssertEqual(expectedCov, actualCov, delta);
|
---|
913 |
|
---|
914 | for (int i = 0; i < rows0; i++)
|
---|
915 | for (int j = 0; j < rows1; j++) {
|
---|
916 | var g = cf.GetGradient(x, i, j).ToArray();
|
---|
917 | for (int k = 0; k < nHyp; k++)
|
---|
918 | Assert.AreEqual(expectedGradients[k][i, j], g[k], delta);
|
---|
919 | }
|
---|
920 | }
|
---|
921 |
|
---|
922 |
|
---|
923 | private void TestMeanFunction(IMeanFunction mf, double hypValue, double[] expectedMean, double[][] expectedGradients) {
|
---|
924 | var x = GetData();
|
---|
925 | var xt = GetDataTest();
|
---|
926 |
|
---|
927 | int nHyp = mf.GetNumberOfParameters(x.GetLength(1));
|
---|
928 | var hyp = Enumerable.Repeat(hypValue, nHyp).ToArray();
|
---|
929 | mf.SetParameter(hyp);
|
---|
930 | mf.SetData(x);
|
---|
931 |
|
---|
932 | var m = mf.GetMean(xt);
|
---|
933 |
|
---|
934 | AssertEqual(expectedMean, m);
|
---|
935 |
|
---|
936 | for (int i = 0; i < nHyp; i++) {
|
---|
937 | var g = mf.GetGradients(i, x);
|
---|
938 | AssertEqual(expectedGradients[i], g);
|
---|
939 | }
|
---|
940 | }
|
---|
941 |
|
---|
942 |
|
---|
943 | private void AssertEqual(double[] expected, double[] actual) {
|
---|
944 | Assert.AreEqual(expected.Length, actual.Length);
|
---|
945 | for (int i = 0; i < expected.Length; i++)
|
---|
946 | Assert.AreEqual(expected[i], actual[i], 1E-3);
|
---|
947 | }
|
---|
948 | private void AssertEqual(double[,] expected, double[,] actual, double delta = 5e-3) {
|
---|
949 | Assert.AreEqual(expected.Length, actual.Length);
|
---|
950 | for (int i = 0; i < expected.GetLength(0); i++)
|
---|
951 | for (int j = 0; j < expected.GetLength(1); j++)
|
---|
952 | Assert.AreEqual(expected[i, j], actual[i, j], delta);
|
---|
953 | }
|
---|
954 |
|
---|
955 | private double[,] GetData() {
|
---|
956 | return new double[,]
|
---|
957 | {
|
---|
958 | {0.4173, 0.7803, 0.2348, 0.5470, 0.9294},
|
---|
959 | {0.0497, 0.3897, 0.3532, 0.2963, 0.7757},
|
---|
960 | {0.9027, 0.2417, 0.8212, 0.7447, 0.4868},
|
---|
961 | {0.9448, 0.4039, 0.0154, 0.1890, 0.4359},
|
---|
962 | {0.4909, 0.0965, 0.0430, 0.6868, 0.4468},
|
---|
963 | {0.4893, 0.1320, 0.1690, 0.1835, 0.3063},
|
---|
964 | {0.3377, 0.9421, 0.6491, 0.3685, 0.5085},
|
---|
965 | {0.9001, 0.9561, 0.7317, 0.6256, 0.5108},
|
---|
966 | {0.3692, 0.5752, 0.6477, 0.7802, 0.8176},
|
---|
967 | {0.1112, 0.0598, 0.4509, 0.0811, 0.7948}
|
---|
968 | };
|
---|
969 | }
|
---|
970 |
|
---|
971 | private double[,] GetDataTest() {
|
---|
972 | return new double[,]
|
---|
973 | {
|
---|
974 | {0.6443, 0.2077, 0.3111, 0.5949, 0.0855},
|
---|
975 | {0.3786, 0.3012, 0.9234, 0.2622, 0.2625},
|
---|
976 | {0.8116, 0.4709, 0.4302, 0.6028, 0.8010},
|
---|
977 | {0.5328, 0.2305, 0.1848, 0.7112, 0.0292},
|
---|
978 | {0.3507, 0.8443, 0.9049, 0.2217, 0.9289},
|
---|
979 | {0.9390, 0.1948, 0.9797, 0.1174, 0.7303},
|
---|
980 | {0.8759, 0.2259, 0.4389, 0.2967, 0.4886},
|
---|
981 | {0.5502, 0.1707, 0.1111, 0.3188, 0.5785},
|
---|
982 | {0.6225, 0.2277, 0.2581, 0.4242, 0.2373},
|
---|
983 | {0.5870, 0.4357, 0.4087, 0.5079, 0.4588}
|
---|
984 | };
|
---|
985 | }
|
---|
986 | }
|
---|
987 | }
|
---|