Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/31/12 11:19:24 (12 years ago)
Author:
gkronber
Message:

#1902 added linear mean and covariance function

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/GaussianProcess/GaussianProcessModel.cs

    r8323 r8366  
    138138
    139139      // calculate means and covariances
    140       double[] m = meanFunction.GetMean();
     140      double[] m = meanFunction.GetMean(x);
    141141      for (int i = 0; i < n; i++) {
    142142
     
    188188      double[] meanGradients = new double[meanFunction.GetNumberOfParameters(nAllowedVariables)];
    189189      for (int i = 0; i < meanGradients.Length; i++) {
    190         var meanGrad = meanFunction.GetGradients(i);
     190        var meanGrad = meanFunction.GetGradients(i, x);
    191191        meanGradients[i] = -Util.ScalarProd(meanGrad, alpha);
    192192      }
    193193
    194194      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            }
    200202          }
    201203        }
    202       }
    203       covGradients = covGradients.Select(g => g / 2.0).ToArray();
     204        covGradients = covGradients.Select(g => g / 2.0).ToArray();
     205      }
    204206
    205207      return new double[] { noiseGradient }
     
    246248      covarianceFunction.SetParameter(covHyp, x, newX);
    247249      meanFunction.SetParameter(meanHyp, newX);
    248       var ms = meanFunction.GetMean();
     250      var ms = meanFunction.GetMean(newX);
    249251      for (int i = 0; i < newN; i++) {
    250252
Note: See TracChangeset for help on using the changeset viewer.