Многомерное уравнение

Экономичные схемы. Для уравнения переноса (лекция №10) хорошие схемы бегущего счета естественным образом обобщаются на многомерный случай. Для уравнения теплопроводности попытки обобщить хорошие неявные разностные схемы типа (6), (19),(20) на многомерный случай сталкиваются с принципиальными трудностями.

Рассмотрим эти затруднения на примере двумерного уравнения теплопроводности с постоянным коэффициентом теплопроводности, для которого определена первая краевая задача в прямоугольной по переменным x1, x2 области:

, (34)

где k = const > 0, (t,x1,x2) Î G(t,x1,x2) = (0,T]´(0,a)´(0,b);

; (35)

(36)

 

Рис.6,а. Определение прямоугольной равномерной сетки с шагами h1, h2 по переменным x1, x2 Рис.6,б. Шаблон разностной схемы (37)

 

Определим прямоугольную сетку (x1,n,x2,m) (рис.6,а), считая для простоты ее равномерной с шагами по переменным x1, x2h1, h2 соответственно, т.е. x1,n = h1n, x2,m = h2m, n = 0,1,…,N, m = 0,1,…,M. Выберем в качестве шаблона разностной схемы тот, который представлен на рис.6,б. На каждом временном слое шаблон имеет форму креста, по которому составляется неявная двухслойная схема с весом s, построенная по аналогии со схемой (6), т.е.

, (37)

где

(37¢)

Запись начального (35) и краевых условий (36) в разностном виде очевидна и реализуется точно. Можно проверить, что погрешность аппроксимации схемы (37), (37¢) на решениях с непрерывными четвертыми производными равна , где n = 2 при s = ½ и n = 1 при s ¹ ½.

Исследуем устойчивость разностной схемы (37), (37¢) методом разделения переменных. Гармоники с текущего и следующего временного слоя выберем в виде:

,

тогда, считая как обычно модуль множителя роста меньше единицы, находим условие устойчивости разностной схемы (37), (37¢) в :

, (38)

которое похоже на аналогичное условие (10) для одномерной схемы (6).

Схема (37), (37¢) легко обобщается на случай p измерений. Оценим число операций, требуемых для расчета до момента времени T.

Рассмотрим явную схему при s = 0, для которой значения вычисляются по значениям с предыдущего слоя, т.е. всего требуется ~ Np операций, где для простоты считается, что число узлов по каждой переменной одинаково и равно N. Согласно (38), явная разностная схема устойчива, когда

.

Таким образом, для расчета до момента времени T необходимо сделать ~ N2 шагов по времени и полный расчет потребует ~ Np +2 операций.

Если пользоваться абсолютно устойчивой схемой, когда s ³ ½, то можно выбирать t ~ h. Однако, в этом случае необходимо решать линейную систему уравнений порядка Np. Если ее решать методом Гаусса, то потребуется ~ N3p операций. Это число операций можно несколько сократить, заметив, что полученная матрица будет сильно разреженной и если предположить, что используется алгоритм, учитывающий такую разреженность, то число операций будет ~ N3p -2. Такая оценка следует из того, что в одномерном случае матрица трехдиагональная и система уравнений решается прогонкой с числом операций ~ N. Учитывая, что для получения решения в момент времени T требуется ~ N шагов по времени, найдем итоговую оценку для числа операций ~ N3p -1 при использовании неявной разностной схемы.

Если для одномерного уравнения явная схема является явно невыгодной на фоне использования неявных схем, то в многомерном случае (p ³ 2) неявные схемы становятся невыгодными по сравнению с явной схемой.

Несмотря на упомянутые выше трудности, для многомерного параболического уравнения построены абсолютно устойчивые разностные схемы, которые позволяют вести расчет с шагом t ~ h и требующие ~ Np операций для перехода со слоя на слой. Это значит, что число действий в расчете на узел пространственной сетки не зависит от шагов ha, a = 1,…,p. Такие схемы принято называть экономичными.

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

Продольно-поперечная схема является одной из самых лучших двумерных экономичных разностных схем. Ее также называют схемой переменных направлений. На рис.7 приведен шаблон схемы переменных направлений, в которую введен полуцелый слой . Составим согласно шаблону рис.7 разностную схему:

, (39)

, (39¢)

где разностные операторы L1, L2 определены в (37¢), а берется на полуцелом слое .

 

Рис.7. Шаблон разностной схемы (39), (39¢)

 

Исследуем продольно-поперечную разностную схему (39), (39¢).

Вычислительная процедура по схеме (39), (39¢) складывается из перехода со слоя t на слой согласно уравнению (39) и далее переход со слоя на слой t + t согласно уравнению (39¢). На первом шаге неизвестными выступают величины с полуцелого слоя, они находятся прогонкой по направлению x1 путем обращения разностного оператора L1, который согласно (37¢) определен на трехточечном шаблоне. На втором шаге при переходе на слой t + t неизвестными выступают величины , они находятся прогонкой, но в поперечном x2 направлении путем обращения оператора L2, который также определен на трехточечном шаблоне. И для первой, и для второй прогонки имеется диагональное преобладание так, что прогонки устойчивы, а разностное решение существует и единственно.

Устойчивость продольно-поперечной схемы можно исследовать методом разделения переменных. Положим

, (40)

где — множители роста гармоник на первом и втором полушагах. Подставляя представление (40) в (39), (39¢), находим

, (41)

. (41¢)

Учитывая (40), (41¢), можно убедиться, что для любых гармоник и при любых шагах сетки верно неравенство: . Таким образом, при переходе со слоя слой ошибки в начальных данных не растут и разностная схема (39), (39¢) равномерно и безусловно устойчива по начальным данным. Можно также проверить, что дополнительный признак устойчивости по правой части (9.65) выполняется на каждом из полушагов по времени, т.е. схема (39), (39¢) также устойчива по правой части.

Порядок аппроксимации схемы (39), (39¢) можно оценить путем исключения полуцелого слоя. Для этого вычтем из уравнения (39) уравнение (39¢), тогда найдем

. (42)

Складывая уравнения (39), (39¢) и подставляя в них выражение (42), получим

. (43)

Предпоследний член в правой части (43), после разложения в ряд Тейлора, может быть аппроксимирован выражением . Остальные члены в (43) совпадают с симметричным вариантом схемы (37) (s = ½), которая имеет порядок аппроксимации . Тем самым, продольно-поперечная схема имеет второй порядок точности по всем переменным.

Определимся с аппроксимацией граничных условий (36) для продольно-поперечной схемы. При решении уравнения (39¢) относительно необходимо использовать граничное условие на сторонах прямоугольника x2 = 0 и x2 = b. В этом случае очевидно можно положить, что

. (44)

При решении уравнения (39) относительно необходимы граничные условия на сторонах x1 = 0 и x1 = a. Для их получения необходимо воспользоваться уравнением (42), тогда

(44¢)

где m = 1,…,M-1. Граничные условия (44), (44¢) обеспечивают погрешность аппроксимации .

Проведенное исследование аппроксимации и устойчивости показывает, что схема (39), (39¢) безусловно сходится в норме , при этом в прямоугольной области на равномерной сетке и при граничных условиях (44), (44¢) схема имеет точность на решениях с непрерывными пятыми производными.

Изучим разностную схему (39), (39¢) на примере численного решения уравнения (34) с правой частью вида:

(45)

где f0, r0, r1 = const > 0, а . Функция (45) представляет собой источник тепла эллиптической формы в области [0,a]´[0,b]. Трехмерный график источника тепла представлен на рис.8 (левый рисунок). На листинге_№4 приведен код программы численного решения задачи (34), (45) с нулевыми граничными и начальными условиями.

 

Листинг_№4

%Программа решения двухмерного уравнения

%теплопроводности (34) с источником специального

%вида (45) с помощью продольно-поперечной

%разностной схемы (39), (39')

function heat_dim2

global a b f0 r0 r1

%Определяем габариты области интегрирования

%по времени, направлениям x1 и x2, а также

%коэффициент теплопроводности и константу f0,

%задающую амплитуду источника

T=1; a=1; b=1; koef=0.5; f0=100;

r0=0.2*min(a,b); r1=0.4*min(a,b);

%Определяем число шагов по времени и по

%направлениям x1 и x2

Nt=61; tau=T/(Nt-1);

N=61; M=61;

h1=a/(N-1); h2=b/(M-1);

%Определяем сетки по x1 и x2

x1=0:h1:a; x2=0:h2:b;

%Определяем источник тепла в узлах сетки

for n=1:N

for m=1:M

src(n,m)=f(x1(n),x2(m));

end

end

%Рисуем трехмерный профиль источника тепла

subplot(2,2,1); surf(x2,x1,src);

%Определяем нулевые начальные данные

for n=1:N

for m=1:M

y(1,n,m)=0;

end

end

%Определяем граничные условия при x1=0 и x1=a

for t=1:Nt

for m=1:M

y(t,1,m)=0; y(t,N,m)=0;

end

end

%Определяем граничные условия при x2=0 и x2=b

for t=1:Nt

for n=1:N

y(t,n,1)=0; y(t,n,M)=0;

end

end

%Определяем номера слоев по времени, которые будут

%нарисованы на итоговом графике

nt=[3 8 (Nt-1)]; k=1;

%Организуем основной цикл интегрирования по времени

for t=1:(Nt-1)

p1=(0.5*tau*koef)/h1^2;

p2=(0.5*tau*koef)/h2^2;

%Находим решение на полуцелом временном слое,

%т.е. решаем уравнение (39)

for m=2:(M-1)

%Учитываем нулевое граничное при x1=0

alpha(2)=0; beta(2)=y(t,1,m);

for n=2:(N-1)

alpha(n+1)=p1/(1+p1*(2-alpha(n)));

beta(n+1)=(y(t,n,m)+p2*(y(t,n,m-1)-...

2*y(t,n,m)+y(t,n,m+1))+...

0.5*tau*f(x1(n),x2(m))+...

p1*beta(n))/(1+p1*(2-alpha(n)));

end

%Учитываем нулевое граничное при x1=a

ys(N,m)=y(t,N,m);

for n=N:-1:2

ys(n-1,m)=alpha(n)*ys(n,m)+beta(n);

end

end

%Находим решение на следующем временном слое,

%т.е. решаем уравнение (39')

for n=2:(N-1)

%Учитываем нулевое граничное при x2=0

alpha(2)=0; beta(2)=y(t,n,1);

for m=2:(M-1)

alpha(m+1)=p2/(1+p2*(2-alpha(m)));

beta(m+1)=(ys(n,m)+p1*(ys(n-1,m)-...

2*ys(n,m)+ys(n+1,m))+...

0.5*tau*f(x1(n),x2(m))+...

p2*beta(m))/(1+p2*(2-alpha(m)));

end

for m=M:-1:2

y(t+1,n,m-1)=alpha(m)*y(t+1,n,m)+beta(m);

end

end

if nt(k)==t

k=k+1;

for n=1:N

for m=1:M

z(n,m)=y(t,n,m);

end

end

%Рисуем выбранные слои по времени

subplot(2,2,k); surf(x2,x1,z);

end

end

%Определяем функцию правой части уравнения (34)

function y=f(x1,x2)

global a b f0 r0 r1

r=sqrt((x1-0.5*a)^2+(x2-0.5*b)^2);

y=0;

if (r>=r0)&(r<=r1)

y=f0*(r1-r)*(r-r0);

end

 

Рис.8. Численное решение уравнения теплопроводности (34) с
источником тепла (45)

 

Итог работы кода программы листинга_№4 приведен на рис.8. На левом верхнем рисунке приведен трехмерный профиль источника тепла (45), который имеет кольцевую форму. На трех других рисунках приведены трехмерные профили численных решений уравнения (34) с источником тепла (45) с помощью продольно-поперечной схемы (39), (39¢) в три различные момента времени t1, t2, t3, причем t1 < t2 < t3. Видно, как постепенно ямка в центре теплового возмущения исчезает и со временем становится еле заметной.

Локально-одномерный метод. Продольно-поперечная схема на задачи с числом измерений p ³ 3 не обобщается. Экономичные многомерные разностные схемы можно строить локально-одномерным методом, в которых также используются промежуточные слои, на которых численные решения вообще не аппроксимирует исходное дифференциальное уравнение. Однако при суммировании погрешности аппроксимации промежуточных слоев гасят друг друга и на целом слое аппроксимация имеет место, т.е. можно говорить о суммарной аппроксимации. Таким образом, физический смысл имеют лишь численные решения на целых, а не промежуточных, временных слоях.

Рассмотрим многомерное параболическое уравнение следующего вида:

, (46)

где ka = const > 0, x = (x1,…,xp).

Аппроксимируем (46) симметричной неявной разностной схемой, т.е.

, (47)

где La — разностные операторы типа (37¢), аппроксимирующие Aa с погрешностью O(h2), т.е. в целом схема (47) имеет погрешность . Схема (47) неэкономична, поскольку не найден экономичный алгоритм вычисления .

Исходя из (47), построим локально-одномерную схему. Обозначим решение на промежуточных шагах через wa, a = 1,2,…,p и запишем для промежуточных слоев следующие разностные схемы:

; (48)

. (49)

Поскольку каждая из схем (48) является одномерной, постольку и вся схема (48), (49) называется локально-одномерной. Проведем исследование схемы (48), (49).

Каждое из уравнений (48) является одномерной неявной симметричной схемой типа (6) при s = ½. Как установлена выше, эта схема является безусловной устойчивой, т.е. ошибка в начальных данных не возрастает ни на одном из промежуточных слоев. Тем самым, локально-одномерная схема (48), (49) является безусловно устойчивой.

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

Для оценки порядка аппроксимации сравним схему (48), (49) со схемой (47). Представим уравнения (48) в виде

. (50)

Поскольку операторы Aa, a = 1,…,p попарно перестановочны, постольку и их разностные аналоги La, a = 1,…,p также перестановочны. Последовательно применяя (50) ко всем промежуточным слоям, находим

. (51)

Раскрывая произведения в (51) и удерживая члены второго порядка малости по t, находим

. (52)

На решениях с непрерывными пятыми производными двойная сумма в (52) имеет порядок O(t 2). Таким образом, локально-одномерная схема (48), (49) на целых слоях имеет порядок аппроксимации .

Для получения погрешности аппроксимации O(t 2) для граничных условий необходимо удовлетворить уравнениям, аналогичным (44), (44¢).

Изучим локально-одномерный метод на примере решения уравнения (46) при p = 2, т.е. численно с помощью разностной схемы (48), (49) решим двумерное уравнение теплопроводности без источника. В этом случае разностные схемы (48), (49) можно переписать в виде:

, (53)

. (53¢)

Для двумерного случая в локально-одномерной схеме — один-единственный промежуточный слой w. Значения на этом слое находятся решением уравнения (53) прогонкой и далее эти решения используются во втором уравнении (53¢), в котором опять же прогонкой получают искомые решения на следующем слое .

На листинге_№5 приведен код программы расчета по разностным схемам (53), (53¢) эволюции начального распределения температуры в виде конуса (левая фигура на рис.9).

 

Листинг_№5

%Программа расчета двумерного уравнения

%теплопроводности (46) по локально-

%одномерной разностной схеме (53), (53')

function heat_dim1p1

global a b r0 hg

%Определение габаритов области интегрирования

%по времени T, направлениям x1, x2, определение

%параметров начального распределения в виде

%конуса r0, hg и коэффициента теплопроводности koef

T=1; a=1; b=1; r0=0.25; hg=10; koef=1;

%Определение количества узлов сетки по времени Nt

Nt=151; tau=T/(Nt-1);

%Определение количества узлов сеток по

%направлениям x1,x2 - N, M соответственно

N=41; M=41;

h1=a/(N-1); h2=b/(M-1);

x1=0:h1:a; x2=0:h2:b;

%Определяем в виде двумерной матрицы начальное

%распределение температуры

for n=1:N

for m=1:M

ind(n,m)=u0(x1(n),x2(m));

end

end

%Рисуем начальное распределение температуры

subplot(1,2,1); surf(x2,x1,ind);

%Определяем начальное распределение температуры

for n=1:N

for m=1:M

y(1,n,m)=u0(x1(n),x2(m));

end

end

%Определяем нулевые граничные условия

%при x1=0 и x1=a

for t=1:Nt

for m=1:M

y(t,1,m)=0; y(t,N,m)=0;

end

end

%Определяем нулевые граничные условия

%при x2=0 и x2=b

for t=1:Nt

for n=1:N

y(t,n,1)=0; y(t,n,M)=0;

end

end

%Организуем основной цикл расчета по времени

for t=1:(Nt-1)

p1=(tau*koef)/(2*h1^2);

p2=(tau*koef)/(2*h2^2);

%Определяем нулевые граничные условия при

%x2=0 и x2=b для промежуточного слоя w

for n=1:N

w(n,1)=y(t,n,1); w(n,M)=y(t,n,M);

end

%Осуществляем прогонки по направлению x1

%при различных m

for m=2:(M-1)

alpha(2)=0; beta(2)=y(t,1,m);

for n=2:(N-1)

alpha(n+1)=p1/(1+p1*(2-alpha(n)));

beta(n+1)=(y(t,n,m)+p1*(y(t,n-1,m)-...

2*y(t,n,m)+y(t,n+1,m)+beta(n)))/...

(1+p1*(2-alpha(n)));

end

%Формируем решение на промежуточном слое w

w(N,m)=y(t,N,m);

for n=N:-1:2

w(n-1,m)=alpha(n)*w(n,m)+beta(n);

end

end

%Осуществляем прогонки по направлению x2

%при различных n

for n=2:(N-1)

alpha(2)=0; beta(2)=y(t+1,n,1);

for m=2:(M-1)

alpha(m+1)=p2/(1+p2*(2-alpha(m)));

beta(m+1)=(w(n,m)+p2*(w(n,m-1)-...

2*w(n,m)+w(n,m+1)+beta(m)))/...

(1+p2*(2-alpha(m)));

end

%Формируем решение на следующем слое

for m=M:-1:2

y(t+1,n,m-1)=alpha(m)*y(t+1,n,m)+beta(m);

end

end

end

for n=1:N

for m=1:M

z(n,m)=y(Nt,n,m);

end

end

%Рисуем распределение температуры u(T,x1,x2) в

%момент времени t=T

subplot(1,2,2); surf(x2,x1,z);

%Определяем функцию, задающую начальное

%распределение в виде конуса

function y=u0(x1,x2)

global a b r0 hg

y=0;

r=sqrt((x1-0.5*a)^2+(x2-0.5*b)^2);

if r<=r0

y=(hg/r0)*(r0-r);

end

 

На рис.9 приведен итог работы кода программы листинга_№5. На рисунке слева представлен внешний вид начального распределения температуры в виде конуса (при a = b). Поскольку уравнение (46) является уравнением теплопроводности без источника, а на границах области [0,a]´[0,b] поддерживается нулевая температура, постольку начальное возмущение должно со временем растекаться вследствие теплопроводности и амплитуда его должна стремиться к нулю при t ® ¥. На правом рисунке приведено численное решение уравнения (46) на конечный момент времени t = T из области решения G(t,x1,x2) = (0,T]´(0,a)´(0,b) по локально-одномерной разностной схеме (53), (53¢). Согласно этому рисунку начальное возмущение температуры в виде конуса благополучно растеклось, и максимум распределения стремится к нулю при t ® ¥.

 

Рис.9. Начальное распределение температуры (рисунок слева) и численное
решение уравнения (46) по разностной схеме (53), (53¢) (рисунок справа)

 


[1] См., например, Тихонов А.Н., Самарский А.А. Уравнения математической физики. — М.: Наука, Гл. ред. физ.-мат. литературы, 1972.

[2] Режимы с обострением. Эволюция идеи: Законы коэволюции сложных структур/ Сб. статей/ Ред. Г.Г. Малинецкий/ Кибернетика: неограниченные возможности и возможные ограничения. — М.: Наука, 1999. 255с.








Дата добавления: 2016-03-27; просмотров: 2147;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.123 сек.