public RungeKutta (DifEquationSystem equation, Dictionary <string, FloatingPoint> initialCondition, double[] section, int divisions) { Equation = equation; InitialСondition = initialCondition; Section = section; Divisions = divisions; Step = CalculateStep(); }
static void Main(string[] args) { var x = Expr.Variable("x"); var y1 = Expr.Variable("y1"); var y2 = Expr.Variable("y2"); //Example 1 Dictionary <string, FloatingPoint> initialVal1 = new Dictionary <string, FloatingPoint>() { { "x", 0 }, { "y1", 3 }, { "y2", 0 } }; Expr func1 = (-2 * y1 + 4 * y2); Expr func2 = (-y1 + 3 * y2); var functions = new List <Expr>(); functions.Add(func1); functions.Add(func2); DifEquationSystem equation1 = new DifEquationSystem(functions); double[] section1 = new double[] { 0, 1 }; RungeKutta rungeKutta1 = new RungeKutta(equation1, initialVal1, section1, 10); Func <double, double> answer1 = (4 * (-x).Exp() - (2 * x).Exp()).Compile("x"); Func <double, double> answer2 = ((-x).Exp() - (2 * x).Exp()).Compile("x"); var answers = new List <Func <double, double> >(); answers.Add(answer1); answers.Add(answer2); rungeKutta1.Solve(); PrintRealAnswer(answers, initialVal1, section1, 10); Console.ReadKey(); }