public ViewResult Method38(NumericalIntegration model) { if (!ModelState.IsValid) { ModelState.AddModelError("", Resources.MethodsController_Newton_Пожалуйста_введите_корректно_начальные_данные); return(View(model)); } NumericalMethods method = new NumericalMethods(); try { model.Result = method.Method_3_8(model.Function, model.A, model.B, model.N); if (model.Result.Equals(Double.NaN)) { ModelState.AddModelError("", Resources.MethodsController_Chord_Решение_не_найдено__Произошло_деление_на_ноль_); return(View(model)); } } catch (Exception) { ModelState.AddModelError("", Resources.MethodsController_Chord_Метод_расходится); return(View(model)); } return(View(model)); }
public ViewResult Trapezoids(NumericalIntegration model) { if (!ModelState.IsValid) { ModelState.AddModelError("", Resources.MethodsController_Newton_Пожалуйста_введите_корректно_начальные_данные); return(View(model)); } NumericalMethods method = new NumericalMethods(); try { model.Result = method.MethodOfTrapezoids(model.Function, model.A, model.B, model.N); if (model.Result.Equals(Double.NaN)) { ModelState.AddModelError("", Resources.MethodsController_Chord_Решение_не_найдено__Произошло_деление_на_ноль_); return(View(model)); } } catch (Exception) { ModelState.AddModelError("", Resources.MethodsController_Chord_Метод_расходится); return(View(model)); } if (!String.IsNullOrEmpty(model.Function)) { ViewBag.Adress = "http://www.wolframalpha.com/input/?i=" + Server.UrlEncode("integrate sqrt(" + model.Function + ")dx trapezoidal rule x=" + model.A + ".." + model.B); } return(View(model)); }
public IActionResult GetChartData() { var excelWriter = new ExcelWriter(); var surfaceData = DataStorage.SurfaceData; var expression = surfaceData.Expression; try { Surface surface; surface = new Surface(expression); var integrationArgumentsInfo = new DoubleIntegrationInfo { XStart = surfaceData.XStart, XEnd = surfaceData.XEnd, YStart = surfaceData.YStart, YEnd = surfaceData.YEnd }; var numericalIntegration = new NumericalIntegration(); var integrationInfo = numericalIntegration.CalculateBySimpsonMethod(integrationArgumentsInfo, surface.CalculateSurfaceFunction); DataStorage.SurfaceData.SimpsonResult = integrationInfo.IntegrationResult; excelWriter.WriteThreadsDataToExcel(integrationInfo.ThreadsTime); var json = integrationInfo.ThreadsTime.Select(item => new { ThreadsNumber = item.Key, Time = item.Value.TotalSeconds }) .ToGoogleDataTable() .NewColumn(new Column(ColumnType.String, "Threads Count"), x => x.ThreadsNumber) .NewColumn(new Column(ColumnType.Number, "Time"), x => x.Time) .Build() .GetJson(); return(Content(json)); } catch (Exception exception) { return(Error()); } }
public void TestInitialize() { library = new NumericalIntegration(); }