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); //Всё! }
public static void Solve() { //создаем задачу с неизвестной конечной точкой UnknownPointProblem problem = // new UnknownPointProblem(conditions, numOfEquations, f, Lambda, AdjustStep, IsPointReached); // //создаем поставщик данных метода IMethodProvider provider = new FileMethodProvider(fileName); //создаем метод из данных, полученных от поставщика Method method = new Method(provider); //Преобразуем нашу задачу к классической задаче Коши при помощи полученного метода CauchyProblem clProblem = problem.ConvertToCauchyProblem(method, epsilon3, parameter); //CauchyProblem clProblem = new CauchyProblem(conditions, 40.0, 4, f, Lambda); //решаем полученные задачи с разной степенью точности Results results1 = clProblem.Solve(method, requiredNumberOfPoints, epsilon1, parameter); Results results2 = clProblem.Solve(method, requiredNumberOfPoints, epsilon2, parameter); Results results3 = clProblem.Solve(method, requiredNumberOfPoints, epsilon3, parameter); //создаем визуализатор результатов в консоль ResultsRenderer renderer = new ConsoleRenderer(); //создаем визуализатор результатов в tex-файл ResultsRenderer latex1 = new LaTeXRenderer("tbl1.tex"); ResultsRenderer latex2 = new LaTeXRenderer("tbl2.tex"); ResultsRenderer latex3 = new LaTeXRenderer("tbl3.tex"); ResultsRenderer latex4 = new LaTeXRenderer("tbl4.tex"); //выводим результаты в консоль renderer.RenderResults(results1, "Таблица 1."); renderer.RenderResults(results2, "Таблица 2."); renderer.RenderResults(results3, "Таблица 3."); //выводим результаты в tex-файл latex1.RenderResults(results1, "Таблица 1."); latex2.RenderResults(results2, "Таблица 2."); latex3.RenderResults(results3, "Таблица 3."); //выводим соотношения результатов renderer.RenderResultsRelation(results1, results2, results3, "Таблица 4."); latex4.RenderResultsRelation(results1, results2, results3, "Таблица 4."); //Всё! }
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."); //Всё! }
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"); }
public static void Solve() { //создаем классическую задачу Коши CauchyProblem myProblem = new CauchyProblem(conditions, tLast, numOfEquations, f, Lambda); //создаем поставщиков разных методов IMethodProvider provider1 = new FileMethodProvider(fileName1); IMethodProvider provider2 = new FileMethodProvider(fileName2); //создаем методы Method method1 = new Method(provider1); Method method2 = new Method(provider2); //получаем результаты решения нашего уравнения для трёх разных допустимых погрешностей Results results11 = myProblem.Solve(method1, requiredNumberOfPoints, epsilon1, parameter); Results results12 = myProblem.Solve(method1, requiredNumberOfPoints, epsilon2, parameter); Results results13 = myProblem.Solve(method1, requiredNumberOfPoints, epsilon3, parameter); Results results21 = myProblem.Solve(method2, requiredNumberOfPoints, epsilon1, parameter); Results results22 = myProblem.Solve(method2, requiredNumberOfPoints, epsilon2, parameter); Results results23 = myProblem.Solve(method2, requiredNumberOfPoints, 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(results11, "Таблица 1"); laTeXRenderer2.RenderResults(results12, "Таблица 2"); laTeXRenderer3.RenderResults(results13, "Таблица 3"); laTeXRendererRelation.RenderResultsRelation(results11, results12, results13, "Таблица 4"); Console.WriteLine(); Console.WriteLine("By Felberg method."); consoleRenderer.RenderResults(results11, "Таблица 1"); consoleRenderer.RenderResults(results12, "Таблица 2"); consoleRenderer.RenderResults(results13, "Таблица 3"); consoleRenderer.RenderResultsRelation(results11, results12, results13, "Таблица 4"); Console.WriteLine(); Console.WriteLine("By Dorman - Prince method."); consoleRenderer.RenderResults(results21, "Таблица 1"); consoleRenderer.RenderResults(results22, "Таблица 2"); consoleRenderer.RenderResults(results23, "Таблица 3"); consoleRenderer.RenderResultsRelation(results21, results22, results23, "Таблица 4"); }