Changeset 8366 for trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/GaussianProcess/GaussianProcessModel.cs
- Timestamp:
- 07/31/12 11:19:24 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/GaussianProcess/GaussianProcessModel.cs
r8323 r8366 138 138 139 139 // calculate means and covariances 140 double[] m = meanFunction.GetMean( );140 double[] m = meanFunction.GetMean(x); 141 141 for (int i = 0; i < n; i++) { 142 142 … … 188 188 double[] meanGradients = new double[meanFunction.GetNumberOfParameters(nAllowedVariables)]; 189 189 for (int i = 0; i < meanGradients.Length; i++) { 190 var meanGrad = meanFunction.GetGradients(i );190 var meanGrad = meanFunction.GetGradients(i, x); 191 191 meanGradients[i] = -Util.ScalarProd(meanGrad, alpha); 192 192 } 193 193 194 194 double[] covGradients = new double[covarianceFunction.GetNumberOfParameters(nAllowedVariables)]; 195 for (int i = 0; i < n; i++) { 196 for (int j = 0; j < n; j++) { 197 var covDeriv = covarianceFunction.GetGradient(i, j); 198 for (int k = 0; k < covGradients.Length; k++) { 199 covGradients[k] += q[i, j] * covDeriv[k]; 195 if (covGradients.Length > 0) { 196 for (int i = 0; i < n; i++) { 197 for (int j = 0; j < n; j++) { 198 var covDeriv = covarianceFunction.GetGradient(i, j); 199 for (int k = 0; k < covGradients.Length; k++) { 200 covGradients[k] += q[i, j] * covDeriv[k]; 201 } 200 202 } 201 203 } 202 }203 covGradients = covGradients.Select(g => g / 2.0).ToArray();204 covGradients = covGradients.Select(g => g / 2.0).ToArray(); 205 } 204 206 205 207 return new double[] { noiseGradient } … … 246 248 covarianceFunction.SetParameter(covHyp, x, newX); 247 249 meanFunction.SetParameter(meanHyp, newX); 248 var ms = meanFunction.GetMean( );250 var ms = meanFunction.GetMean(newX); 249 251 for (int i = 0; i < newN; i++) { 250 252
Note: See TracChangeset
for help on using the changeset viewer.