5,8K подписчиков

Неожиданная задача из репетиторского чата

Сегодня поговорим с вами о математической задаче, которую в репетиторский чат предложила одна из коллег.

Сегодня поговорим с вами о математической задаче, которую в репетиторский чат предложила одна из коллег. На первый взгляд, задача кажется школьной, но при детальном рассмотрении, есть интересные тонкости, о которых мы сегодня поговорим.

Прочитайте и попробуйте решить самостоятельно. А если не получится, то разбор будет ниже в статье...

А пока попрошу подписаться на мой канал в telegram IT mentor . Краткие заметки и наблюдения по физике, математике, программированию, железу и технике 💡 Вам нужен репетитор? Напишите мне в telegram или в личные сообщения в VK.

Задача

Нужно составить формулу, чтобы высчитать с какой скоростью нужно двигаться, чтобы в итоге проехать дистанцию максимально быстро. Нужно составить формулу чтобы высчитать оптимальную скорость для максимально быстрого прохождения отрезка пути.
Входные данные: Объем бака транспортного средства 20 литров.
Необходимо пройти расстояние 1000 км.
Время на заправку одного бака 10 минут.
Переменные:
- Расход топлива
- Скорость.
Вот так примерно выглядит зависимость расхода топлива от скорости:
100 км/ч - 4.1 литра на 100 км
120 км/ч - 5.2 литра на 100 км
140 км/ч - 5.8 литра на 100 км
150 км/ч - 6.4 литра на 100 км
160 км/ч - 7.2 литра на 100 км
180 км/ч - 8.8 литра на 100 км

Решение:

На превью к статье уже кое-что расписал. Но давайте по порядку. Допустим, нам нужно проехать 1000 км. Едем мы со скоростью 100 км/ч и расход топлива у нас составляет 4.1 литра на 100 км. Значит на один километр расход топлива будет 0.041 л/км. Если бак у нашего транспортного средства 20 литров, то на одном полном баке мы сможем проехать 20 л / 0.041 л/км ≈ 487 км. Теперь, чтобы определить количество заправок от 0 до полного бака, нам необходимо полное расстояние (длина траектории нашего путешествия) поделить на «максимальное количество километров, пройденное на одном баке».

Если задача дискретная... Это точно так?

Что значит дискретность задачи? Ну, наверное, если мы выбрали определенную самую эффективную скорость и двигаемся с ней весь путь. Тогда расход топлива у нас тоже должен быть эффективным.

В таком случае, формулу времени для дальнейшей минимизации составить относительно нетрудно. Очень упрощенно получится сумма гиперболы и линейной функции. Если расход топлива является линейной функцией, что даже по этим дискретным данным не совсем так. Далее мы убедимся в этом на графиках.

Теперь давайте структурируем всё математическими выкладками...

В самом начале пропишем всё то, что у нас дано (на сколько мы это правильно или неправильно понимаем):

Сегодня поговорим с вами о математической задаче, которую в репетиторский чат предложила одна из коллег.-2

Теперь, рассматривая некоторые ограничения (для начала подумаем на простой абстракцией задачи) найдем функцию времени. Она складывается из классической S/v + количество заправок * время одной заправки. Получится вот такая начальная оценка:

Сегодня поговорим с вами о математической задаче, которую в репетиторский чат предложила одна из коллег.-3

💡 Здесь не стоит переживать, что количество заправок получается дробным. Количество заправок МОЖЕТ быть дробным числом. Ведь одна целая заправка означает «Залить бак мотоцикла полностью». Но из-за дробного расхода, может получиться, что на самую последнюю часть пути хватит и 1/3 бака (например). Но для реального путешественника, конечно же, лучше округлять до целого числа вверх. Потому что если у тебя не будет хватать 0.1 части бензина, то ты не доедешь. Поэтому округляем только вверх.

В таком формате время также дискретно легко просчитывается в Excel:

Сегодня поговорим с вами о математической задаче, которую в репетиторский чат предложила одна из коллег.-4

Что дает нам возможность построить график времени пути в зависимости от скорости транспортного средства (мотоцикла):

Сегодня поговорим с вами о математической задаче, которую в репетиторский чат предложила одна из коллег.-5

И тут вы можете посмотреть на график и справедливо сказать: «А это разве не очевидно, что минимальное время на максимальной скорости?»

Но на самом деле нет. Функция в конкретно нашем случае получилась монотонно убывающей, но её общий вид может иметь локальной экстремум (минимум) в другой точке.

Допустим, если время заправки будет не 10 минут ~ 0.17 часа, а целых 2 часа. Вот что тогда будет:

Сегодня поговорим с вами о математической задаче, которую в репетиторский чат предложила одна из коллег.-6

А что если дискретно решать нельзя?

Да, в реальности мы не можем между любыми двумя точками двигаться с постоянной скоростью, потому что мы разгоняемся и тормозим. Конечно, мотоцикл может это сделать быстро, но... В общем, как решать задачу на гладких функций?

Коллега из чата сказала, что это задачи линейного программирования. Что ж, похоже. А мне это больше напоминает вариационное исчисление.

Напоминает ли вам эта задача в непрерывной формулировке задачу о брахистохроне (кривой быстрейшего спуска) ? Напишите свои мысли в комментариях к статье.

Кстати, когда коллега написала мне откуда у неё такая задача, то я приятно удивился, ведь задача из реальной жизни 😊

Сегодня поговорим с вами о математической задаче, которую в репетиторский чат предложила одна из коллег.-7

Понравилась статья? Поставьте лайк, подпишитесь на канал, напишите комментарий! Вам не сложно, а мне очень приятно :)

Если Вам нужен репетитор по физике, математике или информатике/программированию, Вы можете написать мне или в мою группу Репетитор IT mentor в VK
Лучший канал для физиков, математиков и программистов
Репетитор IT mentor в telegram