/// <summary> /// Radial basis function interpolated surface /// </summary> /// <param name="selector">Points to build surface on</param> /// <param name="rcsProvider">Radio cross section provider</param> /// <param name="baseRadius">Average distance between points</param> /// <param name="layers">Layers number</param> /// <param name="lambda">Regularization coef</param> public RbfMultilayer(PointSelector.CompressedPointSelectorWrapper selector, IInterpolationProvider rcsProvider, int baseRadius, int layers, double lambda = 0.01) : base(selector, rcsProvider) { _baseRadius = baseRadius; _layers = layers; _lambda = lambda; }
public Surface16Points(PointSelector.CompressedPointSelectorWrapper selector, IInterpolationProvider rcsProvider) : base(selector) { _rcsProvider = rcsProvider; for (int i = 0; i < 4; i++) { _zCoefficients[i] = LinearEquation.SolveEquation( Selector.Skip(i * 4).Take(4).Select(x => (float)x.Location.X).ToArray(), Selector.Skip(i * 4).Take(4).Select(x => x.Value).ToArray()); _yCoefficients[i] = LinearEquation.SolveEquation( Selector.Skip(i * 4).Take(4).Select(x => (float)x.Location.X).ToArray(), Selector.Skip(i * 4).Take(4).Select(x => (float)x.Location.Y).ToArray()); } }
public RbfSurface(PointSelector.CompressedPointSelectorWrapper selector, IInterpolationProvider rcsProvider) : base(selector) { _rcsProvider = rcsProvider; }
public RbfMultilayerCoef(PointSelector.CompressedPointSelectorWrapper selector, IInterpolationProvider rcsProvider, int baseRadius, int layers, double lambda = 0.01) : base(selector, rcsProvider, baseRadius, layers, lambda) { }
public RbfQnnCoef(PointSelector.CompressedPointSelectorWrapper selector, IInterpolationProvider rcsProvider) : base(selector, rcsProvider) { }