Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import matplotlib.pyplot as plt
- import numpy
- import scipy.linalg as spl
- def show_one():
- data = smooth_data = [-17, -21, -11, -7, -2, -3, -1, -8, -4, -2, -4, -9, -9, -6, -7, -9, -7, -16,
- -24, -26, -26, -14, -9, -11, -15, -12, -19, -13, -14, -14, -19]
- fig = plt.figure(1)
- for i in range(1, len(smooth_data) - 1):
- smooth_data[i] = numpy.mean([data[i - 1], data[i], data[i + 1]])
- plt.ylabel("дневные температуры")
- plt.xlabel("дни")
- plt.title("изменение дневные температуры в г.Челябинск в течение декабря")
- plt.show()
- def show_two():
- Temperature_Day = [-17, -21, -11, -7, -2, -3, -1, -8, -4, -2, -4, -9, -9, -6, -7, -9, -7, -16, -24,
- -26, -26, -14, -9, -11, -15, -12, -19, -13, -14, -14, -19]
- Temperature_Day1 = [-17, -21, -11, -7, -2, -3, -1, -8, -4, -2, -4, -9, -9, -6, -7, -9, -7, -16, -24,
- -26, -26, -14, -9, -11, -15, -12, -19, -13, -14, -14, -19]
- 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,
- 28, 29, 30, 31]
- Temperature_Day_smooth = Temperature_Day1
- for i in range(1, 30):
- t1 = Temperature_Day1[i - 1]
- t2 = Temperature_Day1[i]
- t3 = Temperature_Day1[i + 1]
- Temperature_Day_smooth[i] = numpy.median([t1, t2, t3])
- plt.ylabel("Дневная температура, C.")
- plt.xlabel("День")
- plt.title("Дневная температура")
- plt.plot(Day, Temperature_Day, "bs", Day, Temperature_Day_smooth, "-r")
- plt.legend(['Экспериментальные точки', 'Сглаженная линия'], loc=0)
- plt.show()
- def three_four():
- import numpy as np
- import matplotlib.pyplot as plt
- a = np.array([-21, -11, -7, -2, -3, -1, -8, -4, -2, -4, -9, -9, -6, -7, -9, -7, -16, -24,
- -26, -26, -14, -9, -11, -15, -12, -19, -13, -14, -14, -19, -5])
- b = np.linspace(1., 31., 31)
- Tp = a
- Ts = []
- for i in range(1, 30):
- t1 = a[i - 1]
- t2 = a[i]
- t3 = a[i + 1]
- Tp = np.median([t1, t2, t3])
- Ts = np.append(Ts, Tp)
- k = np.linspace(1., 29., 29)
- plt.plot(k, Ts, 'k--')
- for i in range(len(a)):
- plt.plot(i, a[i], 'bs')
- plt.xlabel("Дневная температура, С.")
- plt.ylabel("День")
- plt.title("Дневная температура")
- for n in range(3, 6):
- print(n)
- c = np.polyfit(b, a, n)
- bb = np.linspace(1, max(b), 100);
- aa_c = np.polyval(c, bb)
- a_c = np.polyval(c, b)
- plt.plot(bb, aa_c)
- l_2 = spl.norm(a_c - a) / spl.norm(a)
- print(f'Относительная погрешность равна {l_2 * 100:.2f}%')
- print('Наиболее подходящая степень аппроксимации = 5')
- I = squareBefore(aa_c, h=1)
- print(f'Значение интеграла равно {I:.2f}')
- def squareBefore(arr, h):
- res = 0
- for i in range(0, len(arr)-1):
- res += h * arr[i]
- return res
- if __name__ == '__main__':
- show_one()
- show_two()
- three_four()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement