/// <summary> /// Prepares minimization by all function parameters /// </summary> /// <returns>true if preparation successful</returns> public bool PrepareMinimizationFull() { if (Data == null) { return(false); } if (m_Update_Ongoing) { return(false); } if (Data.Solution.SelectedFunction == null) { return(false); } PrepareMinimizationData(); NMO = new Nelder_Mead_Optimization(3, Data.Solution.SelectedFunction.GetParameters(), Data.Solution.SelectedFunction.GetLowerLimits(), Data.Solution.SelectedFunction.GetUpperLimits(), 1000); NMO.onObjectiveFunction += new Nelder_Mead_Optimization.ObjectiveFunctionDelegate(TargetFunction2); NMO.onReportProgress += new Nelder_Mead_Optimization.ProgressReportDelegate(ReportProgress); return(true); }
/// <summary> /// Prepares minimization by user-selected parameters /// </summary> /// <returns>true if preparation successful</returns> public bool PrepareMinimizationPartial() { if (Data == null) { return(false); } if (m_Update_Ongoing) { return(false); } if (Data.Solution.SelectedFunction == null) { return(false); } if (dataGridView2.SelectedRows.Count <= 0) { return(false); } PrepareMinimizationData(); List <int> Ps = new List <int>(); foreach (DataGridViewRow dgvr in dataGridView2.SelectedRows) { Ps.Add(dgvr.Index); } m_prmsIndex = Ps.ToArray(); NMO = new Nelder_Mead_Optimization(3, Data.Solution.SelectedFunction.GetParameters(m_prmsIndex), Data.Solution.SelectedFunction.GetLowerLimits(m_prmsIndex), Data.Solution.SelectedFunction.GetUpperLimits(m_prmsIndex), 1000); NMO.onObjectiveFunction += new Nelder_Mead_Optimization.ObjectiveFunctionDelegate(TargetFunction1); NMO.onReportProgress += new Nelder_Mead_Optimization.ProgressReportDelegate(ReportProgress); return(true); }