public void MakeFitEfficiency(Wave[] waves) { try { var fitCoeff = MathNet.Numerics.Fit.Polynomial(waves.Where(w => w.Efficiency != 0).Select(w => w.lambda).ToArray(), waves.Where(w => w.Efficiency != 0).Select(w => w.Efficiency).ToArray(), 2); m_EfficiencyFit = new ApproxymationCurve() { isExist = true, a = fitCoeff[2], b = fitCoeff[1], c = fitCoeff[0] }; } catch { m_EfficiencyFit = new ApproxymationCurve() { isExist = false }; } }
public void MakeFitMagnification(Wave[] waves) { try { var fitCoeff = MathNet.Numerics.Fit.Polynomial(waves.Where(w => !double.IsNaN(w.Magnification)).Select(w => w.lambda).ToArray(), waves.Where(w => !double.IsNaN(w.Magnification)).Select(w => w.Magnification).ToArray(), 2); m_MagnificationFit = new ApproxymationCurve() { isExist = true, a = fitCoeff[2], b = fitCoeff[1], c = fitCoeff[0] }; } catch { m_MagnificationFit = new ApproxymationCurve() { isExist = false }; } }