ΠΠ΄Π½ΠΎΡΠ°ΠΊΡΠΎΡΠ½ΡΠΉ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΠΎΠ½Π½ΡΠΉ Π°Π½Π°Π»ΠΈΠ·
Label6. Text += «ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ «+ Math. Round (Fkr, 3) + «n»; Label6. Text += «ΠΠΈΡΠΏΠ΅ΡΡΠΈΡ ΡΠ°ΠΊΡΠΎΡΠ° «+ Math. Round (DA, 3) + «n»; ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ: Label6. Text += «ΠΠ»ΠΈΡΠ½ΠΈΠ΅ ΡΠ°ΠΊΡΠΎΡΠ° «+ Math. Round (DA, 3) +» n»; Double H = 2.0 * (K — 2) * (K * (N — 1) — 1) / (K * N — 2); ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΡΠΈΡΠ΅ΡΠΈΡ Π€ΠΈΡΠ΅ΡΠ°. ΠΠ΄Π½ΠΎΡΠ°ΠΊΡΠΎΡΠ½ΡΠΉ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΠΎΠ½Π½ΡΠΉ Π°Π½Π°Π»ΠΈΠ·. Double uq = Math. Pow… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠ΄Π½ΠΎΡΠ°ΠΊΡΠΎΡΠ½ΡΠΉ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΠΎΠ½Π½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π€Π΅Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π±ΡΠ΄ΠΆΠ΅ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ
" ΠΠΎΠ²Π³ΠΎΡΠΎΠ΄ΡΠΊΠΈΠΉ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ ΠΈΠΌΠ΅Π½ΠΈ Π―ΡΠΎΡΠ»Π°Π²Π° ΠΡΠ΄ΡΠΎΠ³ΠΎ"
ΠΠ°ΡΠ΅Π΄ΡΠ° ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ Π‘ΠΈΡΡΠ΅ΠΌ ΠΠ°Π±ΠΎΡΠ°ΡΠΎΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π΅ «ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ »
ΠΠ΄Π½ΠΎΡΠ°ΠΊΡΠΎΡΠ½ΡΠΉ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΠΎΠ½Π½ΡΠΉ Π°Π½Π°Π»ΠΈΠ·
ΠΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ:
ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΠΎΠ² Π.Π.
Π‘ΡΡΠ΄Π΅Π½Ρ Π³Ρ.0091:
ΠΠ½ΠΎΠ³ΠΎΠ»Π΅ΡΠ½ΠΈΠΉ Π.Π.
ΠΠ΅Π»ΠΈΠΊΠΈΠΉ ΠΠΎΠ²Π³ΠΎΡΠΎΠ΄
1. Π¦Π΅Π»Ρ ΡΠ°Π±ΠΎΡΡ
ΠΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΠΎΠ΄Π½ΠΎΡΠ°ΠΊΡΠΎΡΠ½ΡΠΌ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΠΎΠ½Π½ΡΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡ:
Π‘Π½Π°ΡΠ°Π»Π° Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΡΡ Π Π²ΡΠ±ΠΎΡΠΎΠΊ ΠΈΠ· N ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠ°ΡΠ΅ΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²ΡΠ±ΠΎΡΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΈ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΡ. ΠΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΡΠΈΡΠ΅ΡΠΈΠΉ ΠΠΎΡ ΡΠ°Π½Π°.
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π²ΡΠ±ΠΎΡΠΎΡΠ½Π°Ρ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΡ, ΡΡΠ΅Π΄Π½ΡΡ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΡ ΠΈ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΡ Π²Π»ΠΈΡΠ½ΠΈΡ ΡΠ°ΠΊΡΠΎΡΠ°. ΠΡΡ ΠΎΠ΄Ρ ΠΈΠ· Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΡΠΈΡΠ΅ΡΠΈΡ Π€ΠΈΡΠ΅ΡΠ°, ΠΎΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΡΡ Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ, Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π³ΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ Π²Π»ΠΈΡΠ½ΠΈΡ ΡΠ°ΠΊΡΠΎΡΠ°
2. Π’Π°Π±Π»ΠΈΡΠ° ΠΈΠΌΠ΅Π½
D | ΠΠΈΡΠΏΠ΅ΡΡΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²ΡΠ±ΠΎΡΠΊΠΈ | |
Matrix | ΠΠ°ΡΡΠΈΠ² Π²ΡΠ±ΠΎΡΠΎΠΊ | |
D0 | Π‘ΡΠ΅Π΄Π½ΡΡ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΡ Π²ΡΠ±ΠΎΡΠΎΠΊ | |
F | ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΡΠΈΡΠ΅ΡΠΈΡ Π€ΠΈΡΠ΅ΡΠ° | |
Fkr | ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΡΠΈΡΠ΅ΡΠΈΡ Π€ΠΈΡΠ΅ΡΠ° | |
M1 | ΠΠ°Ρ. ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π²ΡΠ±ΠΎΡΠΊΠΈ | |
N | ΠΠ±ΡΠ΅ΠΌ Π²ΡΠ±ΠΎΡΠΎΠΊ | |
g | ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΡΠΈΡΠ΅ΡΠΈΡ ΠΠΎΡ ΡΠ°Π½Π° | |
K | Π§ΠΈΡΠ»ΠΎ Π²ΡΠ±ΠΎΡΠΎΠΊ | |
DM | Π¨Π°Π³ ΠΌΠ°Ρ. ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ | |
SumD | Π‘ΡΠΌΠΌΠ° Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΠΉ Π²ΡΠ±ΠΎΡΠΎΠΊ | |
MaxD | ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΡ Π²ΡΠ±ΠΎΡΠΊΠΈ | |
Dy | ΠΠ±ΡΠ°Ρ Π²ΡΠ±ΠΎΡΠΎΡΠ½Π°Ρ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΡ | |
DA | ΠΠΈΡΠΏΠ΅ΡΡΠΈΡ Π²Π»ΠΈΡΠ½ΠΈΡ ΡΠ°ΠΊΡΠΎΡΠ° | |
SG | ΠΠ΅Π½Π΅ΡΠ°Π»ΡΠ½Π°Ρ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΡ | |
M | ΠΠ°ΡΡΠΈΠ² ΠΌΠ°Ρ. ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΉ Π²ΡΠ±ΠΎΡΠΎΠΊ | |
Mid | Π‘ΡΠ΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ±ΠΎΡΠΎΠΊ | |
3. Π’Π΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
using System;
using System.Collections.Generic;
using System. ComponentModel;
using System. Data;
using System. Drawing;
using System. Linq;
using System. Text;
using System.Windows.Forms;
namespace oed5lab
{
public partial class Form1: Form
{
public Form1()
{
InitializeComponent ();
}
private Random R = new Random ();
private float NormRasp (double m, double sg)
{
float sum = 0;
for (int i = 0; i < 12; i++)
sum += (float)R.NextDouble ();
return (float)(m + sg * (sum — 6));
}
double InverseNormalCDF (double alpha)
{
double res = 0, p = 0, t = 0, q = 0;
if (alpha < 0.5)
p = alpha;
else
p = 1 — alpha;
t = Math. Sqrt (-2 * Math. Log (p, Math. E));
q = t — ((0.10 328 * t + 0.802 853) * t + 2.515 517) / (((0.1 308 * t + 0.189 269) * t + 1.432 788) * t + 1);
if (alpha > 0.5)
res = q;
else
res = -q;
return res;
}
private void button1_Click (object sender, EventArgs e)
{
//ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΎΠ±ΡΠ΅ΠΌ Π²ΡΠ±ΠΎΡΠΊΠΈ:
int N=Convert.ToInt32(textBox1.Text);
//ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠΈΡΠ»ΠΎ ΡΡΠΎΠ²Π½Π΅ΠΉ ΡΠ°ΠΊΡΠΎΡΠ°:
int K = Convert. ToInt32(textBox4.Text);
//ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅:
double M1 = Convert. ToDouble (textBox2.Text);
//ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ:
double DM = Convert. ToDouble (textBox3.Text);
//ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π³Π΅Π½Π΅ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅Π΄Π½Π΅ΠΊΠ²Π°Π΄ΡΠ°ΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ:
double SG= Convert. ToDouble (textBox5.Text);
richTextBox1.Text = «» ;
double[,] Matrix = new double[K, N];
for (int i = 0; i < K; i++)
{
for (int j = 0; j < N; j++)
{
Matrix[i, j] = NormRasp (M1 + i * DM, SG);
// label8. Text += Math. Round (Matrix[i, j], 3) + «t» ;
richTextBox1.Text += Math. Round (Matrix[i, j], 3) + «t» ;
}
//label8.Text += «n» ;
richTextBox1.Text += «n» ;
}
double[] M = new double[K];
for (int i = 0; i < K; i++)
{
M[i] = 0;
for (int j = 0; j < N; j++)
M[i] += Matrix[i, j];
M[i] /= (double)N;
}
double[] D = new double[K];
double MaxD = 0;
double SumD = 0;
for (int i = 0; i < K; i++)
{
D[i] = 0;
for (int j = 0; j < N; j++)
D[i] += (Matrix[i, j] - M[i]) * (Matrix[i, j] - M[i]);
D[i] = D[i] / (double)(N — 1);
if (D[i] > MaxD) MaxD = D[i];
SumD += D[i];
}
double g = MaxD / (SumD — MaxD);
label6.Text="ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΡΠΈΡΠ΅ΡΠΈΡ ΠΠΎΡ ΡΠ°Π½Π° «+ Math. Round (g, 3) + «n» ;
double Mid = 0;
for (int i = 0; i < K; i++)
Mid += M[i];
Mid /= (double)K;
label6.Text += «ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ «+ Math. Round (Mid, 3) + «n» ;
double Dy = 0;
for (int i = 0; i < K; i++)
for (int j = 0; j < N; j++)
Dy += (Matrix[i, j] - Mid) * (Matrix[i, j] - Mid);
Dy /= (double)K * N — 1;
label6.Text += «ΠΠ±ΡΠ°Ρ Π²ΡΠ±ΠΎΡΠΎΡΠ½Π°Ρ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΡ «+ Math. Round (Dy, 3) + «n» ;
double D0 = 0;
for (int i = 0; i < K; i++)
D0 += D[i];
D0 /= (double)K;
label6.Text += «Π‘ΡΠ΅Π΄Π½ΡΡ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΡ ΠΏΠΎ ΡΡΠΎΠ²Π½ΡΠΌ «+ Math. Round (D0,3) + «n» ;
double DA = 0;
for (int i = 0; i < K; i++)
DA += (M[i] - Mid) * (M[i] - Mid);
DA *= (double)N / (K — 1);
label6.Text += «ΠΠΈΡΠΏΠ΅ΡΡΠΈΡ ΡΠ°ΠΊΡΠΎΡΠ° «+ Math. Round (DA, 3) + «n» ;
double F = DA / D0;
label6.Text += «ΠΠ»ΠΈΡΠ½ΠΈΠ΅ ΡΠ°ΠΊΡΠΎΡΠ° „+ Math. Round (DA, 3) +“ n» ;
double p = Convert. ToDouble (comboBox1.Text.ToString ());
double u = Math. Abs (InverseNormalCDF (p));//ΠΊΠ²ΠΈΠ½ΡΠΈΠ»Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ
double uq = Math. Pow (u, 2);//ΠΊΠ²Π°Π΄ΡΠ°Ρ ΠΊΠ²ΠΈΠ½ΡΠΈΠ»Ρ
double L = (uq — 3) / 6;
double H = 2.0 * (K — 2) * (K * (N — 1) — 1) / (K * N — 2);
double W = u * Math. Sqrt (H + L) / H — (1.0 / (K — 2) — 1.0 / (K * (N — 1) — 1)) * (L + 5.0 / 6 — 2.0 / 3 / H);
double Fkr = Math. Exp (W * 2);
label6.Text += «ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ «+ Math. Round (Fkr, 3) + «n» ;
label6.Text +="ΠΠ»ΠΈΡΠ½ΠΈΠ΅ ΡΠ°ΠΊΡΠΎΡΠ° «;
if (F < Fkr) label6. Text += «ΠΠ΅ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎn» ;
else label6. Text += «CΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎn» ;
}
}
}
4. ΠΡΠΈΠΌΠ΅Ρ
ΠΡΠ²ΠΎΠ΄
Π²ΡΠ±ΠΎΡΠΊΠ° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΠΎΠ½Π½ΡΠΉ ΠΎΠ΄Π½ΠΎΡΠ°ΠΊΡΠΎΡΠ½ΡΠΉ ΠΡΠ»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΠ°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½, ΠΈΠΌΠ΅ΡΡΠΈΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΉ Π·Π°ΠΊΠΎΠ½ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π΅Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΠΎΠ΄Π½ΠΎΡΠ°ΠΊΡΠΎΡΠ½ΡΠΉ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΠΎΠ½Π½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· Π²ΡΠ±ΠΎΡΠΎΠΊ.