public void BackpropagationError()
        {
            double currentError = Single.MaxValue; // текущая ошибка
            double lastError = 0; // последняя ошибка
            int epochNumber = 0; // номер эпохи
            StudyAlgorithm options = new StudyAlgorithm(); // ЗАЧЕМ ЭТО???  ты же наследуешь от этого класаа!!!!!!!!!

            do
            {
                lastError = currentError;

                int currentIndex = 0; // текущий индекс

                // эпоха
                do
                {
                    foreach(float point in pointX)
                    {

                    }
                    // Вычислить разность между выходом сети и требуемым выходом (целевым вектором обучающей пары).
                    // Подкорректировать веса сети для минимизации ошибки

                } while (currentIndex < pointX.Count); //вместо 0 количество данных

                // пересчет ошибки currentError на всех данных
                currentError = 0;
                for (int i = 0; i < 0; i++)
                {
                    // ....
                }
                currentError *= 1d / pointX.Count;

                epochNumber++;
            }
            while (epochNumber < options.maximumEpochs && currentError > options.MinError &&
                        Math.Abs(currentError - lastError) > options.MinErrorChange);
        }
        private void TrainingParametersMenuItem_Click(object sender, RoutedEventArgs e)
        {
            TrainingParametersWindow trainingParameters = new TrainingParametersWindow();
            StudyAlgorithm options = new StudyAlgorithm();

            if (trainingParameters.ShowDialog() == true)
            {
                options.step = Convert.ToDouble(trainingParameters.LearningStep.Text);
                options.maximumEpochs = Convert.ToInt32(trainingParameters.NumberOfEpochs.Text);
            }
        }