Esempio n. 1
0
 static void Main(string[] args)
 {
     // Nội suy trung tâm nên phải lấy cả 2 phía và lấy số lẻ mới chạy được
     // Nội suy tại X = 1.7489 nên phải tính giá trị tại 1.7489-1.75/0.01 = -0.11
     // Dùng Bessel khi t nằm trong khoảng 0.25 đến 0.75
     // Dùng Bessel tốt nhất khi t = 0.5
     double[] X = { 1.72, 1.73, 1.74, 1.75, 1.76, 1.77, 1.78 };
     double[] Y = { 5.5845, 5.6406, 5.6973, 5.7546, 5.81244, 5.87085, 5.92986 };
     double[,] A = Saiphan(Y);
     ExportData.ExportData2D(A);
     double[] B = DaThucBessel(A);
     ExportData.ExportData1D(B);
     Console.WriteLine(HornerPn.Giatridathuc(B, -0.11));
 }
 static void Main(string[] args)
 {
     // Nội suy trung tâm nên phải lấy cả 2 phía và lấy số lẻ mới chạy được
     // Nội suy tại X = 1.7489 nên phải tính giá trị tại 1.7489-1.75/0.01 = -0.11
     // Dùng Stirling khi t nằm trong khoảng -0.5 đến 0.5
     // Dùng Stirling tốt nhất khi t nằm trong khoảng -0.25 đến 0.25
     double[] X = { 75, 76, 77, 78, 79, 80, 81, 82, 83, 84 };
     double[] Y = { 2.76806, 2.83267, 2.90256, 2.97857, 3.06173, 3.15339, 3.25530 };
     double[,] A = SaiPhan(Y);
     ExportData.ExportData2D(A);
     double[] B = DaThucStirling(A);
     ExportData.ExportData1D(B);
     Console.WriteLine(HornerPn.Giatridathuc(B, 0.5));
 }
Esempio n. 3
0
 static void Main()
 {
     // Nội suy trung tâm nên phải lấy cả 2 phía và lấy số lẻ mới chạy được
     // Nội suy tại X = 1.7489 nên phải tính giá trị tại 1.7489-1.75/0.01 = -0.11
     // Dùng Gauss tiến khi t nằm trong khoảng 0 đến 0.5
     // Dùng Gauss lui khi t nằm trong khoảng -0.5 đến 0
     // Dùng Gauss tốt nhất khi gần 0, nếu dương thì tiến, nếu âm thì lùi
     double[] X = { 1.72, 1.73, 1.74, 1.75, 1.76, 1.77, 1.78 };
     double[] Y = { 5.5845, 5.6406, 5.6973, 5.7546, 5.81244, 5.87085, 5.92986 };
     double[,] A = Saiphan(Y);
     double[] B = Gauss_Tien_1(A);
     double[] C = Gauss_Lui_2(A);
     ExportData.ExportData2D(A);
     ExportData.ExportData1D(C);
     Console.WriteLine(HornerPn.Giatridathuc(B, -0.11));
     Console.WriteLine(HornerPn.Giatridathuc(C, -0.11));
 }
        static void Iteration(double[] DaThucLap, int SoLanLap, double X0, double h)
        {
            double t0 = DaThucLap[DaThucLap.Length - 1];
            double t1;

            Console.WriteLine("t0 = " + t0);

            for (int i = 1; i <= SoLanLap; i++)
            {
                t1 = HornerPn.Giatridathuc(DaThucLap, t0);
                Console.WriteLine("t{0} = {1}", i, t1);
                t0 = t1;
                if (i == SoLanLap)
                {
                    Console.WriteLine("X = " + (t1 * h + X0));
                }
            }

            // t = (X - X0) / h
            // Trong ví dụ lặp tiến X0 = 0.3 va h = 0.1
            // Trong ví dụ lặp lùi X0 = 1.38 va h = 0.01
            // Trong ví dụ lặp trung tâm X0 = 4.2 va h = 0.01
        }