//Вейбулла 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 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 letsMathsThis(List <double> ourPi, List <double> ourXi, double count, double h) { MyMath ourOperation = new MyMath(); double[] a = ourNumber.Split(' '). Where(x => !string.IsNullOrWhiteSpace(x)). Select(x => double.Parse(x)).ToArray(); Array.Sort(a); List <double> ourNum1 = a.ToList(); // ourData2 = new DataGridView(); ourData2.Columns.Add("NAME", "NAME"); ourData2.Columns.Add("COUNT", "COUNT"); ourData2.Size = new Size(350, 200); ourData2.Location = new Point(10, 280); //СА double deltaX = 0; deltaX = ourOperation.ourDeltaX_Find(ourNum1); //СЕРЕДНЬОКВАДРАТИЧНОГО double deltaDevX = ourOperation.deltaDevX_Find(ourNum1); //КОЕФ АСИМЕТРІЇ double ourA = ourOperation.A_Find(ourNum1); double ourAС = ourOperation.AC_Find(ourNum1); //ЗСУНЕНИЙ ЕКСЦЕСУ double ourE = ourOperation.ourE_Find(ourNum1); //НЕЗСУНЕНИЙ ЕКСЦЕСУ double deltaOurE = ourOperation.ourEC_Find(ourNum1); // КОНТРЕКСЦЕСУ double ourE1 = ourOperation.ourECE_Find(ourNum1); // ВАРІАЦІЇ ПІРСОНА double ourW = ourOperation.ourW_Find(ourNum1); // double MED = ourOperation.ourMED(ourNum1); double MAD = ourOperation.ourMAD(MED); // Усічене середнє double usicheneSeredne = ourOperation.ourTrun_Average_Find(ourNum1); // deltaX = ourOperation.ourRound(deltaX, 2); deltaDevX = ourOperation.ourRound(deltaDevX, 2); ourA = ourOperation.ourRound(ourA, 2); ourAС = ourOperation.ourRound(ourAС, 2); ourE = ourOperation.ourRound(ourE, 2); ourE1 = ourOperation.ourRound(ourE1, 2); ourW = ourOperation.ourRound(ourW, 2); MED = ourOperation.ourRound(MED, 2); MAD = ourOperation.ourRound(MAD, 2); usicheneSeredne = ourOperation.ourRound(usicheneSeredne, 2); ourData2.Rows.Add("СА", $"{deltaX}"); ourData2.Rows.Add("СЕРЕДНЬОКВАДРАТИЧНОГО", $"{deltaDevX}"); ourData2.Rows.Add("КОЕФ АСИМЕТРІЇ", $"{ourA}"); ourData2.Rows.Add("КОЕФ АСИМЕТРІЇ", $"{ourAС}"); ourData2.Rows.Add("ЕКСЦЕСУ", $"{ourE}"); ourData2.Rows.Add("КОНТРЕКСЦЕСУ", $"{ourE1}"); ourData2.Rows.Add("ВАРІАЦІЇ ПІРСОНА", $"{ourW}"); ourData2.Rows.Add("MED", $"{MED}"); ourData2.Rows.Add("MAD", $"{MAD}"); ourData2.Rows.Add("УСІЧЕНЕ СЕРЕДНЄ", $"{usicheneSeredne}"); double ourOdeltaX = ourOperation.ourODeltaX_Find(ourNum1); double ourOSC = ourOperation.ourOSC_Find(ourNum1); double ourOAC = ourOperation.ourOAC_Find(ourNum1); double ourOEC = ourOperation.ourOEC_Find(ourNum1); //a == 0.05, y == 0.95 double ourS = ourOperation.ourSC_Find(ourNum1); double ourY = 0.95; double oura = 1 - ourY; int ourv = ourNum1.Count - 1; double ourStudentaT = ourOperation.ourKVANTIL_Find(ourv); ourData3.Columns.Add("o1", "o1"); ourData3.Columns.Add("0.95%", "0.95%"); ourData3.Columns.Add("o2", "o2"); ourOdeltaX = ourOperation.ourRound(ourOdeltaX, 2); ourOSC = ourOperation.ourRound(ourOSC, 2); ourOAC = ourOperation.ourRound(ourOAC, 2); ourOEC = ourOperation.ourRound(ourOEC, 2); ourData3.Rows.Add(deltaX - ourStudentaT * ourOdeltaX, "СЕРЕДНЄ", deltaX + ourStudentaT * ourOdeltaX); ourData3.Rows.Add(ourS - ourStudentaT * ourOSC, "СЕРЕДНЬОКВАДРАТИЧНЕ", ourS + ourStudentaT * ourOSC); ourData3.Rows.Add(ourAС - ourStudentaT * ourOAC, "АСИМЕТРІЯ", ourAС + ourStudentaT * ourOAC); ourData3.Rows.Add(ourE1 - ourStudentaT * ourOEC, "КОНТРЕКСЦЕСУ", ourE1 + ourStudentaT * ourOEC); ourData3.Size = new Size(350, 200); ourData3.Location = new Point(400, 280); Controls.Add(ourData2); Controls.Add(ourData3); }
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); }