public static void Solve()
        {
            //Создаем экземпляр задачи Лагранжа
            LagrangeProblem lagrangeProblem = new LagrangeProblem(BuildConditions, ExtractComponents,
                                                                  tLast, initialParameter, analyticalSolutionForInitialParameter, numOfEquations, f, Lambda);

            //создаем поставщик данных метода
            IMethodProvider provider = new FileMethodProvider(fileName);

            //создаем метод из данных, полученных от поставщика
            Method method = new Method(provider);

            //найдем начальные условия в задаче Лагранжа, и составим из них задачу Коши
            CauchyProblemWithFixedParameter cauchyProblem =
                lagrangeProblem.ConvertToCauchyProblem(epsilon3, parameter, method);

            //решаем полученную задачу с разной степенью точности
            Results results1 = cauchyProblem.Solve(method, requiredNumOfPoints, epsilon1);
            Results results2 = cauchyProblem.Solve(method, requiredNumOfPoints, epsilon2);
            Results results3 = cauchyProblem.Solve(method, requiredNumOfPoints, epsilon3);

            //создаем визуализатор результатов в консоль
            ResultsRenderer renderer     = new ConsoleRenderer();
            ResultsRenderer rendererTex1 = new LaTeXRenderer("table1.tex");
            ResultsRenderer rendererTex2 = new LaTeXRenderer("table2.tex");
            ResultsRenderer rendererTex3 = new LaTeXRenderer("table3.tex");
            ResultsRenderer rendererTex4 = new LaTeXRenderer("table4.tex");

            //выводим результаты в консоль
            renderer.RenderResults(results1, "Таблица 1.");
            renderer.RenderResults(results2, "Таблица 2.");
            renderer.RenderResults(results3, "Таблица 3.");

            //выводим результаты в tex-файлы
            rendererTex1.RenderResults(results1, "Таблица 1.");
            rendererTex2.RenderResults(results2, "Таблица 2.");
            rendererTex3.RenderResults(results3, "Таблица 3.");

            //выводим соотношения результатов
            renderer.RenderResultsRelation(results1, results2, results3, "Таблица 4.");
            rendererTex4.RenderResultsRelation(results1, results2, results3, "Таблица 4.");

            //выводим найденные начальные условия
            Console.WriteLine();
            Console.WriteLine("Начальные условия для параметра alpha = {0}:", parameter);
            Console.WriteLine(cauchyProblem.conditions.y0);

            //Всё!
        }
Beispiel #2
0
        public static void Solve()
        {
            //Создаем экземпляр задачи
            UnknownCondProblem problem =
                new UnknownCondProblem(BuildConditions, ExtractComponents, tLast,
                                       previousStartingPoint, nextStartingPoint, numOfEquations, f, Lambda);

            //создаем поставщик данных метода
            IMethodProvider provider = new FileMethodProvider(fileName);

            //создаем метод из данных, полученных от поставщика
            Method method = new Method(provider);

            //найдем начальные условия в задаче, и составим из них задачу Коши
            CauchyProblemWithFixedParameter cauchyProblem =
                problem.ConvertToCauchyProblem(epsilon3, parameter, method);

            //решаем полученную задачу с разной степенью точности
            Results results1 = cauchyProblem.Solve(method, requiredNumOfPoints, epsilon1, parameter);
            Results results2 = cauchyProblem.Solve(method, requiredNumOfPoints, epsilon2, parameter);
            Results results3 = cauchyProblem.Solve(method, requiredNumOfPoints, epsilon3, parameter);

            //создаем визуализатор результатов в консоль
            ResultsRenderer renderer     = new ConsoleRenderer();
            ResultsRenderer rendererTex1 = new LaTeXRenderer("table1.tex");
            ResultsRenderer rendererTex2 = new LaTeXRenderer("table2.tex");
            ResultsRenderer rendererTex3 = new LaTeXRenderer("table3.tex");
            ResultsRenderer rendererTex4 = new LaTeXRenderer("table4.tex");

            //выводим результаты в консоль
            renderer.RenderResults(results1, "Таблица 1.");
            renderer.RenderResults(results2, "Таблица 2.");
            renderer.RenderResults(results3, "Таблица 3.");

            rendererTex1.RenderResults(results1, "Таблица 1.");
            rendererTex2.RenderResults(results2, "Таблица 2.");
            rendererTex3.RenderResults(results3, "Таблица 3.");

            //выводим соотношения результатов
            renderer.RenderResultsRelation(results1, results2, results3, "Таблица 4.");
            rendererTex4.RenderResultsRelation(results1, results2, results3, "Таблица 4.");

            //Всё!
        }