Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- # Напишем формулу теоритического расчета населения Земли в формулу
- def compute_population(t):
- C = 172 # милларда человек лет;
- T1 = 2000 # 2000 год;
- tau = 45 # 45 лет;
- under_atan = (T1 - t) / tau
- arcctg = math.pi / 2 - math.atan(under_atan)
- N_t = (C / tau) * arcctg
- return N_t
- # Запишем списки лет и соответсвующие им реальные значения населения планеты
- 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]
- 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]
- # Cоздать список теоритических значений популяции на основе списка лет выше
- population_theoretical_list = [compute_population(t) for t in years]
- #print(population_theoretical_list) #- testok
- print('теоритические значения насления, для просмотра: ', population_theoretical_list)
- print('почему при выводе в табилце, а соответсвенно при расчётах первые 3 значения равны 0?')
- # Найти отностиельную погрешность в расчёте насления
- error_list = [abs((population[i] - population_theoretical_list[i]) / population[i]) for i in range(len(years))]
- print(population_theoretical_list[1])
- # Найдём индексы минимального значения ошибки и максимального значения ошибки через index(x) и средний процент ошибки
- index_min_error = int(error_list.index(min(error_list))) #номер минимального значения погрешности
- year_min_error = years[index_min_error] # год минимального значения погрешности вычислений
- # то же самое проделаем с максимальным годом
- index_max_error = error_list.index(max(error_list))
- year_max_error = years[index_max_error]
- #найдём среднее значение погрешности
- avg_error = sum(error_list) / len(error_list) # это заначение зависит от верного расчета списка погрешностей
- #Выводим на экран значения
- print("Погрешность - минимальная, год: %4d, максимальная, год: %4d, средняя, процент: %6.3f" % (year_min_error, year_max_error, avg_error * 100))
- print()
- print('Для наглядности и понимания ошибки выведем таблицу на экран после программы')
- print("-" * 21)
- print("| %7s | %7s | %7s | %7s |" % ("год", "фактич", "теорет", "погрешн."))
- print("-" * 21)
- for i in range(len(years)):
- 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