путаница в дискретном преобразовании для решения матричного уравнения Кронига Пенни в пространстве Фурье

у меня периодический потенциал

В ( Икс ) "=" К е я К Икс В К "=" н е я 2 π н Икс / а В н
где К "=" 2 π н а - вектор обратной решетки и а - постоянная решетки и н "=" ± 0 , ± 1 , ± 2 , ± 3... скоро. Я хочу найти коэффициенты Фурье В К "=" В н соответствующий конкретному К или н . Предположим, у меня есть вектор для В ( Икс ) имея 10000 баллов за
Икс "=" 0 , 0,01 а , 0,02 а , . . . а , 1.01 а , . . . .2 а . . . 0,99 0,99 а
так что размер моей решетки 100 а . Сейчас н также пойдет от 50 к + 49 . Таким образом, я определил потенциал для 10000 точек на одномерной решетке из 100 атомов. БПФ на этом векторе дает 10000 коэффициентов Фурье. Согласно теории дискретного преобразования Фурье ( http://www.robots.ox.ac.uk/~sjrob/Teaching/SP/l7.pdf ), К значения, соответствующие этим коэффициентам Фурье, равны 2 π н ( Н Икс ) где Н это нет. отсчетов = 10000, разделенных интервалом Икс "=" 0,01 а с н "=" 0 , 1 , 2 , 3 , . . .9999 .

Но я начал с К который имел форму К "=" 2 π н а . Что мне не хватает? Как правильно найти коэффициенты Фурье В К численно с использованием DFT (можно использовать метод быстрого преобразования Фурье в Matlab)?

Справку по уравнению матрицы пространства Фурье Кронига-Пеннея можно найти здесь http://www.physics.buffalo.edu/phy410-505/topic5/index.html .

Ответы (1)

Во-первых, несколько незначительный момент заключается в том, что Икс "=" 0 , 0,01 а , 0,02 а , . . . а , 1.01 а , . . . .2 а . . . .100 а на самом деле дает список из 10001 точки, а не 10000 точек. Я предполагаю, что вы действительно хотели сказать Икс "=" 0 , 0,01 а , . . . а , 1.01 а , . . . .2 а . . . 0,99 0,99 а .

Во-вторых, вы говорите, что

В ( Икс ) "=" К е я К Икс В К
где К "=" 2 π н а и н "=" 0 , 1 , 2 , 3 , но это дает неэрмитов гамильтониан, поэтому вместо этого я предположу, что вы на самом деле хотели сказать н "=" 0 , ± 1 , ± 2 , ± 3 и где В К "=" В К * .

Итак, самый простой способ интерпретировать ДПФ состоит в следующем. Обратите внимание, что к запись (где к "=" 1 , 2 , . . . , 10000 ) вектора В можно записать как

В [ к ] "=" н "=" 3 3 В н е 2 π я 100 н ( к 1 ) / 10000
где я специально не отменял фактор 100 / 10000 чтобы сделать форму частотной области коэффициентов ясной. Отсюда видно, что каждый коэффициент В н можно определить из ДПФ как
В н "=" 1 10000 ДПФ ( В ) [ 100 н + 1  мод  10000 ]
где ДПФ ( В ) является унитарным БПФ В .

В качестве числового примера в Mathematica:

V0 = 10;
V1 = 2 + I;
V2 = 3 + 2 I;
V3 = 4;
Vm1 = 2 - I;
Vm2 = 3 - 2 I;
Vm3 = 4;
V = Chop@Table[
    Exp[I 2 \[Pi] 1/a x] V1 + Exp[I 2 \[Pi] 2/a x] V2 + 
     Exp[I 2 \[Pi] 3/a x] V3 + Exp[-I 2 \[Pi] 1/a x] Vm1 + 
     Exp[-I 2 \[Pi] 2/a x] Vm2 + Exp[-I 2 \[Pi] 3/a x] Vm3 + V0, {x, 
     0, 99.99 a, 0.01 a}];
DFTV = InverseFourier[V];

Вот первая элементарная ячейка:

ListLinePlot[V[[1 ;; 100]]]

введите описание изображения здесь

Вот ДПФ:

ListLinePlot[Abs[DFTV], PlotRange -> All, Frame -> True, 
Axes -> False]

введите описание изображения здесь

А вот коэффициенты, возвращенные из ДПФ:

Chop@Table[1/Sqrt[10000] DFTV[[Mod[100 n + 1, 10000]]], {n, -3, 3}]

(*Out: {4., 3. - 2. I, 2. - 1. I, 10., 2. + 1. I, 3. + 2. I, 4.} *)

Вы можете сами убедиться, что все остальные коэффициенты ДПФ равны нулю с точностью до машины. Небольшое примечание: я использовал InverseFourier, а не Fourierпотому, что определение Mathematica Fourierи InverseFourierпоменялось местами по сравнению с тем, как люди обычно определяют преобразования Фурье.

эй, спасибо, что упомянули и приняли исправления, которые следует внести в вопрос. Я не понимаю, почему n изменяется от -4 до +4.
@ user38579: Извините, опечатка, должно быть от -3 до 3, как вы сформулировали в своем вопросе, я отредактировал свой ответ, чтобы исправить это.
Я понимаю, что было моей ошибкой не поставить точки перед 3. До выбора конечной решетки это была бесконечная сумма. После выбора конечной решетки из 100 атомов она изменится от -50 до +49, верно? спасибо за ваш ответ, я принял его.