Ян (ahiin) wrote,
Ян
ahiin

Category:

Да забыли про овраги

В этой части я расскажу мое собственно решение задачи об остывании шара, ну и байки обещанные, да. Это продолжение, первая часть здесь.

Итак, в прошлый раз мы, используя подстановку показали, что исходная краевая задача сводится к банальной однородной двухточечной краевой задаче Дирихле для одномерного уравнения теплопроводности:



где коэффициент температуропроводности , а начальное условие задано своими замерами с некоторым шагом. В принципе, я могу понять соблазн перейти к численному решению на этом этапе (что мы и сделали в прошлой части), особенно для тех, у кого рука хорошо набита на конечных разностях. Чо тут думать, трясти надо! Однако на тот момент я уже успел пару лет поработать с некорректными задачами матфизики и поэтому мне было сразу понятно, что эта тропа ведет в болото, из которого может выгребешь, а может и нет. Поэтому я пошел другим путем.


Я не зря неоднократно уже сказал, что краевая задачка наша вполне банальна и хорошо известна. Отвлечемся ненадолго от экспериментальной природы функции и будем считать, что она задана аналитически. Тогда вышеописанная краевая задача имеет аналитическое решение (не надо занудства, понятно, подразумевается, что краевая задача у нас заведомо разрешима). Выкладки я проделывать не буду, они есть в любом учебнике по матфизике, включая наш, разумеется (хотя тогда, в 2003 году, их под рукой почему-то не оказалось и мне пришлось все сделать ручками), а сразу запишу готовое:



или, возвращаясь к температуре:



Коэффициенты разложения при этом определяются по следующей формуле:



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

15,9155

1,78067e-05
9,56312e-06
-4,19092e-05
3,4026e-05
5,54131e-06
-3,07188e-05
1,01377e-05
7,07196e-06
1,69282e-05

В этом момент, как сейчас помню, я жизнерадостно заржал. Первый коэффициент пустой строкой отделен не зря: остальные коэффициенты — это очевидный шум, вычислительная погрешность интегрирования. Отбросив их (ровно по тому же принципу, как в акустике работает фильтрация Фурье), получим, что решение краевой задачи выглядит теперь куда проще:


где



Дальше еще смешнее. Так как нам решение целиком не нужно, найдем предельным переходом значение температуры в центре шара:



Подставляя числовые значения, получим:



Тут можно было бы остановиться, но давайте последний гвоздь забъем, чо уж. В нулевой момент времени, в центре шара температура равна ста градусам, так что можем уточнить:



Уточненный первый коэффициент

и соответственно,



Начальное же условие, которое нам авторы задачи столь любезно протабулировали, имеет вид:



MAXIMAL HUMILIATION!!!

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

Прямо скажем, с таким подходом задачка не шибко-то и сложная, явно не всерос. Как составители ухитрились зевнуть такой очевидный ход для меня по сию пору загадка. Ладно бы там был один автор, временные затмения на ровном месте у многих случаются (у меня так вообще регулярно), но их же было несколько. Придется списать на редкий случай коллективного помешательства.

Описанный фокус очевидно стал для авторов изрядным сюрпризом (но черт возьми, КАК?). Рассылка авторских решений пришла с задержкой и непричесанный и невычитанный текст их свидетельствовал о суматошной правке в последний момент. В итоге, при оглашении результатов, мое решение заслужило отдельной реляции (уникальный случай для тех олимпиад). Значит ли, что до подобного подхода додумался в только я — не знаю, тайна сия покрыта мраком.

В принципе, если кому интересно, можно будет как-нибудь порассуждать, что бы сделать с этой вполне шикарной задачкой такое, чтоб ее нельзя было так дешево на кривой козе объехать.

Теперь обещанные пояснения о неустойчивости ретроспективной задачи теплопроводности.
На пальцах, с физической токи зрения, это довольно просто. Общая тенденция теплопереноса такова, что чем больше разница температур, тем он интенсивнее, и тем быстрее эта разница сглаживается. Я вот вам даже гифку с википедии принес:
Heat_eqn
При расчете в будущее — это не проблема, сглаживается и сглаживается, за счет этого даже такая примитивная разностная схема, как в прошлой части, прекрасно справляется с уравнением теплопроводности (возникающие численные погрешности тоже заглаживаются). Отступая же в прошлое, у нас возникает противоположная ситуация. Если отступить достаточно далеко, то мы обнаружим, что существует множество весьма далеких друг от друга распределений тепла, которые к нулевому моменту сгладятся до неразличимости, каким бы точным не был наш градусник.

Теперь посмотрим чуть более формально, с математической стороны. Вспомним, как выглядело наше общее решение:

За счет линейности уравнения теплопроводности, погрешность приближенного решения представим в виде двух компонент:

Первая компонента означает, что в процессе накопления численных ошибок мы в итоге получаем решение, соответствующее не заданному начальному условию, а некоторому иному, мало (будем надеяться) отличающемуся от заданного. Вторая компонента — это порождение паразитных источников тепла, которых изначально не было (уравнение-то у нас однородное), но численные погрешности их создали.  Для упрощения дела мы ее сейчас проигнорируем и сосредоточимся на первой:

В общем-то, суть проблемы уже видна. При движении в будущее погрешность, обусловленная начальным условием уверенно давится экспонентами и жить особо не мешает. А вот прошлое, там совсем другое дело. Какими бы маленьким не были коэффициенты разложения, экспоненты нам их затащат куда угодно, дайте только уйти в прошлое подальше. Более того, там еще и суровые осцилляции по пространственной координате возникнут, когда, скажем, сотый член ряда вырастет и окрепнет (и тут снова нельзя не упомянуть один из способов регуляризации этой некорректной задачи: искать приближенные решения в классе монотонных по пространственной координате функций, тем самым принудительно обрубая вышеприведенный ряд до нескольких первых членов).

В качестве самостоятельно упражнения, предлагаю желающим объединить численный метод из прошлой части и аналитическое решение из этой, дабы посмотреть, насколько далеко можно уехать на конечных разностях в прошлое, а затем поделиться результатами своих экспериментов в комментариях.
Tags: opus, математика, математическая физика, математическое моделирование, ответ к задачке, физика, численные методы
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 17 comments