Пример #1
0
        public override CSP Method(CSP csp0, double x1)
        {
            double h  = x1 - csp0.x;
            double y1 = csp0.y + h * f(csp0.x, csp0.y, csp0.z);
            double z1 = csp0.z + h * g(csp0.x, csp0.y, csp0.z);

            return(new CSP(x1, y1, z1));
        }
Пример #2
0
        static void Test_4_07(double x1)
        {
            SODE_4 RG_4 = new SODE_4(csp0, f_07, g_07);
            CSP    csp1 = RG_4.Solve_with_Precision(x1, eps);

            err = Math.Abs(Sy1 - csp1.y) + Math.Abs(Sz1 - csp1.z);
            SW.WriteLine($"\r\n Test - MAC_Sys_of_ODE_O1_RungeKutta_2:");
            SW.WriteLine($" {csp1.x,8:F4}{csp1.y,14:F9}{Sy1,14:F9}"
                         + $" {csp1.z,14:F9}{Sz1,14:F9}"
                         + $"{err,11:E1}   {RG_4.iter}");
        }
Пример #3
0
        public override CSP Method(CSP csp0, double x1)
        {
            double h  = x1 - csp0.x;
            double k1 = h * f(csp0.x, csp0.y, csp0.z);
            double l1 = h * g(csp0.x, csp0.y, csp0.z);
            double k2 = h * f(csp0.x + h, csp0.y + k1, csp0.z + l1);
            double l2 = h * g(csp0.x + h, csp0.y + k1, csp0.z + l1);
            double y1 = csp0.y + 0.5 * (k1 + k2);
            double z1 = csp0.z + 0.5 * (l1 + l2);

            return(new CSP(x1, y1, z1));
        }
Пример #4
0
        public override CSP Method(CSP csp0, double x1)
        {
            double h = x1 - csp0.x, h2 = 0.5 * h;
            double k1 = h * f(csp0.x, csp0.y, csp0.z);
            double l1 = h * g(csp0.x, csp0.y, csp0.z);
            double k2 = h * f(csp0.x + h2, csp0.y + k1 * 0.5, csp0.z + l1 * 0.5);
            double l2 = h * g(csp0.x + h2, csp0.y + k1 * 0.5, csp0.z + l1 * 0.5);
            double k3 = h * f(csp0.x + h, csp0.y - k1 + 2 * k2, csp0.z - l1 + 2 * l2);
            double l3 = h * g(csp0.x + h, csp0.y - k1 + 2 * k2, csp0.z - l1 + 2 * l2);
            double y1 = csp0.y + (k1 + 4 * k2 + k3) / 6.0;
            double z1 = csp0.z + (l1 + 4 * l2 + l3) / 6.0;

            return(new CSP(x1, y1, z1));
        }
Пример #5
0
        static void Main(string[] args)
        {
            //csp0 = new CSP(0.0, 3.0, 5.0); x1 = 0.25;

            //Sy1 = Sy_00(x1); Sz1 = Sz_00(x1);
            //Test_1_00(x1); Test_2_00(x1);
            //Test_3_00(x1);
            //Test_4_00(x1);

            csp0 = new CSP(0.0, 1.0, 3.0); x1 = 0.27;

            Sy1 = Sy_07(x1); Sz1 = Sz_07(x1);
            Test_1_07(x1); Test_2_07(x1);
            Test_3_07(x1);
            Test_4_07(x1);
            SW.Close();
        }
Пример #6
0
 public MAC_Sys_of_ODE_Order_1_RungeKutta_2
     (CSP csp, Func <double, double, double, double> f,
     Func <double, double, double, double> g)
     : base(csp, f, g)
 {
 }
Пример #7
0
 abstract public CSP Method(CSP csp0, double x1);
Пример #8
0
 public MAC_Sys_of_ODE_Order_1
     (CSP csp, Func <double, double, double, double> f,
     Func <double, double, double, double> g)
 {
     this.CSPO = new CSP(csp); this.g = g; this.f = f;
 }