← Назад Далее →

3.4. Характеристические многочлены

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

uj+kn+mAqmeikω.

Полученное выражение, после упрощения, следует трактовать как полином относительно q. Данный алгоритм реализуется следующим кодом:

BuildPoly[sh_] :=Module[{p},
    p=sh /. u[ii_, nn_] ->Exp[(i - ii)*I*w]*q^(nn - n + 1); (* подстановка гармоники *)
    If[Coefficient[p, q, 0] == 0, p = p/q]; (* убираем тривиальное решение *)
    Return @Numerator@Together @ p; (* избавляемся от знаменателя *)
];

Для рассматриваемых схем характеристические полиномы будут либо линейными (для двуслойных по времени схем), либо квадратичными (для трехслойных схем). Корень линейных полиномов bx+c=0с комплексными коэффициентами также является комплексным:

q=cb.(3.15)

Квадратичные полиномы имеют два корня. Представив полином в виде

aq2+bq+c=0,

где a,b,c- некоторые комплексные выражения, решение квадратичного уравнения можно записать в стандартном виде

q1,2=b±b24ac2a(3.16)

← Назад Далее →