Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Численные методы Часть 5..pdf
Скачиваний:
9
Добавлен:
15.11.2022
Размер:
7.37 Mб
Скачать

2срЛ

 

eph

 

срА

тА.

 

срА тА,

3

£2

6 +

2

~ Г + Т

+ 2

т т

 

 

cph

 

хХ < _тХ:

 

 

 

Т ~

 

Т "

h

'

 

Полученное соотношение не выполняется, что говорит о безус­ ловной неустойчивости разностной схемы.

Алгоритм решения

Ниже приведён фрагмент программы на языке Си, реализующей процедуру построения приближённого решения дифференциального уравнения стационарной теплопроводности на основе кусочно­ линейных пробных функций с использованием явной схемы интег­ рирования по времени.

 

 

 

Программа 3.1

// Задача стационарной теплопроводности. Явная схема

//

Ne

число

сегментов

//

Nk

число

узлов

//

locale

массив коэффициентов системы уравнений для сегмента

//

localF

массив правых частей системы уравнений для сегмента

//

globalC

массив коэффициентов системы уравнений для объекта

//

globalF

массив коэффициентов системы уравнений для объекта

//

х

массив координат узлов

//

хО

начальная точка

//х1 конечная точка

//L коэффициент теплопроводности

//С коэффициент теплоёмкости

//

R

плотность

 

//

W0

амплитуда мощности источников

//

ТО

температура

на левом торце (хО)

//

Те

температура

среды

//А коэффициент теплоотдачи

//h длина сегмента

//dt - шаг интегрирования по времени

#define Ne 64

void main(void)

{double globalC[Ne+1] [Ne+1], globalF[Ne+1], x[Ne+l], Time=0.0 double locale[2] [2], localF[2], x0=0., xl=M_PI, h=(xl-xO)/Ne double L=70 .0, W=1000.0; T0=100.0, Te=20.0, A=30.0, dt=0.1

int i, j, k, Nk=Ne+l;

//определение координат и номеров узлов каждого сегмента for(k=0; k<Nk; k++) x[k]=xO+h*k;

//определение начального условия_______________________________

for(k=0; k<Nk; k++) T[k]=T0; for(Time=0; Time<3600.0; Time+=dt)

//инициализация массивов коэффициентов и правых частей

//системы уравнений

{ for(i=0; i<Nk; i++)

for(globalF[i] =0.О , j=0; j<Nk; j++) globalC[i] [j]=0.0; for(k=0; k<Ne; k++)

// формирование матриц коэффициентов и правых частей для сегмента

{locale [0] [0]=C*R*h/3.0; locale [0] [1]=C*R*h/6.0; locale[1] [0]=C*R*h/6.0; locale[1][1]=C*R*h/3.0; localL[0] [0]=L/h; localL[0][1]=-L/h; localL [1] [0]=-L/h; localL[1][1]=L/h;

localF[0]=W*(cos(x[k]) - (sin(x[k+1])-sin(x[k]))/h); localF[1]= W * ((sin(x[k+1])-sin(x[k]))/h-cos(x[k+1]));

//формирование матриц коэффициентов и правых частей для объекта globalC [к] [к]+=1оса1С [0] [0] ;

globalC [к] [к+1]+=1оса1С [0] [1]; globalC [к+1] [к]+=1оса1С [1] [0];

globalC [k+1] [к+1]+=1оса1С [1] [1]; globalF[к]+=dt*localF[0] + (locale [0] [0]-

dt*localL [0] [0] )*Т [к]

+ (locale[0] [1]-dt*localL[0] [1])*Т[к+1]; globalF[к+1]+=dt*localF[1]

+(locale [1] [0]-dt*localL [1] [0])*T[k]

+(locale [1] [1]-dt*localL [1] [l])*T[k+l];

}

// определение граничного условия 1-го рода на левом торце globalC[0] [0]=1.0;

f o r (к=1; k<Nk; к++) globalC [0] [к]=0.0; globalF [0]=Т0*ехр(-0.001*Time);

// определение граничного условия 3-го рода на правом торце globalC[Nk-1][Nk-1]+=A*dt;

globalF[Nk-1]+=A*dt*Te;

//решение системы линейных алгебраических уравнений GAUSS(globalC, globalF, N k ) ;

Реализация алгоритма

Отрезок [0, я] разбивается на четыре сегмента равной длины:

[0,я]= [0,я/4]U [я/4, я/2] U [я/2, Зя/4]U [Зя/4,я].

На каждом из этих сегментов в соответствии с выражением (3.12) определяются кусочно-линейные пробные функции. Решение дифференциального уравнения представляется разложением (3.14).

Для построения приближённого решения необходимо решить систе­ му обыкновенных дифференциальных уравнений (3.17) относитель­ но искомых функций Г(/)., / = 0,4.

В соответствии с коэффициентами матриц [с ], [д ] и {W} выра­ жения (3.17), количественными значениями физических констант с, р, X, а, параметров Л и т подсчитываются значения коэффициентов системы линейных алгебраических уравнений (3.19), что приводит

ксистеме уравнений

Щ+ Of, + Of, + 0f3+ 0f4= lOOe-0’01',

469668f0 +18786727; + 469668f2 + 0f3+ 0f4=

= (469668 + x89,l 268) T0+ 2(939336 - т89,1268) 7] +

+(469668 + т89,1268)Г2 + x527,393,

Of0+ 469668f, +1878672f> + 469668f3 + 0f4=

=(469668 + x89,1268)7]+ 2(939336 - т89,1268)T2+

+(469668+ т89,1268)Г3 + т745,846,

Of0+ Of, + 469668f2 +1878672f3 + 469668f4 =

=(469668 + т89,1268)Г2 + 2(939336 - т89,1268)Г3 +

+(469668 + т89,1268)7; + т527,393,

Of0+ 07; + 0f2+ 469668f3 + (30т + 939336) f4=

=(469668 + т89,1268) T3+ (939336 - i89,l 268)7; +

+T699,6837.

Результаты расчётов

Использование Программы 3.1 позволяет получить приближен­ ное решение дифференциального уравнения (3.5) для области [0, л] на заданном отрезке времени [0, 3600] с шагами интегрирования т = 1 с (рис. 3.1, а), т = 25 с (рис. 3.1, б), т = 500 с (рис. 3.1, в).

в

Рис. 3.1. Приближённое решение уравнения (3.5) на отрезке [0, я] при использовании явной разностной схемы для 4 сегментов и ша­ га интегрирования по времени т = 1 с (а), т = 25 с (б) и т = 500 с (в) для моментов времени t = 0 с (----), t = 500 с (---- ), / = 1000 с (-0-), t = 1500 с (-Д-), / = 2000 с (—X—), t = 2500 с (-о-), / = 3000 с (-+-)

Результаты вычислений подтверждают вывод о безусловной не­ устойчивости решения: изменение шага интегрирования по времени т в широком диапазоне от 1 с до 500 с не позволяет получить устой­ чивое решение. На рис. 3.1 неустойчивость приближённого решения проявляется наличием физически необоснованной осцилляции тем­ пературы вблизи значения Т = 100°.

Приближённое решение поставленной задачи с признаками не­ устойчивости, полученное с использованием явной разностной схе­ мы для области [О, л]х[о, 3600] для 4 сегментов и шага интегрирова­

ния по времени т = 25 с, приведено на рис. 3.2.

Рис. 3.2. Приближённое решение уравнения (3.5) в области [О, я]х[0,3600], полученное с использованием явной разностной

схемы для 4 сегментов и шага интегрирования по времени т = 25 с

На рис. 3.3 показано приближённое решение той же задачи (3.5), полученное с использованием явной разностной схемы на той же об­ ласти [о, я] х [о, 3600] для 64 сегментов и шага интегрирования по вре­

мени т = 1 с. Явные признаки неустойчивости решения отсутствуют. Однако детальный анализ полученного решения (рис. 3.4) показыва­ ет наличие признаков неустойчивости решения, которое проявляется физически недостоверными скачками температуры выше 100° даже при малых длинах сегментов и отсутствии источника тепла, WQ = 0, в рассматриваемой области.

Для оценки погрешности получаемого приближённого решения рассматривается область [о, я]х[о, 61440]. Для выполнения вычисли­

тельных экспериментов принято значение шага т = 15 с. Принятые соотношения между длинами сегментов h и шагами интегрирования по времени т указаны в табл. 3.1. В этой же таблице и на рис. 3.5 при­ ведены значения погрешностей

5ш,2ш= |\Т2т ~ Т’шЦ= ^max

\Т2т(t,x) - Тт(/,д;)| =

 

fe[0,61440]

 

= max

т

£ ^ ( 0 <P/(JC) - Z 7^(,)(P.W

ле[0,я].

 

 

/е[0,61440]

определённые сравнением двух последовательных приближённых решений Тти Т2тдифференциального уравнения (3.5) при различных значениях числа т и сегментов на одном и том же отрезке време­ ни t е [0, 61440] с использованием чебышёвской нормы.

В силу того что Ьт2т—»оо при И 0, последовательность при­ ближённых решений уравнения (3.5), полученных аппроксимацией (3.14) кусочно-линейными функциями, расходится на отрезке [0, я].

На рис. 3.6 приведена зависимость времени t выполнения расче­ тов от числа т сегментов разностной сетки при использовании явной схемы интегрирования по времени.

Таблица 3.1

Погрешность Ътприближённого решения дифференциального уравнения при использовании явной разностной схемы

для различного числа т сегментов

т

А

т

6/л,2т

т

А

т

$т,2т

2

1,570796

61440

1,09433 103

16

0,196350

960

1,51073-10173

4

0,785398

15360 3,80112-Ю10 32

0,098175

240

-

8

0,392699

3840

4,55040-1042

64

0,049087

60

-

а

б

Рис. 3.5. Зависимость от длин h сегментов погрешности Ьщ приближённого решения уравнения (3.5), полученного

с использованием явной разностной схемы

О

10

20

30

40

50

60

гп

Рис. 3.6. Зависимость времени t выполнения расчетов для явной схемы от числа т сегментов разностной сетки

Выводы

1. Процедура метода Галёркина использована для приближён­ ного решения нестационарного дифференциального уравнения теп­ лопроводности. С помощью явной разностной схемы построены системы линейных алгебраических уравнений для определения ко­ эффициентов разложения искомого решения по системе пробных кусочно-линейных функций.

2.Разработана вычислительная программа определения коэффи­ циентов разложения решения дифференциального решения по сис­ теме кусочно-линейных функций.

3.С использованием разработанных программ определены ко­ эффициенты и построены приближённые решения дифференциаль­ ного уравнения для 2, 4, 8, 16, 32 и 64 сегментов постоянной длины (см. рис. 3.3).

4.Для указанных последовательностей разложений определены

оценки 52т погрешности приближённых решений (см. табл. 3.1) для различного числа т сегментов.

5. Показано, что с уменьшением длины h сегментов погрешно­ сти приближённых решений нестационарного дифференциального уравнения, полученных на основе явной разностной схемы, опреде­ ляемые чебышёвской нормой, увеличиваются (см. рис. 3.5).

6. Выполненное исследование показывает, что последователь­ ность приближённых решений дифференциального уравнения неста­ ционарной теплопроводности, полученных на основе явной разност­ ной схемы на отрезке [0, л], расходится.

7. Для численного решения на компьютере с процессором Intel® Pentium® 4 (тактовая частота 2,2 ГГц, объем оперативной памяти 512 Мбайт) дифференциального уравнения методом Галёркина на основе кусочно-линейных функций на разностной сетке, содержащей т = 64 сегмента, и шагом по времени т = 15 с при использовании яв­ ной разностной схемы требуется 0,4167 с (см. рис. 3.6).

3.2. Неявная разностная схема

Задание. Методом Галёркина с использованием кусочно-ли­ нейных пробных функций и неявной разностной схемы построить на отрезке te [0,3600] приближённое решение одномерного диффе­

ренциального уравнения

нестационарной теплопроводности

cpf(t,x) = [XT'(t,x)] н-Ж0sinJC

с

начальным условием

Г(/,лг)|^о = f (х)

и граничными условиями

T(t,x)\x=o=T°e~°m t,

дг)| ^ =

= —a[V(/,jc)| —7^]. Сформировать систему линейных алгебраиче­

ских уравнений относительно коэффициентов разложения искомо­ го решения по заданнной системе пробных функций; разработать вычислительную программу для определения коэффициентов раз­ ложения решения дифференциального уравнения по заданнной сис-