Вихідні елементи;
Номери перших елементів класів при оптимальній класифікації;
Значення центрів тяжіння класів при оптимальній класифікації;
Значення похибок центрів тяжіння класів при оптимальній класифікації;
Номери перших елементів класів при рівномірній класифікації;
Значення центрів тяжіння класів при рівномірній класифікації;
Значення похибок центрів тяжіння класів при рівномірній класифікації;
Значення середньоквадратичного відхилення при оптимальній і рівномірної класифікації.
. 2 Програмна реалізація основних функцій методу оптимальної класифікації
У ході програмної реалізації основних функцій роботи методу оптимальної класифікації одновимірного впорядкованої множини на основі «склеювання з найближчим» в середовищі VisualStudio 2013 на мові С ++ [8, 9] розроблені наступні фрагменти коду програми.
Наведемо лістинг підключення стандартних бібліотек.
Лістинг 4. Фрагмент програми підключення стандартних бібліотек
# include stdafx.h
# include lt; iostream gt;
# include lt; fstream gt;
# include lt; math.h gt;
Функція, яка шукає «центр ваги» одного класу, приведена в лістингу 5.
Лістинг 5. Функція, яка шукає «центр ваги» одного класу
//функція шукає центр ваги одного класу
//повертає координату центраf_centre1 (int * n, double * x, int i)
{sum1; k;=0; (k=n [i]; k lt; n [i + 1]; k ++)
{= sum1 + x [k];
}=sum1/(n [i + 1] - n [i]);
return sum1;
}
Функція, яка шукає «центр ваги» фіктивно об'єднаних двох класів, приведена в лістингу 6. ??
Лістинг 6. Функція, яка шукає «центр ваги» фіктивно об'єднаних двох класів
//функція шукає центр ваги фіктивно об'єднаних двох класів
//повертає координату центраf_centre2 (int * n, double * x, int i)
{sum1; k;=0; (k=n [i]; k lt; n [i + 2]; k ++)
{= sum1 + x [k];
}=sum1/(n [i + 2] - n [i]);
return sum1;
}
Функція, яка вважає похибка апроксимації одного класу, приведена в лістингу 7.
Лістинг 7. Функція, яка вважає похибка апроксимації одного класу
//функція вважає похибка апроксимації одного класу
//повертає значення погрешностіf_error1 (double y0, int * n, double * x, int i)
{sum2; k;=0; (k=n [i]; k lt; n [i + 1]; k ++)
{= sum2 + fabs (y0 - x [k]);
}=sum2/(n [i + 1] - n [i]);
return sum2;
}
Функція, яка вважає похибка апроксимації двох класів, приведена в лістингу 8.
Лістинг 8. Функція, яка вважає похибка апроксимації двох класів
//функція вважає похибка апроксимації двох класів
//повертає значення погрешностіf_error2 (double y0, int * n, double * x, int i)
{sum2; k;=0; (k=n [i]; k lt; n [i + 2]; k ++)
{= sum2 + fabs (y0 - x [k]);
}=sum2/(n [i + 2] - n [i]);
return sum2;
}
Функція, яка обчислює суму квадратів всіх елементів множини Х, приведена в лістингу 9.
Лістинг 9. Функція, що обчислює суму квадратів всіх елементів множини Х
//функція обчислює суму квадратів всіх елементів множини Х
//повертає суму квадратів всіх елементів множини Х
double f_sum2 (int N0, double * x)
{k; sumX2;=0; (k=0; k lt; N0; k ++)
{= sumX2 + pow (x [k], 2);
} sumX2;
}
Функція, яка шукає мінімальне значення sMin1 і його номер iMin1 в масиві s довжиною n, приведена в лістингу 10.
Лістинг 10. Функція, яка шукає мінімальне значення sMin1 і його номер iMin1 в масиві s довжиною n
//функція шукає мінімальне значення sMin1 і його номер iMin1 в масиві s довжиною n
//повертає sMin1 і iMin1f_Min (double * s, int n, double * sMin1)
{