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());
            }
        }
Exemple #4
0
 public void TestInitialize()
 {
     library = new NumericalIntegration();
 }