Advertisement
Vitaliy_Novichikhin

2.3.10Kapica_my_mind_nevnimatelnost

Sep 11th, 2020
259
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.24 KB | None | 0 0
  1. import math
  2.  
  3. # Напишем формулу теоритического расчета населения Земли в формулу
  4. def compute_population(t):
  5.     C = 172  # милларда человек лет;
  6.     T1 = 2000  # 2000 год;
  7.     tau = 45  # 45 лет;
  8.     under_atan = (T1 - t) / tau
  9.     arcctg = math.pi / 2 - math.atan(under_atan)
  10.     N_t = (C / tau) * arcctg
  11.     return N_t
  12. # Запишем списки лет и соответсвующие им реальные значения населения планеты
  13. years = [1000, 1750, 1800, 1850, 1900, 1950, 1955, 1960, 1965, 1970, 1975, 1980, 1985, 1990, 1995, 2000, 2005, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019]
  14.  
  15. population =[0.400,0.791,1.000,1.262,1.650,2.519, 2.756,3.021,3.335,3.692,4.068,4.435,4.831, 5.264,5.674,6.071,6.344,6.933, 7.015,7.100, 7.162,7.271,7.358,7.444,7.530,7.669,7.763]
  16.  
  17. # Cоздать список теоритических значений популяции на основе списка лет выше
  18. population_theoretical_list = [compute_population(t) for t in years]
  19. #print(population_theoretical_list) #- testok
  20. print('теоритические значения насления, для просмотра: ', population_theoretical_list)
  21. print('почему при выводе в табилце, а соответсвенно при расчётах первые 3 значения равны 0?')
  22. # Найти отностиельную погрешность в расчёте насления
  23. error_list = [abs((population[i] - population_theoretical_list[i]) / population[i]) for i in range(len(years))]
  24.  
  25. print(population_theoretical_list[1])
  26. # Найдём индексы минимального значения ошибки и максимального значения ошибки через index(x) и средний процент ошибки
  27. index_min_error = int(error_list.index(min(error_list))) #номер минимального значения погрешности
  28. year_min_error = years[index_min_error] # год минимального значения погрешности вычислений
  29.  
  30. # то же самое проделаем с максимальным годом
  31. index_max_error = error_list.index(max(error_list))
  32. year_max_error = years[index_max_error]
  33.  
  34. #найдём среднее значение погрешности
  35. avg_error = sum(error_list) / len(error_list) # это заначение зависит от верного расчета списка погрешностей
  36.  
  37.  
  38. #Выводим на экран значения
  39. print("Погрешность - минимальная, год: %4d, максимальная, год: %4d, средняя, процент: %6.3f" % (year_min_error, year_max_error, avg_error * 100))
  40.  
  41. print()
  42. print('Для наглядности и понимания ошибки выведем таблицу на экран после программы')
  43. print("-" * 21)
  44. print("| %7s | %7s | %7s | %7s |" % ("год", "фактич", "теорет", "погрешн."))
  45. print("-" * 21)
  46. for i in range(len(years)):
  47.     print('| %4d | %7.3f | %7.3f | %7.2f%% |' % (years[i], population[i], population_theoretical_list[i], error_list[i] * 100))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement