Интерполяция численных методов и интегрирования
-
Давайте коротко расскажу что такое интерполяция.
Интерполяция - это процесс оценки неизвестных значений, которые находятся между известными значениями.
Проще объяснить так - это метод для дорисовки данных или же поиск значения на основе интервала и имеющихся данных.
Приступим сразу к примеру в код:
# Проще всего объяснять на времени или данных hours = [0, 4, 8, 16, 20, 24] users = [10, 50, 100, 120, 60, 20]И так что мы имеем, у нас есть два списка (массива) данных часы и пользователи.
Смоделируем ситуацию, у нас отлетела аналитика на проекте с 08:00 до 16:00. И менеджеры слезно
просят написать программу которая может определить сколько пользователей заходило в этот промежуток времени.Смотрите внимательно, я намерено убрал 12 часов из списка.
И так, как же нам решить эту задачу. Мы можем взять чистую математику и вычленить среднее арифметическое, вот так:
users_at_12 = (100 + 120) / 2Поняли? Мы взяли число 100 и 120 под нашими часами 8 и 16.
Далее запишем обновленные данные в новые списки:
full_hours = [0, 4, 8, 12, 16, 20, 24] full_users = [10, 50, 100, users_at_12, 120, 60, 20]И вот у нас верные данные с которыми можно делать различные последующие интеграции.
Интегрируем руками, а теперь давайте сделаем небольшую интеграцию и найдем общий трафик за сутки.
total_traffic = 0 for u in full_users: total_traffic += u * 4 print(f"Примерный общий трафик за сутки: {total_traffic}")И вот мы сделали нашу интерполяцию и интегрировали ее дальше в коде.
-
Пример выше, работает благодаря того что укладывается в геометрию за счет
users_at_12 = (100 + 120) / 2.По хорошему интерполяция должна выглядеть по другому и использовать
numpy.interp.Давайте посмотрим пример:
import numpy as np hours = [0, 4, 8, 16, 20, 24] users = [10, 50, 100, 120, 60, 20] hours_np = np.array(hours) users_np = np.array(users) users_at_12 = np.interp(12, hours_np, users_np) print(f"Пользователей в 12:00: {int(users_at_12)}")
Здравствуйте! Похоже, вас заинтересовала эта беседа, но у вас ещё нет аккаунта.
Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост мог бы стать ещё лучше 💗
Зарегистрироваться Войти© 2024 - 2026 ExLends, Inc. Все права защищены.