пятница, 19 октября 2012 г.

Теория бега трусцой

Пост месячной давности.

Всегда относился к бегу трусцой как к, если и полезному, но уж точно скучному занятию.
Но сидя второй месяц без семьи за границей нашел в нем некоторое развлечение, позволяющее до определенной степени избавится от ощущения потерянного времени. Пока еще свежи воспоминания, изложу некоторые свои наблюдения.
  1. Бегать надо одному. Нормальный треп с компаньоном все равно невозможен, а при совместном беге приходится подстраиваться друг под друга. Если партнер более подготовлен, можно заработать комплекс неполноценности. См. также следующий пункт.
  2. Музыка -- разрешённый допинг. Если бежишь один и есть возможность не опасаться велосипедов и машин, затычки в ушах с правильно подобранной "музыкой" могут существенно улучшить результаты. Для музыки два критерия. Во-первых нужно, чтобы у нее был четкий ритм и темп, с которым можно синхронизовать дыхание и шаг. Во-вторых, зацепки для мозга в виде нетривиальной лирики мешают бежать. Поэтому разумный выбор --- какая-нибудь амбиент хрень. В идеале на первом же километре впадаешь в транс,из которого выходишь уже дома, стоя под душем.
  3. Если бежишь с ГПС, которое тебе показывает путь, скорость, время, маршрут и т.д., нужно засунуть его сразу куда-нибудь подальше и смотреть на него не чаще одного раза на два километра. Если вы любите похвастаться и еще не потеряли иллюзорное ощущение собственной крутости в любом занятии, за которое беретесь, можно скачать программу с сайта Endomondo.com чтобы потом выкладывать свои достижения.
  4. Ощущения человека, как известно, логарифмические. Это может вызвать волну отчаяния на половине пути: когда эта половина преодолена, кажется, что осталось практически столько же, сколько было вначале (с точностью до ничтожного $\ln 2\approx 0.7$), а силы уже на исходе. Бесполезно себя убеждать, что это неправильная оценка. Каждый физик усвоил еще в университете, что если число километров $x$, которое ты собрался пробежать, --- большое, то $x/2$ по порядку величины равно $x$. Тем не менее, если немного потерпеть и понаблюдать за логарифмом оставшегося расстояния, можно с радостью заметить, что он меняется все быстрее, и справиться с подступившим отчаянием.
  5. В какой-то момент может появиться мысль: "а на хрена мне это надо?", после которой вспоминается, что "я же просто для здоровья бегаю", и, наконец, появляется соблазн закончить дистанцию досрочно. Поэтому первую половину пути удобно бежать по прямой по направлению от дома. Тогда в конце дистанции на вопрос "а на хрена мне это надо?" появляется естественный ответ: чтобы побыстрее добраться домой. Кроме того, раздражение собственной тупостью, из-за которой ты оказался так далеко от дома, дает дополнительные силы.
P.S. В лифте гестхауза, мокрый и красный после бега, столкнулся с сумасшедшей китайской теткой, которая меня спросила что-то типа "А ю джо...нямням", что я расшифровал, естественно, как "Are you jogging?". Но оказалось, что она спрашивала "Are you German?". Когда я сказал, что нет, она обрадованно спросила откуда я. Я сказал: "фром Раша", и она вышла на первом этаже из лифта, озадаченно повторяя "фром Раша, фром Раша..." и как бы пытаясь справится с потрясением. Я поехал на свой третий. Когда я зашел в номер, зазвонил телефон и мне без всякого предисловия радостным голосом задали третий вопрос, очевидно, призванный все поставить на свои места: "Are you chinese?". Голос был радостный и громкий и я его слышал не только из трубки, но и еще из открытой балконной двери, прямо с первого этажа. Ситуация, если вдуматься, была уже странноватая, но у меня еще с детства осталась дурацкая привычка честно отвечать на прямо поставленные вопросы и я сказал, что "No, I am korean". На том конце трубки резонно возразили "You must be Chinese because your last name is Lee". Немного засомневавшись от такого напора, я все-же стал терпеливо объяснять, что нет, все-таки я кореец, поскольку папа у меня кореец. Трубку обиженно бросили, даже не попрощавшись. Интересно, что было бы, если бы я все же оказался китайцем?

среда, 26 сентября 2012 г.

Для вертикальных

Под впечатлением книжки Штейнера.
Задача. На плоскости нарисован прямоугольник и треугольник. Найти с помощью одной линейки (без делений) центр тяжести треугольника.
Как и раньше, можно потренироваться прямо на рисунке: нажатие последовательно на две точки рисует прямую. Чтобы появилась точка пересечения двух прямых, нужно сначала нажать на одну, потом на другую. Чтобы нарисовать произвольную точку на прямой, нужно на нее кликнуть дважды. Когда появится точка, которую считаете центром тяжести, нажмите на нее, а затем на кнопку "Check".


суббота, 22 сентября 2012 г.

Ну, раз уж все такие умные.

Задал позавчера здешнему китайцу задачу про нахождение центра тяжести двух прямоугольников. Подлец решил за два дня. Вот новая задача на ту же тему. Конечно, тема себя исчерпывает помаленьку. Можно только соревноваться по количеству затраченных линий.
Задача. Найти с помощью одной линейки (без делений) центр тяжести фигуры, изображенной ниже.
Как и раньше, можно потренироваться прямо на рисунке: нажатие последовательно на две точки рисует прямую, появляющиеся точки пересечения тоже можно использовать для построения прямых. Когда появится точка, которую считаете центром тяжести, нажмите на нее, а затем на кнопку "Check".



P.S. Блин, написал же целый скрипт на такой случай, а кончил тупым копированием поста про прямоугольники и дорабатыванием напильником. Включил только автоматическое удаление линий после нахождения пересечения. Ничего нет более постоянного, чем временное.

понедельник, 7 мая 2012 г.

Теорема Левинсона

Сегодня, прибираясь в своей коллекции статей, обнаружил одну работу, которую я, очевидно, скачал, чтобы потом разобраться, и забыл. Про теорему Левинсона. Я, вообще, питаю слабость к строгим утверждениям в области физики, поэтому решил все-таки разобраться. Саму статью Левинсона [1] я добыть не смог, поскольку напечатана она в журнале с длинным малопонятным названием Kgl. Danske Videnskab. Selskab, Mat.-fys. Medd., но нашел зато совсем простую работу Веллнера [2] которую тут же и прочитал.
Так вот, теорема Левинсона --- это красивое утверждение о связи фазы рассеяния и количества связанных состояний в потенциале (в уравнении Шредингера). Фаза рассеяния, как известно, измеряется в экспериментах по рассеянию, поэтому извлечение из этой фазы информации о потенциале, безусловно, имеет важное значение. Если в обратной задаче рассеяния речь идет о том, чтобы полностью восстановить по данным рассеяния потенциал, то теорема Левинсона решает гораздо более скромную задачу, но не перестает от этого быть изящным и полезным фактом.
Итак, рассмотрим радиальное уравнение (р.у.) Шредингера
\[ -\chi_l^{\prime\prime} +\tilde{V}_l\chi_l=k^2\chi_l , \] где $\tilde{V}_l=V+l(l+1)/r^2$ --- эффективный потенциал с учетом центробежной части.
Фаза рассеяния $\delta_l(k)$ определяется асимптотикой волновой функции: \[ \chi_l(k,r)\to 2\sin(kr-\pi l/2+\delta_l(k)) \] Далее, для простоты изложения, кладем $l=0$. Решение при нулевом потенциале будем обозначать нижним индексом $F$: \[ \chi_F(k,r)=2\sin(kr) \] Умножим производную р.у. по $k$ на $\chi$ и вычтем р.у., умноженное на производную $\chi$ по тому же $k$: \[ (\dot\chi\chi^{\prime}-\chi\dot\chi^{\prime})^\prime=2k\chi^2, \] Точками здесь обозначены производные по $k$. Интегрируем по $r$ от нуля до достаточно большого $R$, такого, чтобы при $r=R$ уже можно было пользоваться асимптотикой. Получаем \[ \dot\delta=\frac12\int_0^R dr\chi^2-R+\frac{\sin(2kR+2\delta)}{2k}, \] Далее мы представляем \begin{gather} \frac{\sin(2kR+2\delta)}{2k} =-\lim_{\epsilon\to 0}\int_R^\infty dr \,e^{-\epsilon r}\cos(2kR+2\delta)\\ =\lim_{\epsilon\to 0}\int_R^\infty dr\, e^{-\epsilon r} [2\sin^2(kR+\delta)-1] =\lim_{\epsilon\to 0}\int_R^\infty dr \,e^{-\epsilon r} \left[\frac12\chi^2-1\right] \end{gather} и получаем симпатичную формулу \[ \dot\delta=\lim_{\epsilon\to 0}\int_0^\infty dr\,e^{-\epsilon r}\left[\frac12\chi^2-1\right] =\frac12\lim_{\epsilon\to 0}\int_0^\infty dr\,e^{-\epsilon r}\left[\chi^2-\chi_F^2\right]. \] Второй переход справедлив, вообще говоря, для $k\neq 0$, но это мелочь. Если мы проинтегрируем это равенство по $k$, то получим \[ \delta(\infty )-\delta(0)= \frac12\lim_{\epsilon\to 0}\int_0^\infty dr\,e^{-\epsilon r}\int_0^\infty dk\left[\chi^2-\chi_F^2\right]. \] Ну вот, теперь еще вспоминаем соотношение полноты для радиальных функций \[ \sum_{n=1}^{N} \chi_n(r)\chi_n(r^\prime)+\int_0^\infty\frac{dk}{2\pi}\chi(k,r)\chi(k,r^\prime)=\delta(r-r^\prime), \] где $N$ --- число связанных состояний. Это соотношение справедливо и для нулевого потенциала, когда $N=0$: \[ \int_0^\infty\frac{dk}{2\pi}\chi_F(k,r)\chi_F(k,r^\prime)=\delta(r-r^\prime), \] Разность двух последних соотношений и последующая замена $r^\prime \to r$ дает \[ \int_0^\infty dk\left[\chi^2-\chi_F^2\right]=-2\pi\sum_{n=1}^{N} \chi_n^2 \]
Окончательно, получаем теорему Левинсона: \[ \delta(\infty )-\delta(0)= -\pi\int_0^\infty dr\sum_{n=1}^{N} \chi_n^2 =-\pi N,. \] Изменение фазы рассеяния при изменении $k$ от нуля до бесконечности равно числу связанных состояний, умноженному на $-\pi$.
Выполнение теоремы Левинсона для потенциала $U(r)=-\frac{U_0}{\cosh^2 r}$. Зеленая кривая --- фаза рассеяния для $l=0$ как функция от энергии (правая шкала --- $E/U_0$). Уровни энергии в потенциале показаны пунктиром. Потенциал (показан синей кривой) постепенно углубляется и когда в нем появляется новый уровень, фаза рассеяния скачет на $\pi$.
Честно говоря, у меня такое жонглирование пределами всегда вызывает настороженность, но в данном случае результат достаточно красив, чтобы быть правильным, так что оставим строгий вывод математикам.
Да, забыл сказать, что неоднозначность определения фазы (к которой можно прибавить $\pi m$) не мешает этому соотношению. Нужно просто считать, что фаза определена как непрерывная функция $k$.
[1] N. Levinson, Kgl. Danske Videnskab. Selskab, Mat.-fys. Medd., 25(9) (1949)
[2] M. Wellner, Amer. J. Phys. 32 (1964) 787.

пятница, 23 марта 2012 г.

Научная жизнь

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

Ниже --- анимация рассеяния сферического пакета, локализованного изначально на больших $r$. Отразилась только часть пакета, а часть "прилипла". Если вам такая динамика не кажется странной, или даже невозможной, значит вы плохо учили квантовую механику.
P.S. Теперь на очереди другая задача --- написание пакета, реализующего давнюю тайную мечту любого ученого --- решение всех проблем в автоматическом режиме, включая в перспективе и написание статьи с изложенными результатами. Когда напишу --- моя миссия на работе сведется к нажатию кнопки утром и засылке в архив готовой работы вечером. Пока написанное выглядит так:

воскресенье, 18 марта 2012 г.

Нафига он нужен, этот Replace

В рамках программы подготовки к неизбежно приближающемуся склерозу.
Есть в Математике такая функция Replace. Долгое время я ее считал практически бесполезной, в отличии от ее старших родственников  ReplaceAll (/.) и ReplaceRepeated(//.). Но недавно я осознал, что эта функция является мощной заменой функции Switch. А именно,
Switch[expr, form1, value1, form2,value2,...]
в подавляющем большинстве случаев можно заменить на
Replace[expr, {form1:> value1, form2:>value2,...}]
Преимущество в том, что именнованные части паттерна formi можно использовать при построении valuei. Ну вот, теперь я понимаю зачем нужна функция Replace. Жалко только, что теперь я не понимаю зачем нужна функция Switch.
Вот, кстати, пример использования Replace  в процедуре SplitCases, которую, я думаю, стоит включить в следующий релиз Математики:
SplitCases[l_List,ps_List]:=Module[
  {pls=Table[{},{Length[ps]}],pn},
  Append[pls,#]&[Replace[l,

MapIndexed[pn:#:>(pls[[First@#2]]=Append[pls[[First@#2]],pn];Unevaluated[Sequence[]])&,ps],{1}]]]

вторник, 13 марта 2012 г.

Полезность.

Поскольку занимаюсь в настоящий момент добиванием пакета на Математике, пытаюсь облегчить себе жизнь всеми возможными способами. Сегодня аспирант навел на полезную мысль. Нет, говорит, в Математике тестов. Выяснилось, что речь о следующем. Когда отлаживаешь какой-нибудь пакет, хорошо иметь набор тестов, который запускается после модификации пакета и сравнивает вновь получившиеся результаты с теми, что получались до модификации. Ну, действительно хорошо. Сказано-сделано, вот простейший пакет, призванный помочь пакетописателям. Работает так. Допустим, что ценой неимоверных усилий была написана функция, вычисляющая числа Фиббоначи:
f[1]=f[2]=1;
f[n_Integer?Positive]:=f[n-1]+f[n-2];
Работает функция правильно, но долго, и хочется ее переписать так, чтобы она работала быстро. И тут вы узнаете, что есть чудная формула\[f_n=\frac{\varphi ^n-(-\varphi )^{-n}}{\sqrt{5}}\,.\] Хочется переписать функцию, но страшно, вдруг где-нибудь сделаешь ошибку. Тогда делаем так: загружаем пакет Tests.m и со старым определением f[n] создаем некоторое количество тестов:
<<"Tests.m"
SaveTest[f[15],"Fib15"];
SaveTest[f[20],"Fib20"];
SaveTest[f[30],"Fib30"];

Затем меняем наше определение
Clear[f];
f[n_Integer?Positive]:=Expand[(((1 - Sqrt[5])/2)^n 
                              +((1 + Sqrt[5])/2)^n)/Sqrt[5]]

И проверяем на уже известных примерах:
RunTests["Fib*"]
Получаем гневные сообщения:
Fib15 Failed.
Input:f[15] -> 1364/Sqrt[5]
Output:610 -> 610
Fib20 Failed.
Input:f[20] -> 15127/Sqrt[5]
Output:6765 -> 6765
Fib30 Failed.
Input:f[30] -> 1860498/Sqrt[5]
Output:832040 -> 832040
{"Fib15" -> "Failed", "Fib20" -> "Failed", "Fib30" -> "Failed"}
 
Значит, где-то затупили... Ага, забыли минус, исправляем:
Clear[f];
f[n_Integer?Positive]:=Expand[(-((1 - Sqrt[5])/2)^n 
                              + ((1 + Sqrt[5])/2)^n)/Sqrt[5]]
Ну вот, теперь все в порядке:
Fib15 Passed.
Fib20 Passed.
Fib30 Passed.
{"Fib15" -> "Passed", "Fib20" -> "Passed","Fib30" -> "Passed"}
Ну, там есть еще некоторые возможности, желающим глядеть в код или использовать ?"Tests`*". Кстати, тесты хранятся в виде файла "tests.tst" в рабочей директории, поэтому не теряются от сессии к сессии.

вторник, 21 февраля 2012 г.

Матроиды для чайников

Пишу, в основном, чтобы самому не забыть.
Чтобы определить матроид, определим сначала бинарную группу цепей. Бинарную группу можно наглядно определить так
Бинарная группа цепей --- множество, состоящее из N-значных двоичных чисел (не обязательно всех) и замкнутое относительно групповой операции --- побитного исключающего или. Единицей группы является $\underbrace{0\ldots 0}_{N\text{ нулей}}$ и каждый элемент является себе обратным.
В теоретико-множественном определении нужно заменить N-значные двоичные числа на подмножества N-элементного множества, а исключающее или --- на исключающее объединение $(\#1\backslash\#2)\cup(\#2\backslash\#1)$. Почему интересна такая конструкция, потому что эта группа играет важную роль в теории графов.
Пусть у нас есть граф с N ребрами. Возьмем часть его вершин в левую руку (множество этих вершин назовем $A$), а остальные --- в правую ($B$), растянем и порежем все ребра, идущие из одной руки в другую. Множество ребер, которые оказались разрезанными назовем разрезом. Все разрезы данного графа, как нетрудно сообразить, образуют некоторую бинарную группу цепей, которую мы будем обозначать $C$. Действительно, разрез, соответствующий исключающему объединению двух разрезов получается разбиением множества вершин на \[A^{\prime\prime}=(A\cap A^{\prime})\cup (B\cap B^{\prime})\quad\text{ и }\quad B^{\prime\prime}=(A\cap B^{\prime})\cup (B\cap A^{\prime}).\] Кстати, множество ребер, имеющих общую вершину тоже, очевидно, является разрезом (защипнем эту общую вершину и отрежем все ребра, соединяющие ее с остальным графом).
Есть другая бинарная группа цепей, связанная с множеством ребер графа. Рассмотрим все подграфы графа, для которых в каждой вершине сходится четное число ребер. Ясно, что множества ребер таких подграфов (собственно, цепи) образуют бинарную группу цепей $L$.
Заметим, что задание бинарной группы цепей (и, в частности, групп $C$ и $L$) полным перечислением ее элементов представляется довольно избыточным. Вообще, наиболее экономичный способ описания --- это задать мультипликативный базис группы. Понятие матроида бинарной группы цепей лежит где-то на полдороги между полным множеством элементов группы и ее мультипликативным базисом.
Слой 1 Перед тем, как давать формальное определение, поясним суть дела на примере наших групп $C$ и $L$. Рассмотрим сначала некоторый разрез. Может так оказаться, что после разреза в одной или обоих руках окажется несвязный граф (см. картинку). Такой разрез может быть выполнен в два приема и поэтому уж точно бесполезен для построения базиса. Можно сказать, что такой разрез неэлементарный.
Слой 1 1 2 3 Аналогично, многие цепи являются неэлементарными. Это так, если подграф, им соответствующий, несвязен или содержит вершины со степенью 4 или выше (см. пример справа). Вот если мы исключим из $C$ и $L$ (как множеств) неэлементарные элементы, а заодно и единицу группы --- пустое множество, оставшаяся часть и будет называться матроидом. Итак, на теоретико-групповом языке матроид бинарной группы цепей--- подмножество всех элементарных элементов группового множества, т.е., всех непустых элементов, которые не включают в себя никакого другого элемента в качестве подмножества. Для нашего чайниковского определения бинарной группы
Матроид бинарной группы цепей --- подмножество всех таких ненулевых чисел из группового множества, которые обязательно меняются при побитном ИЛИ с любым элементом группы.
Все, хватит пока. Про алгоритм Татта напишу как-нибудь в другой раз.
P.S. Кстати, картинки рисованы в SVG-edit, не выходя из браузера, а затем скопипасчены прямо в пост.

четверг, 9 февраля 2012 г.

Processing

Узнал на днях про язык Processing для забав с анимацией и интерактивностью. Действительно, сделать простую анимацию можно с полпинка, возьму на вооружение. Что приятно, можно сделать экспорт в апплет, а в новой альфа версии и в javascript. Хотя для анимации java более подходяща, т.к. быстрее.
Built with Processing

среда, 25 января 2012 г.

Скрипт для задач на построение


Тестовая версия скрипта для задач на построение с помощью циркуля и линейки. Инструменты:
point
ставит свободные точки и пересечения кривых. Чтобы поставить точку на кривой нужно два раза по ней кликнуть. Чтобы поставить точки пересечения двух кривых нужно кликнуть на одну (она выделится), а затем на вторую.
line
функционал линейки. Чтобы провести линию через две точки, нужно на них кликнуть по очереди.
circle
функционал циркуля. Чтобы провести окружность с центром в заданной точке заданного радиуса, нужно кликнуть сначала на точку центра, а затем на пару точек, определяющих радиус.
delete
стирательная резинка.

пятница, 20 января 2012 г.

Фактор Зоммерфельда-Гамова-Сахарова

Фактор Зоммерфельда-Гамова-Сахарова является, как известно, множителем в сечении или вероятности, учитывающим кулоновское взаимодействие конечных (или начальных) частиц при малых скоростях. Важность этого множителя обусловлена тем, что даже при малом взаимодействии он может существенно отличаться от единицы. Дело в том, что теория возмущений строится формально как степенной ряд по параметру, характеризующему силу взаимодействия. Например, в квантовой электродинамике (КЭД) этот параметр равен $\alpha=e^2/\hbar c\approx 1/137.036$ (Далее работаем в системе $\hbar=c=1$). Наивно можно полагать, что поправки на взаимодействие подавлены по этому параметру (в КЭД --- на два порядка). Однако есть определенный класс поправок, которые оказываются пропорциональны не просто $\alpha^n$, а $(\alpha/v)^n$, где $v$ --- относительная скорость частиц. Если частицы релятивистские, т.е. $v\sim 1$, такие поправки малы, как и поправки, не содержащие скорость в знаменателе, но когда $v\ll 1$ такие члены могут стопроцентно изменить величину амплитуды.
К счастью, поправки такого вида можно вычислить с помощью обычной нерелятивистской квантовой механики. Пусть для определенности пара медленных частиц появляется в конечном состоянии. Тогда амплитуда $M$ вероятности такого процесса антилинейна по волновой функции пары. Обозначая за $\psi(\mathbf{r})$ координатную часть волновой функции этой пары, зависящую от относительного положения частиц, мы можем записать\[ M=\int d\mathbf{r}\psi^*(\mathbf r)K(\mathbf{r}), \] где $K(\mathbf r)$ --- функция, зависящая от процесса. В пренебрежении взаимодействием $\psi(\mathbf{r})$, имеет вид \[ \psi_0(\mathbf{r})=e^{i\mathbf{p r}}. \] Кулоновское взаимодействие $-\alpha/r$, конечно, меняет волновую функцию на (см. ЛЛ III,136.9):\[ \psi_С(\mathbf r)=e^{{\pi\alpha\over 2v}}\Gamma\left(1+i{\alpha\over v}\right)e^{i\mathbf{pr}}F\left(-i{\alpha\over v},1, -i(pr+\mathbf{pr})\right). \] Таким образом, фактор Зоммерфельда-Гамова-Сахарова равен\[ S_{\mathrm{SGS}}=\left|\frac{\int d\mathbf{r}\psi_C^*(\mathbf r)K(\mathbf{r})}{\int d\mathbf{r}\psi_0^*(\mathbf r)K(\mathbf{r})}\right|^2 \] Польза от этой формулы появляется в том случае, когда у нас есть возможность посчитать этот фактор не из процесс-зависящего определения, а универсально. Это можно сделать, когда характерный размер спадания ядра $K(\mathbf r)$ мал по сравнению с характерным размером изменения волновой функции. Типичный пример --- рождение пары на пороге. Тогда ядро $K$ имеет размер порядка комптоновской длины волны рождающихся частиц $\hbar/mc$, что действительно мало по сравнению с $\hbar/mv$ (мы рассматриваем нерелятивизм). Тогда мы выносим плавно меняющуюся $\psi$ из-под интеграла и получаем \[ S_{\mathrm{SGS}}=\left|\frac{\psi_С^*(0)}{\psi_0^*(0)}\right|^2={2\pi\alpha/v\over 1-\exp(-2\pi\alpha/v)} \] На первый взгляд кажется, что это универсальное выражение справедливо всегда независимо от специфики функции $K(\mathbf{r})$, при условии, конечно, что ее размер мал по сравнению с $\hbar/mv$. Но на самом деле тут есть одна засада: все это годится, если $\int d\mathbf r K(\mathbf r)$ не равен нулю. Это не так, если в амплитуду дают вклад только ненулевые орбитальные моменты. В этом случае интеграл от $K(\mathbf r)$ зануляется за счет интегрирования по углам и мы получаем неопределенность типа 0/0. В этом случае нам нужно начать раскладывать $\psi(\mathbf r)$ и оставить первый неисчезающий после интегрирования член разложения. Можно вместо этого сразу использовать парциальные разложения\[ \psi_0(\mathbf{r})=\sum(2l+1) i^{l}P_{l}(\mathbf{n}_r\mathbf{n}_p)R_{pl}^0(r) \,,\quad \psi_C(\mathbf{r})=\sum(2l+1) i^{l}P_{l}(\mathbf{n}_r\mathbf{n}_p)R_{pl}^C(r) \]Тогда фактор Зоммерфельда-Гамова-Сахарова для углового момента $l$ выражается как предел отношения радиальных волновых функций\[ S_{\mathrm{SGS}}(l)=\lim_{r\to 0} \left|R_{pl}^C(r)\over R_{pl}^0(r)\right|^2. \]Радиальные волновые функции имеют не очень простой вид но нам нужны только разложения при маленьких $r$:\[ R_{pl}^{0}(r)\approx\frac{\left(pr\right)^{l}}{\left(2l+1\right)!!}=\frac{\left(2pr\right)^{l}l!}{\left(2l+1\right)!},\quad R_{pl}^C(r)=e^{-\frac{\pi\alpha}{2v}}\Gamma\left(l+1+i\frac{\alpha}{v}\right)\frac{(2pr)^{l}}{(2l+1)!} \]Получаем окончательно\[ S_{\mathrm{SGS}}(l)=e^{\frac{\pi\alpha}{v}}\left|\Gamma\left(l+1+i\frac{\alpha}{v}\right)\right|^2={2\pi\alpha/v\over 1-\exp(-2\pi\alpha/v)}\prod_{s=1}^{l}\left(1+{\alpha^2\over v^2s^2}\right) \]Заметим, что при очень маленьких $v$ фактор $S_{\mathrm{SGS}}(l)$ ведет себя как $v^{-2l-1}$. Если вспомнить множитель $(pr)^l$ в радиальной функции и множитель $p$ из фазового объема родившихся частиц, то можно сделать вывод о конечности порогового сечения для любого $l$ в случае притяжения.
P.S. И кстати, теперь я совершенно не понимаю, зачем нужно этот множитель обобщать на релятивистский случай.