Vitaliy_Novichikhin

3.2.8 как применть формулу к каждому элементу массива?

Oct 15th, 2020 (edited)
299
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.44 KB | None | 0 0
  1. import numpy as np
  2. # Введём значения координат полёта снаряда вручную и сразу
  3. x_list = '2.7 2.8 3.3 4.2 4.4 4.8 5.1 7.1 7.4 7.5'
  4.  
  5. y_list = '4.5 4.6 4.7 5.0 5.1 5.2 5.3 6.0 6.1 6.2'
  6. # Переведем эти значения в массив вещественных чисел, внутри переведя в список вещественных чисел
  7. x_array = np.array([float(i) for i in x_list.split()]) # массив значений по оси Х
  8. y_array = np.array([float(i) for i in y_list.split()])
  9.  
  10. # 3. Узнаем коэффициенты, используя в качестве линии тренда полином второй или первой степеней,
  11. # найдём его коэффициенты:
  12. poly1 = np.polyfit(x_array, y_array, 1) # Полином первой степени, массив
  13. poly2 = np.polyfit(x_array, y_array, 2) # Полином второй степени.
  14. #print("%5.3f %5.3f" % poly1) - мусор проверки
  15. #print("%5.3f %5.3f %5.3f" % (poly2[0], poly2[1], poly2[2])) - мусор проверки
  16.  
  17. #Cоздадим функцию вычисленя полинома первой степени
  18. def f_poly1(x, poly1):
  19.     y = poly1[0] * x + poly1[1]
  20.     return y
  21. #Cоздадим функцию вычисленя полинома второй степени
  22. def f_poly2(x, poly2):
  23.     y = poly1[0] * x **2 + poly1[1] * x + poly2[2]
  24.     return y
  25.  
  26. #Смотрю выводятся ли вообще значения на экран
  27. #Т.е. подставляю значения из массива x_array для расчета функцией f_poly1, как это сделать?
  28. poly1_f = ([poly1 for x in x_array]) # считает естественно значения массива
  29. print('poly1_f печать: ', poly1_f)
  30.  
  31. # КАК ПРАВИЛЬНО ПОДСТАВИТЬ ЗНАЧЕНИЯ МОЕЙ ФУНКЦИИ, ЧТОБЫ СЧИТАЛО И НА ВЫХОДЕ ДАВАЛО НОВЫЙ МАССИВ?
  32. #poly2_f = (f_poly2(x_array[x], poly2[x]) for x in x_array)
  33. #print(poly2_f)
  34.  
  35. # пробую через array, пока неуспешно
  36. y2 = np.array([f_poly2(x_array[x], poly2[x]) for x in x_array]) #пытаюсь пройтись по каждому элементу массива через обращение к каждому элементу в квадратных скобках
  37. print('y2 на экране:', y2)
Add Comment
Please, Sign In to add comment