Changeset 8455 for trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/GaussianProcess/CovariancePeriodic.cs
- Timestamp:
- 08/09/12 09:33:23 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/GaussianProcess/CovariancePeriodic.cs
r8417 r8455 117 117 } 118 118 119 public double[] GetGradient(int i, int j) { 119 public double GetGradient(int i, int j, int k) { 120 double v = Math.PI * sd[i, j] / p; 121 switch (k) { 122 case 0: { 123 double newK = Math.Sin(v) / l; 124 newK = newK * newK; 125 return 4 * sf2 * Math.Exp(-2 * newK) * newK; 126 } 127 case 1: { 128 double r = Math.Sin(v) / l; 129 return 4 * sf2 / l * Math.Exp(-2 * r * r) * r * Math.Cos(v) * v; 130 } 131 case 2: { 132 double newK = Math.Sin(v) / l; 133 newK = newK * newK; 134 return 2 * sf2 * Math.Exp(-2 * newK); 120 135 121 var res = new double[3]; 122 double k = sd[i, j]; 123 k = Math.PI * k / p; 124 { 125 double newK = Math.Sin(k) / l; 126 newK = newK * newK; 127 res[0] = 4 * sf2 * Math.Exp(-2 * newK) * newK; 136 } 137 default: { 138 throw new ArgumentException("CovariancePeriodic only has three hyperparameters.", "k"); 139 } 128 140 } 129 {130 double r = Math.Sin(k) / l;131 res[1] = 4 * sf2 / l * Math.Exp(-2 * r * r) * r * Math.Cos(k) * k;132 }133 {134 double newK = Math.Sin(k) / l;135 newK = newK * newK;136 res[2] = 2 * sf2 * Math.Exp(-2 * newK);137 }138 139 return res;140 141 } 141 142
Note: See TracChangeset
for help on using the changeset viewer.