TTLC198

Lab3_CM_KhuzVR

Nov 30th, 2021
793
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2.  
  3. namespace CM3
  4. {
  5.     public class Program
  6.     {
  7.         public static void Main()
  8.         {
  9.             double h = 0.06;
  10.             double[] Xarray = new double[6] {3, 3.06, 3.12, 3.18, 3.24, 3.3};
  11.             int n = 3;
  12.             double[] x = new double[3];
  13.             double[] y = new double[3];
  14.             for (int i = 0; i < n; i++)
  15.             {
  16.                 Console.WriteLine("Введите значение X ");
  17.                 double a = Convert.ToDouble(Console.ReadLine());
  18.                 x[i] = Math.Round(a, 3);
  19.                 y[i] = Math.Round(12 * x[i] * Math.Sqrt(Math.Pow(x[i], 3) + 1), 10);
  20.             }
  21.            
  22.             for (int i = 0; i < n; i++)
  23.             {
  24.                 double q = (x[i] - Xarray[0]) / h;
  25.                 double t = (x[i] - Xarray[5]) / h;
  26.                 double pI = Math.Round(
  27.                     1.86618
  28.                     + 0.00519 * q
  29.                     + (-0.00019) * q * (q - 1) / Factorial(2)
  30.                     + (-0.00002) * q * (q - 1) * (q - 2) / Factorial(3)
  31.                     + (0.00006) * q * (q - 1) * (q - 2) * (q - 3) / Factorial(4)
  32.                     + (-0.00011) * q * (q - 1) * (q - 2) * (q - 3) * (q - 4) / Factorial(5), 10);
  33.                 double pII = Math.Round(
  34.                     1.89022
  35.                     + 0.00444 * t
  36.                     + (-0.00018) * t * (t + 1) / Factorial(2)
  37.                     + (-0.00001) * t * (t + 1) * (t + 2) / Factorial(3)
  38.                     + (-0.00005) * t * (t + 1) * (t + 2) * (t + 2) * (t + 3) / Factorial(4)
  39.                     + (-0.00011) * t * (t + 1) * (t + 2) * (t + 3) * (t + 4) / Factorial(5), 10);
  40.                 double L = Math.Round(
  41.                     - 19999.357 * (x[i] - Xarray[1]) * (x[i] - Xarray[2]) * (x[i] - Xarray[3]) * (x[i] - Xarray[4]) *
  42.                     (x[i] - Xarray[5])
  43.                     + 100274.884 * (x[i] - Xarray[0]) * (x[i] - Xarray[2]) * (x[i] - Xarray[3]) * (x[i] - Xarray[4]) *
  44.                     (x[i] - Xarray[5])
  45.                     + (-201085.60528) * (x[i] - Xarray[0]) * (x[i] - Xarray[1]) * (x[i] - Xarray[3]) * (x[i] - Xarray[4]) *
  46.                     (x[i] - Xarray[5])
  47.                     + 201598.9369 * (x[i] - Xarray[0]) * (x[i] - Xarray[1]) * (x[i] - Xarray[2]) * (x[i] - Xarray[4]) *
  48.                     (x[i] - Xarray[5])
  49.                     + (-101047.02503) * (x[i] - Xarray[0]) * (x[i] - Xarray[1]) * (x[i] - Xarray[2]) * (x[i] - Xarray[3]) *
  50.                     (x[i] - Xarray[5])
  51.                     + 20256.98731 * (x[i] - Xarray[0]) * (x[i] - Xarray[1]) * (x[i] - Xarray[2]) * (x[i] - Xarray[3]) * (x[i] - Xarray[4]), 10);
  52.                
  53.                 Console.WriteLine($"|{correctPrint("x", x[i].ToString())}|{correctPrint("y(x)", y[i].ToString())}|{correctPrint("pI(x)", pI.ToString())}|{correctPrint("|y(x)-pI(x)|", Math.Round(Math.Abs(y[i] - pI), 10).ToString())}|{correctPrint("pII(x)", pII.ToString())}|{correctPrint("|y(x)-pII(x)|", Math.Round(Math.Abs(y[i] - pII), 10).ToString())}|{correctPrint("L(x)", L.ToString())}|{correctPrint("|y(x)-L(x)|", Math.Round(Math.Abs(y[i] - L), 10).ToString())}|");
  54.                 Console.WriteLine();
  55.                 Console.WriteLine("|" + Math.Round(x[i], 5) + "|" + Math.Round(y[i], 5) + "|" + Math.Round(pI, 5) + "|" + Math.Round(Math.Abs(y[i] - pI), 10) +
  56.                                   "|" + Math.Round(pII, 5) + "|" + Math.Round(Math.Abs(y[i] - pII), 10) + "|" + Math.Round(L, 5) + "|" +
  57.                                   Math.Abs(y[i] - L) + "|");
  58.                 Console.WriteLine();
  59.             }
  60.             Console.Read();
  61.         }
  62.         public static double Factorial(float number)
  63.         {
  64.             return number < 0 ? 0 : number == 0 ? 1 : number * Factorial(number - 1);
  65.         }
  66.  
  67.         public static string correctPrint(string first, string second)
  68.         {
  69.             for (int i = 0; i < second.Length - first.Length; i++)
  70.             {
  71.                 first += ' ';
  72.             }
  73.  
  74.             return first;
  75.         }
  76.     }
  77. }
RAW Paste Data