Advertisement
CherMi

Pyrhon test

Jun 6th, 2021
963
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.25 KB | None | 0 0
  1. import matplotlib.pyplot as plt
  2. import numpy
  3. import scipy.linalg as spl
  4.  
  5.  
  6. def show_one():
  7.     data = smooth_data = [-17, -21, -11, -7, -2, -3, -1, -8, -4, -2, -4, -9, -9, -6, -7, -9, -7, -16,
  8.                           -24, -26, -26, -14, -9, -11, -15, -12, -19, -13, -14, -14, -19]
  9.     fig = plt.figure(1)
  10.     for i in range(1, len(smooth_data) - 1):
  11.         smooth_data[i] = numpy.mean([data[i - 1], data[i], data[i + 1]])
  12.     plt.ylabel("дневные температуры")
  13.     plt.xlabel("дни")
  14.     plt.title("изменение дневные температуры в г.Челябинск в течение декабря")
  15.     plt.show()
  16.  
  17. def show_two():
  18.     Temperature_Day = [-17, -21, -11, -7, -2, -3, -1, -8, -4, -2, -4, -9, -9, -6, -7, -9, -7, -16, -24,
  19.                        -26, -26, -14, -9, -11, -15, -12, -19, -13, -14, -14, -19]
  20.     Temperature_Day1 = [-17, -21, -11, -7, -2, -3, -1, -8, -4, -2, -4, -9, -9, -6, -7, -9, -7, -16, -24,
  21.                         -26, -26, -14, -9, -11, -15, -12, -19, -13, -14, -14, -19]
  22.     Day = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
  23.            28, 29, 30, 31]
  24.  
  25.     Temperature_Day_smooth = Temperature_Day1
  26.     for i in range(1, 30):
  27.         t1 = Temperature_Day1[i - 1]
  28.         t2 = Temperature_Day1[i]
  29.         t3 = Temperature_Day1[i + 1]
  30.         Temperature_Day_smooth[i] = numpy.median([t1, t2, t3])
  31.     plt.ylabel("Дневная температура, C.")
  32.     plt.xlabel("День")
  33.     plt.title("Дневная температура")
  34.     plt.plot(Day, Temperature_Day, "bs", Day, Temperature_Day_smooth, "-r")
  35.     plt.legend(['Экспериментальные точки', 'Сглаженная линия'], loc=0)
  36.     plt.show()
  37.  
  38.  
  39. def three_four():
  40.     import numpy as np
  41.     import matplotlib.pyplot as plt
  42.  
  43.     a = np.array([-21, -11, -7, -2, -3, -1, -8, -4, -2, -4, -9, -9, -6, -7, -9, -7, -16, -24,
  44.                   -26, -26, -14, -9, -11, -15, -12, -19, -13, -14, -14, -19, -5])
  45.     b = np.linspace(1., 31., 31)
  46.  
  47.     Tp = a
  48.     Ts = []
  49.     for i in range(1, 30):
  50.         t1 = a[i - 1]
  51.         t2 = a[i]
  52.         t3 = a[i + 1]
  53.         Tp = np.median([t1, t2, t3])
  54.         Ts = np.append(Ts, Tp)
  55.  
  56.     k = np.linspace(1., 29., 29)
  57.     plt.plot(k, Ts, 'k--')
  58.  
  59.     for i in range(len(a)):
  60.         plt.plot(i, a[i], 'bs')
  61.     plt.xlabel("Дневная температура, С.")
  62.     plt.ylabel("День")
  63.     plt.title("Дневная температура")
  64.  
  65.     for n in range(3, 6):
  66.         print(n)
  67.         c = np.polyfit(b, a, n)
  68.         bb = np.linspace(1, max(b), 100);
  69.         aa_c = np.polyval(c, bb)
  70.         a_c = np.polyval(c, b)
  71.         plt.plot(bb, aa_c)
  72.         l_2 = spl.norm(a_c - a) / spl.norm(a)
  73.         print(f'Относительная погрешность равна {l_2 * 100:.2f}%')
  74.  
  75.     print('Наиболее подходящая степень аппроксимации = 5')
  76.     I = squareBefore(aa_c, h=1)
  77.     print(f'Значение интеграла равно {I:.2f}')
  78.  
  79.  
  80. def squareBefore(arr, h):
  81.     res = 0
  82.     for i in range(0, len(arr)-1):
  83.         res += h * arr[i]
  84.     return res
  85.  
  86.  
  87. if __name__ == '__main__':
  88.     show_one()
  89.     show_two()
  90.     three_four()
  91.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement