public double Find(double t, double davlenie) { double _B15; double plotnost = Raschot.PlotnostAreometrInNeft(_areometr, _plotnostAreometr, _tIzm); plotnost = Raschot.IteracionMetodForAreometr(out _B15, plotnost, _tIzm, _typeGroup); double Y = Raschot.CalcY(plotnost, t); double resultPlotnost = Raschot.CalcPlotnost(plotnost, _B15, Y, t, davlenie); return(Math.Round(resultPlotnost, 1)); }
public double Find(double t, double davlenie) { double _B15; double plotnost = Raschot.IteracionMetodForPlotnometr(out _B15, _plotnostPlotnometr, _tIzm, _davlenie, _typeGroup); double Y = Raschot.CalcY(plotnost, t); double resultPlotnost = Raschot.CalcPlotnost(plotnost, _B15, Y, t, davlenie); if (_pogreshnost < 0.5) { return(Math.Round(resultPlotnost, 2)); } return(Math.Round(resultPlotnost, 1)); }
public static double IteracionMetodForPlotnometr(out double B15, double firstPlotnost, double tIzm, double davlenie, TypeGroup typeGroup) //итерационный метод нахождения плотности для плотнометра { /*1 итерация*/ B15 = Raschot.CalcKoefB15(firstPlotnost, typeGroup); double Y = Raschot.CalcY(firstPlotnost, tIzm); double endPlotnost = Raschot.CalcPlotnostForIterPlotnometr(firstPlotnost, B15, Y, tIzm, davlenie); double currentPlotnost = 0; while (Math.Abs(endPlotnost - currentPlotnost) > 0.01)//разность между итерациями { currentPlotnost = endPlotnost; B15 = Raschot.CalcKoefB15(currentPlotnost, typeGroup); Y = Raschot.CalcY(currentPlotnost, tIzm); endPlotnost = Raschot.CalcPlotnostForIterPlotnometr(firstPlotnost, B15, Y, tIzm, davlenie); } return(Math.Round(endPlotnost, 1)); }