private void dataGreedViewCreate2(List <double> ourNum1) { ourData4 = new DataGridView(); ourData4.Columns.Add("", ""); ourData4.Rows.Add("Довірче оцінювання"); MyMath ourOperation = new MyMath(); ourData4.Size = new Size(350, 200); ourData4.Location = new Point(1180, 280); if (ourChoice == 1)//Вейбулла { double ourA = ourOperation.middleMomentumN_Find(ourNum1, 3) / Math.Pow(ourOperation.middleMomentumN_Find(ourNum1, 3), 3.0 / 2.0); double ourAlpha = Math.Exp(-ourA); double ourBeta = 1.2; double a11 = ourNum1.Count - 1; double a22 = 0; for (int i = 0; i < ourNum1.Count; i++) { if (ourNum1[i] > 0) { a22 += Math.Log(ourNum1[i]); } } double a33 = 0; for (int i = 0; i < ourNum1.Count; i++) { if (ourNum1[i] > 0) { a33 += Math.Pow(Math.Log(ourNum1[i]), 2.0); } } double ourS = lambdaVeibula(ourNum1); Console.WriteLine($"{ourS} {a11} {a22} {a33}"); double ourDA = (a33 * ourS) / (a11 * a33 - a22 * a22); double ourDB = (a11 * ourS) / (a11 * a33 - a22 * a22); double cov = (a22 * ourS) / (a11 * a33 - a22 * a22); cov = -Math.Exp(ourA) * cov; ourData4.Columns.Add("A", "A"); ourData4.Columns.Add("B", "B"); ourDA = Math.Exp(-2 * ourA) * ourDA; ourData4.Rows.Add("Оцінка", ourAlpha, ourBeta); ourData4.Rows.Add("Дисперсія", ourDA, ourDB); ourData4.Rows.Add("Верхня межа", ourAlpha + Math.Sqrt(ourDA), ourBeta + Math.Sqrt(ourDB)); ourData4.Rows.Add("Нижня межа", ourAlpha - Math.Sqrt(ourDA), ourBeta - Math.Sqrt(ourDB)); } else if (ourChoice == 2) { double ourM = ourOperation.ourDeltaX_Find(ourNum1); double ourDeltaX = ourOperation.ourDeltaX_Find(ourNum1); double ourDeltaXX = ourOperation.ourDeltaXX_Find(ourNum1); double ourN1 = ourNum1.Count; ourN1 = ourN1 / (ourN1 - 1); double ourO = ourN1 * Math.Sqrt((ourDeltaXX - Math.Pow(ourDeltaX, 2.0))); double ourDA = Math.Pow(ourO, 2) / ourNum1.Count; double ourDB = Math.Pow(ourO, 2) / (2 * ourNum1.Count); double cov = 0; ourData4.Columns.Add("m", "m"); ourData4.Columns.Add("SIGMA", "SIGMA"); ourData4.Rows.Add("Оцінка", ourM, ourO); ourData4.Rows.Add("Дисперсія", ourDA, ourDB); ourData4.Rows.Add("Верхня межа", ourM + Math.Sqrt(ourDA), ourO + Math.Sqrt(ourDB)); ourData4.Rows.Add("Нижня межа", ourM - Math.Sqrt(ourDA), ourO - Math.Sqrt(ourDB)); }//Нормальний else if (ourChoice == 3) { double ourDeltaX = ourOperation.ourDeltaX_Find(ourNum1); double ourDeltaXX = ourOperation.ourDeltaXX_Find(ourNum1); double ourA = ourDeltaX - Math.Sqrt(3 * (ourDeltaXX - Math.Pow(ourDeltaX, 2.0))); double ourB = ourDeltaX + Math.Sqrt(3 * (ourDeltaXX - Math.Pow(ourDeltaX, 2.0))); double ourDA = Math.Pow((ourB - ourA), 2) / (12 * ourNum1.Count); double ourDB = (Math.Pow((ourB - ourA), 4) + 15 * Math.Pow(ourB + ourA, 4) * Math.Pow(ourB - ourA, 2)) / (180 * ourNum1.Count); double cov = (ourA + ourB) * Math.Pow(ourB - ourA, 2) / (12 * ourNum1.Count); ourData4.Columns.Add("A", "A"); ourData4.Columns.Add("B", "B"); ourData4.Rows.Add("Оцінка", ourA, ourB); ourData4.Rows.Add("Дисперсія", ourDA, ourDB); ourData4.Rows.Add("Верхня межа", ourA + Math.Sqrt(ourDA), ourB + Math.Sqrt(ourDB)); ourData4.Rows.Add("Нижня межа", ourA - Math.Sqrt(ourDA), ourB - Math.Sqrt(ourDB)); }//Рівномірний else if (ourChoice == 4)//Експоненціальний { double ourLambda = 1 / ourOperation.ourDeltaX_Find(ourNum1); double ourDA = Math.Pow(ourLambda, 2) / ourNum1.Count; ourData4.Columns.Add("LAMBDA", "LAMBDA"); ourData4.Rows.Add("Оцінка", ourLambda); ourData4.Rows.Add("Дисперсія", ourDA); ourData4.Rows.Add("Верхня межа", ourLambda + Math.Sqrt(ourDA)); ourData4.Rows.Add("Нижня межа", ourLambda - Math.Sqrt(ourDA)); } else if (ourChoice == 5)//Арксинус { double ourDeltaX = ourOperation.ourDeltaX_Find(ourNum1); double ourDeltaXX = ourOperation.ourDeltaXX_Find(ourNum1); double ourA1 = Math.Sqrt(2) * Math.Sqrt((ourDeltaXX - Math.Pow(ourDeltaX, 2.0))); double ourDA = Math.Pow(ourA1, 4) / (8 * ourNum1.Count); ourData4.Columns.Add("A", "A"); ourData4.Rows.Add("Оцінка", ourA1); ourData4.Rows.Add("Дисперсія", ourDA); ourData4.Rows.Add("Верхня межа", ourA1 + Math.Sqrt(ourDA)); ourData4.Rows.Add("Нижня межа", ourA1 - Math.Sqrt(ourDA)); } Controls.Add(ourData4); }
//Вейбулла private void createOurHrap(List <double> ourNum1) { Series series1 = new Series(); series1.ChartArea = "ChartArea1"; series1.Legend = "Legend1"; series1.Name = "Series4"; series1.ChartType = SeriesChartType.Line; chart1.Series.Add(series1); MyMath ourOperation = new MyMath(); List <double> ourNum2 = new List <double> { }; if (ourChoice == 1)//Вейбулла { double ourA = ourOperation.middleMomentumN_Find(ourNum1, 3) / Math.Pow(ourOperation.middleMomentumN_Find(ourNum1, 2), 3.0 / 2.0); Console.WriteLine($"{ourA}"); double ourAlpha = Math.Exp(-ourA); double ourBeta = 1.2; foreach (var el in ourNum1) { if (el >= 0) { double ourT = ourBeta / ourAlpha; double ourT2 = Math.Pow(el, ourBeta - 1.0); ourT *= ourT2; ourT2 = Math.Exp(-(Math.Pow(el, ourBeta) / ourAlpha)); ourT *= ourT2; Console.WriteLine($"{ourT} {ourT2} {el} {ourBeta} {ourAlpha}"); ourT *= ourHTemp; ourNum2.Add(ourT); } } for (int kz = 0; kz < ourNum1.Count; kz++) { try { chart1.Series["Series4"].Points.AddXY(ourNum1[kz], ourNum2[kz]); } catch (Exception) { } } }//Вейбулла else if (ourChoice == 2) { double ourM = ourOperation.ourDeltaX_Find(ourNum1); double ourDeltaX = ourOperation.ourDeltaX_Find(ourNum1); double ourDeltaXX = ourOperation.ourDeltaXX_Find(ourNum1); double ourN1 = ourNum1.Count; ourN1 = ourN1 / (ourN1 - 1); double ourO = ourN1 * Math.Sqrt((ourDeltaXX - Math.Pow(ourDeltaX, 2.0))); foreach (var el in ourNum1) { double ourT = 1 / (ourO * Math.Sqrt(2 * Math.PI)); double ourT2 = Math.Exp(-((Math.Pow(el - ourM, 2) / (2 * Math.Pow(ourO, 2))))); ourT *= ourT2; ourT *= ourHTemp; ourNum2.Add(ourT); } for (int kz = 0; kz < ourNum1.Count; kz++) { try { chart1.Series["Series4"].Points.AddXY(ourNum1[kz], ourNum2[kz]); } catch (Exception) { } } }//Нормальний else if (ourChoice == 3) { double ourDeltaX = ourOperation.ourDeltaX_Find(ourNum1); double ourDeltaXX = ourOperation.ourDeltaXX_Find(ourNum1); double ourA = ourDeltaX - Math.Sqrt(3 * (ourDeltaXX - Math.Pow(ourDeltaX, 2.0))); double ourB = ourDeltaX + Math.Sqrt(3 * (ourDeltaXX - Math.Pow(ourDeltaX, 2.0))); foreach (var el in ourNum1) { if (el < ourA || el > ourB) { ourNum2.Add(0); } else { ourNum2.Add(ourHTemp / (ourB - ourA)); } } for (int kz = 0; kz < ourNum1.Count; kz++) { try { chart1.Series["Series4"].Points.AddXY(ourNum1[kz], ourNum2[kz]); } catch (Exception) { } } }//Рівномірний else if (ourChoice == 4)//Експоненціальний { double ourLambda = 1 / ourOperation.ourDeltaX_Find(ourNum1); foreach (var el in ourNum1) { if (el < 0) { ourNum2.Add(0); } else { ourNum2.Add(ourHTemp * ourLambda * (Math.Exp((-ourLambda) * el))); } } for (int kz = 0; kz < ourNum1.Count; kz++) { try { chart1.Series["Series4"].Points.AddXY(ourNum1[kz], ourNum2[kz]); } catch (Exception) { } } } else if (ourChoice == 5)//Арксинус { double ourDeltaX = ourOperation.ourDeltaX_Find(ourNum1); double ourDeltaXX = ourOperation.ourDeltaXX_Find(ourNum1); double ourA = Math.Sqrt(2) * Math.Sqrt(ourDeltaXX - Math.Pow(ourDeltaX, 2.0)); foreach (var el in ourNum1) { if (el > -ourA && el < ourA) { double ourAnswer = 1 / (3.14 * Math.Sqrt(ourA * ourA - el * el)); ourAnswer *= ourHTemp; ourNum2.Add(ourAnswer); } } for (int kz = 0; kz < ourNum1.Count; kz++) { try { chart1.Series["Series4"].Points.AddXY(ourNum1[kz], ourNum2[kz]); } catch (Exception) { } } } }
private void dataGreedViewCreate(List <double> ourNum1) { ourData4 = new DataGridView(); ourData4.Columns.Add("NAME", "NAME"); ourData4.Columns.Add("COUNT", "COUNT"); MyMath ourOperation = new MyMath(); ourData4.Size = new Size(350, 200); ourData4.Location = new Point(790, 280); if (ourChoice == 1)//Вейбулла { double ourA = ourOperation.middleMomentumN_Find(ourNum1, 3) / Math.Pow(ourOperation.middleMomentumN_Find(ourNum1, 3), 3.0 / 2.0); double ourAlpha = Math.Exp(-ourA); double ourBeta = 1.2; double ourMatSpodiv = Math.Pow(ourAlpha, 2.0 / ourBeta) * Gamma(1 + 1 / ourBeta); double ourD = Math.Pow(ourAlpha, 2.0 / ourBeta) * (Gamma(1 + 2 / ourBeta) - Math.Pow(Gamma(1 + 1 / ourBeta), 2.0)); double ourE = ourOperation.middleMomentumN_Find(ourNum1, 4) / Math.Pow(ourOperation.middleMomentumN_Find(ourNum1, 2), 2.0) - 3; ourData4.Rows.Add("Мат сподівання", ourMatSpodiv); ourData4.Rows.Add("Дисперсія", ourD); ourData4.Rows.Add("Коеф Асиметрії", ourA); ourData4.Rows.Add("Ексцесу", ourE); } else if (ourChoice == 2) { double ourM = ourOperation.ourDeltaX_Find(ourNum1); double ourDeltaX = ourOperation.ourDeltaX_Find(ourNum1); double ourDeltaXX = ourOperation.ourDeltaXX_Find(ourNum1); double ourN1 = ourNum1.Count; ourN1 = ourN1 / (ourN1 - 1); double ourO = ourN1 * Math.Sqrt((ourDeltaXX - Math.Pow(ourDeltaX, 2.0))); double ourMatSpodiv = ourM; double ourD = ourO * ourO; double ourA = 0; double ourE = 0; ourData4.Rows.Add("Мат сподівання", ourMatSpodiv); ourData4.Rows.Add("Дисперсія", ourD); ourData4.Rows.Add("Коеф Асиметрії", ourA); ourData4.Rows.Add("Ексцесу", ourE); }//Нормальний else if (ourChoice == 3) { double ourDeltaX = ourOperation.ourDeltaX_Find(ourNum1); double ourDeltaXX = ourOperation.ourDeltaXX_Find(ourNum1); double ourA = ourDeltaX - Math.Sqrt(3 * (ourDeltaXX - Math.Pow(ourDeltaX, 2.0))); double ourB = ourDeltaX + Math.Sqrt(3 * (ourDeltaXX - Math.Pow(ourDeltaX, 2.0))); double ourMatSpodiv = (ourA + ourB) / 2; double ourD = Math.Pow(-ourA + ourB, 2.0) / 12; double ourA1 = 0; double ourE = -1.2; ourData4.Rows.Add("Мат сподівання", ourMatSpodiv); ourData4.Rows.Add("Дисперсія", ourD); ourData4.Rows.Add("Коеф Асиметрії", ourA1); ourData4.Rows.Add("Ексцесу", ourE); }//Рівномірний else if (ourChoice == 4)//Експоненціальний { double ourLambda = 1 / ourOperation.ourDeltaX_Find(ourNum1); double ourMatSpodiv = 1 / ourLambda; double ourD = 1 / (ourLambda * ourLambda); double ourA = 2; double ourE = 6; ourData4.Rows.Add("Мат сподівання", ourMatSpodiv); ourData4.Rows.Add("Дисперсія", ourD); ourData4.Rows.Add("Коеф Асиметрії", ourA); ourData4.Rows.Add("Ексцесу", ourE); } else if (ourChoice == 5)//Арксинус { double ourDeltaX = ourOperation.ourDeltaX_Find(ourNum1); double ourDeltaXX = ourOperation.ourDeltaXX_Find(ourNum1); double ourA1 = Math.Sqrt(2) * Math.Sqrt((ourDeltaXX - Math.Pow(ourDeltaX, 2.0))); double ourMatSpodiv = 0; double ourD = ourA1 * ourA1 / 2; double ourA = 0; double ourE = -1.5; ourData4.Rows.Add("Мат сподівання", ourMatSpodiv); ourData4.Rows.Add("Дисперсія", ourD); ourData4.Rows.Add("Коеф Асиметрії", ourA); ourData4.Rows.Add("Ексцесу", ourE); } Controls.Add(ourData4); }