Как обрабатывается вертикальный потенциальный барьер при моделировании уравнения Ланжевена?
У меня есть время передемпфированной эволюции позиции , описанный
где это потенциал, сопротивление, и тепловой шум. Когда я хочу смоделировать конкретную траекторию, я дискретизирую время шагами небольшого конечного числа. , и я использую просто итерации с
где - коэффициент диффузии, а случайное число.
А теперь представьте имеет бесконечно высокий барьер, наклон которого можно настроить (и сделать вертикальным). Мне было интересно: если частица случайно попадает в барьер, там значение производной может быть неопределенно большим. В моделировании это означает, что можно серьезно "выкинуть" сроком . Это кажется нефизическим.
я полагаю, уменьшая б/у помогает, но есть ли стандартный способ справиться с этим? Или нельзя смоделировать слишком много вертикальных барьеров?
Бесконечный барьер потенциала отражает тот факт, что частица не может войти в определенную область пространства. Решение уравнения Ланжевена с таким барьером означает, что вы должны найти способ утверждать, что частица не может войти в домен, но вы также должны описать, что происходит на границе, потому что возможны несколько сценариев:
частица останавливается, когда достигает границы (поглощение)
частица отражается от границы с противоположной скоростью
частица останавливается во время ожидания (определенный или случайный) перед возвратом
частица отражается с изменением скорости
частица следует любому сценарию 1.-4. с определенными вероятностями
Поведение на границе чрезвычайно важно.
Если запустить численное моделирование
легко кодируется с помощью теста положения
можно легко имитировать в одном измерении, расширив домен и свернув его. Например, если у вас есть барьер на , расширить домен до а затем добавить вероятности присутствия в и . Распределение скоростей получается путем вычитания, конечно.
получается добавлением времени ожидания ко времени симуляции с использованием трюка Сценарий 2.
также использует трюк Сценария 2. Скорость изменяется при пересечении границы, как и в Сценарии 3.
также довольно легко закодировать в численном моделировании с использованием вышеуказанных методов.
Я надеюсь, что это помогает!
Здесь может быть не полный ответ, но он может дать вам (и мне) некоторые подсказки и, возможно, какое-то альтернативное решение.
Схема Эйлера не должна работать даже для детерминированного уравнения, где шум равен нулю. Это потому, что в схеме Эйлера всегда требуется маленький, чтобы маленький. Когда велика, возникает численная неустойчивость решения. Эта проблема хорошо известна для ОДУ (см., например, Численные рецепты, раздел «Жесткие системы».)
Я думаю, что один из способов избежать этого — использовать моделирование в дискретном пространстве. Здесь вы разбиваете пространство на дискретные шаги и моделируете дискретный марковский процесс со скоростями перехода между соседними сайтами, пропорциональными разнице потенциалов между сайтами.
Другой вариант — использовать симуляцию с недостаточным демпфированием. Обратите внимание, что проблема возникает из-за того, что ваше уравнение с избыточным демпфированием имеет первый порядок. [Мне не ясно, применимо ли приближение с избыточным демпфированием для такой бесконечно сильной силы; хотя уравнение с чрезмерным демпфированием кажется математически хорошо определенным.] Для уравнения с недостаточным демпфированием вы можете смоделировать плавно, пока скачком всякий раз, когда частица пересекает ступеньку потенциала.
честный_вивер
scrx2
честный_вивер
NDSolve
которые могут решить эту проблему и предотвратить расходящиеся результаты (пока вы являетесь шептуном Mathematica )...cnguyen