/// <summary> /// Создаем критерий останова /// </summary> /// <param name="stopCondition">перечисление критерий останова</param> /// <returns></returns> public static IStopCondition StopCondition(EnumStopCondition stopCondition = EnumStopCondition.КоличествоИтераций) { IStopCondition _StopCondition; //Создаем метод с заданным критерием останова switch (stopCondition) { case EnumStopCondition.КоличествоЭкстремумов: _StopCondition = new StopCondition_1() { StopConditionType = (int)EnumStopCondition.КоличествоЭкстремумов, //Задаем максимальное количество внешних итераций (компонентов сигнала) //I = 8; J = 8 }; break; case EnumStopCondition.КоличествоИтерацийИлиЭкстремумов: _StopCondition = new StopCondition_2() { StopConditionType = (int)EnumStopCondition.КоличествоИтерацийИлиЭкстремумов, //Задаем максимальное количество внешних итераций (компонентов сигнала) //I = 8; J = 8 }; break; default: //EnumStopCondition.КоличествоИтераций: _StopCondition = new StopCondition() { StopConditionType = (int)EnumStopCondition.КоличествоИтераций, //Задаем максимальное количество внешних итераций (компонентов сигнала) //I = 8; J = 8 }; break; } return _StopCondition; }
/// <summary> /// Создаем критерий останова для процесса отсеивания /// </summary> /// <param name="stopConditionSeparate">Критерий останова для процесса отсеивания</param> /// <returns>Критерий останова для процесса отсеивания</returns> public static IStopCondition StopConditionSeparate(EnumStopConditionSeparate stopConditionSeparate = EnumStopConditionSeparate.КоличествоИтерацийИлиДостигнутаТочность) { IStopCondition _StopConditionSeparate; //Создаем критерий останова для процесса отсеивания switch (stopConditionSeparate) { case EnumStopConditionSeparate.ДостигнутаТочностьОтсеивания: _StopConditionSeparate = new StopConditionSeparate_1() { StopConditionType = (int)EnumStopConditionSeparate.ДостигнутаТочностьОтсеивания, //Задаем максимальное количество внутренних итераций отсеивания (определение высокочастотной составляющей) //J = 8; J = 0, //Задаем максимальное количество внутренних итераций отсеивания (определение высокочастотной составляющей) //Нормализованная квадратичная разность между двумя последовательными операциями приближения S = 0.001, dS = 0.001 }; break; case EnumStopConditionSeparate.КоличествоИтерацийИлиДостигнутаТочность: _StopConditionSeparate = new StopConditionSeparate_2() { StopConditionType = (int)EnumStopConditionSeparate.КоличествоИтерацийИлиДостигнутаТочность, //Задаем максимальное количество внутренних итераций отсеивания (определение высокочастотной составляющей) //J = 8; J = 8, //Задаем максимальное количество внутренних итераций отсеивания (определение высокочастотной составляющей) //Нормализованная квадратичная разность между двумя последовательными операциями приближения S = 0.001, dS = 0.001 }; break; default: //EnumStopCondition.КоличествоИтераций: _StopConditionSeparate = new StopCondition() { StopConditionType = (int)EnumStopCondition.КоличествоИтераций, //Задаем максимальное количество внутренних итераций отсеивания (определение высокочастотной составляющей) //J = 8; J = 8, //Задаем максимальное количество внутренних итераций отсеивания (определение высокочастотной составляющей) //Нормализованная квадратичная разность между двумя последовательными операциями приближения S = 0 }; break; } return _StopConditionSeparate; }