Exemplo n.º 1
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.");

            //Всё!
        }
Exemplo n.º 2
0
        public static void Solve()
        {
            //выводим данные для построения графика в файл
            GetDataForGraphics(dataFileName, stepForGraphicsData, epsilon3);

            //создаем классическую задачу Коши
            CauchyProblem myProblem = new CauchyProblem(conditions, tLast, numOfEquations, f, Lambda);

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

            //создаем метод
            Method method = new Method(provider);

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

            //создаем места вывода наших результатов
            ResultsRenderer laTeXRenderer1        = new LaTeXRenderer("tableEps1.tex");
            ResultsRenderer laTeXRenderer2        = new LaTeXRenderer("tableEps2.tex");
            ResultsRenderer laTeXRenderer3        = new LaTeXRenderer("tableEps3.tex");
            ResultsRenderer laTeXRendererRelation = new LaTeXRenderer("tableRelation.tex");

            ResultsRenderer consoleRenderer = new ConsoleRenderer();

            //выводим резултаты
            laTeXRenderer1.RenderResults(results1, "Таблица 1");
            laTeXRenderer2.RenderResults(results2, "Таблица 2");
            laTeXRenderer3.RenderResults(results3, "Таблица 3");
            laTeXRendererRelation.RenderResultsRelation(results1, results2, results3, "Таблица 4");

            Console.WriteLine();
            Console.WriteLine("By Felberg method.");

            consoleRenderer.RenderResults(results1, "Таблица 1");
            consoleRenderer.RenderResults(results2, "Таблица 2");
            consoleRenderer.RenderResults(results3, "Таблица 3");
            consoleRenderer.RenderResultsRelation(results1, results2, results3, "Таблица 4");
        }