Y
|
Выборка
|
Y2
|
Сглаженный ряд методом скользящего среднего
|
Y3
|
Сглаженный ряд методом взвешенного среднего
|
K
|
Объем выборки
|
N
|
Маска
|
J
|
Половина маски
|
M
|
Математическое ожидание выборки
|
S
|
Среднеквадратичное отклонение выборки
|
Масштаб графика по оси X
|
SY
|
Масштаб графика по оси Y
|
i
|
Временная переменная
|
2. Блок-схема алгоритма
3. Код программы
partial class Form1: Form
{Form1 ()
{();
}Random R = new Random();float
NormRasp (float m, float sg)
{sum = 0;(int i = 0; i < 12;
i++)+= (float) R. NextDouble();(m + sg * (sum - 6));
}void button1_Click (object sender,
EventArgs e)
{K = Convert. ToInt32 (textBox1.
Text);N = Convert. ToInt32 (textBox2. Text);M = Convert. ToInt32 (textBox4.
Text);S = Convert. ToInt32 (textBox3. Text);<float> Y = new
List<float>(K);(int i = 0; i < K; i++). Add (NormRasp(M, S));j = (N -
1) / 2;<float> Y2 = new List<float>(K);(int i = 0; i < K; i++)
{((i < j) || (i >= K - j)) Y2.
Add(0);
{mid = 0;(int ii = i - j; ii < i
+ j; ii++)+= Y[ii];. Add (mid / N);
}
}<float> Y3 = new
List<float>(K);(int i = 0; i < K; i++)
}min = Y[0], max = Y[0];(int i = 0;
i < K; i++)
{(Y[i] < min) min = Y[i];(Y[i]
> max) max = Y[i];
}SX = (float) pictureBox1. Width /
K;SY = (float) pictureBox1. Height / (max - min);bmp = new Bitmap (pictureBox1.
Width, pictureBox1. Height);gr = Graphics. FromImage(bmp);. Clear (Color.
White);(int i = 0; i < K-1; i++)
{. DrawLine (Pens. Black, i * SX,
(Y[i] - min) * SY, (i + 1) * SX, (Y [i + 1] - min) * SY);((i >= j)
&& (i < K - j-1)). DrawLine (Pens. Red, i * SX, (Y2 [i] - min) * SY,
(i + 1) * SX, (Y2 [i + 1] - min) * SY);((i >= 2) && (i < K - 3)).
DrawLine (Pens. Blue, i * SX, (Y3 [i] - min) * SY, (i + 1) * SX, (Y3 [i + 1] -
min) * SY);
}(int i = 1; i < 10; i++)
{. DrawLine (Pens. LightGray, i * SX
* K / 10, 0, i * SX * K / 10, pictureBox1. Height);. DrawString (Convert.
ToString (i * K / 10), Font, Brushes. Black, i * SX * K / 10, 0);
}(int i = 1; i < 4; i++)
{. DrawLine (Pens. LightGray, 0, i *
SY * (max - min) / 4, pictureBox1. Width, i * SY * (max - min) / 4);.
DrawString (Convert. ToString (i * (max - min) / 4 + min), Font, Brushes.
Black, 0, i * SY * (max - min) / 4);
}. Image = bmp;
}
}
4. Шаблон ввода входных
данных
5. Результаты работы
программы
программа алгоритм скользящий
средний
Вывод
Был разработан алгоритм и написана
программа на языке С#, генерирующая значения
случайных величин, имеющих нормальный закон распределения. С помощью ее удалось
осуществить сглаживание экспериментальных данных, с помощью маски простого
скользящего среднего и маски взвешенного скользящего среднего.