книги / Численные методы. Ч. 5
.pdfлинейных пробных функций приближённо оценивается как величи на, пропорциональная длине сегмента h в степени 3/2 , т.е.
2т |
ш |
II |
I |
|
|
Ё 7 / Ф / - £ Г'Ч>'|“ ° ( А^ ) - |
||
|/=0 |
/=0 |
II |
0,01 |
0,1 |
И |
Рис. 3.9. Зависимость от длин h сегментов погрешности 6ъп приближённого решения уравнения (3.5), полученного
с использованием неявной разностной схемы
0 |
10 |
20 |
30 |
40 |
50 |
60 |
т |
Рис. 3.10. Зависимость времени t выполнения расчетов для неявной схемы от числа т сегментов разностной сетки
В силу этого 5т 0 при h —» 0 или /и —>оо. Это позволяет утвер ждать, что последовательность приближённых решений дифферен циального уравнения, полученных аппроксимацией (3.14) кусочно постоянными функциями, сходится равномерно на отрезке [0, л].
На рис. ЗЛО приведена зависимость времени / выполнения рас четов от числа т сегментов разностной сетки при использовании не явной схемы интегрирования по времени.
Выводы
1. Процедура метода Галёркина использована для приближённо го решения нестационарного дифференциального уравнения тепло проводности. С помощью неявной разностной схемы построена система линейных алгебраических уравнений для определения ко эффициентов разложения искомого решения по системе пробных ку сочно-линейных функций.
2.Разработана вычислительная программа определения коэффи циентов разложения решения дифференциального решения по сис теме кусочно-линейных функций.
3.С использованием разработанных программ определены ко эффициенты и построены приближённые решения дифференциаль ного уравнения для 2, 4, 8, 16, 32 и 64 сегментов постоянной длины (см. рис. 3.8).
4.Для указанных последовательностей разложений определены
оценки 82™погрешности приближённых решений (см. табл. 3.2) для различного числа т сегментов.
5. Показано, что с уменьшением длины h сегментов погрешно сти приближённых решений нестационарного дифференциального уравнения, полученных на основе неявной разностной схемы, опре деляемые чебышёвской нормой, уменьшаются (см. рис. 3.9), при этом погрешность аппроксимации имеет порядок 3/2 относительно длины сегментов (шага интегрирования).
6. Выполненное исследование показывает, что последовательно сти приближённых решений дифференциального уравнения, полу ченных методом Галёркина на основе неявной разностной схемы при аппроксимации кусочно-линейными функциями, сходится равно мерно на отрезке [0, я].
7. Для численного решения на компьютере с процессором Intel® Pentium® 4 (тактовая частота 2,2 ГГц, объем оперативной памяти 512 Мбайт) дифференциального уравнения методом Галёркина на основе кусочно-линейных функций на разностной сетке, содер жащей т = 64 сегмента, и шагом по времени т = 15 с при использо вании неявной разностной схемы требуется 0,3998 с (см. рис. 3.10).
3.3. Разностная схема Кранка - Николсон
Задание. Методом Галёркина с использованием кусочно-ли нейных пробных функций и схемы Кранка - Николсон построить на отрезке /е [ 0 ,3600] приближённое решение одномерного диффе
ренциального уравнения |
нестационарной теплопроводности |
||
cpf(t,x) = [\T'(t,x)\ и - sinJC |
с |
начальным условием |
T(t,JC) ^ =Г(х) |
и граничными условиями |
T(t,x)\x_Q=T0e~0f00]t |
XT'(t,x)\^ = |
Сформировать систему линейных алгебраи-
ческих уравнений относительно коэффициентов разложения иско мого решения по заданнной системе пробных функций; разрабо тать вычислительную программу для определения коэффициентов разложения решения дифференциального уравнения по заданнной системе пробных функций для 2, 4, 8, 64 сегментов постоянной длины; при известном точном решении определить погрешность приближённых решений для указанной последовательности сег ментов; исследовать зависимость погрешности искомого решения от длины h сегментов; исследовать сходимость процесса аппрок симации; оценить быстродействие вычислительной программы. При выполнении расчётов принять: с = 460 Дж/кг •град, р = 7800 кг/м3, Л = 70 Вт/м • град, Wo = 1000 Вт/м3, а = 30 Вт/м • град, Т(х) = Т°, Т° = 100°, Too = 20°
Разрешающие соотношения
Построение разрешающих соотношений метода Галёркина для одномерного дифференциального уравнения нестационарной тепло проводности с использованием кусочно-линейных пробных функций приведено в подразд. 3.1.1. Для интегрирования полученной системы обыкновенных дифференциальных уравнений (3.17) используется раз ностный аналог
где т - шаг интегрирования по времени, { г} = {г(/ + т)}, {Г}={г(/)}.
Удобно полученную разностную схему записать в виде
или в компонентной форме
Для двух соседних сегментов |
и [JC,,JC/+1] приведённая сис |
тема уравнений записывается в форме
07)_,+ 2cph
=07;,,+
02).1+ / |
£ P » . * l ^ + f i 2 » + i V |
|
h ) ‘ { 3 |
о I cos |
sinx. -smjc: |
L I - Т0/-1, |
- - - - -;-------- |
cosx, -T qt
TM =
sinxI+. -smx:
o| cosx,------- ^ ------ L |_T7/>
=
2cph TX |
sm JC/+1- sin JC, |
= o r , - , ^ + ^ V f ^ - ^ k + ^ |
-co s*/+1 -T qM |
l 3 ' A |
|
Складывая второе и третье уравнения этой системы и учиты вая условие теплового баланса #; +<7/ = 0 , из этой системы урав
нений можно исключить неизвестные величины внутренних тепловых потоков между соседними сегментами и [хпхм ],
что снижает размерность системы линейных алгебраических урав нений:
+TW0( COSXW - SmXi~ SmX'-')-TqU,
Ф ^ ) t l + 2 ^ h +
T M ? ' f TM =
(3.23)
-xWr sin x:/+1- 2sin xt + sin JtM
0Tt_
V |
3 h г Л 3 |
h |
|
2cph |
TX |
- M |
^ T M |
TJ+i + |
|
||
, SinJC. ., -SinJC. |
\-xqM. |
|
+*Щ ------- |
----------- cosx,+, |
Аналогичные преобразования выполняются для всех остальных уравнений этой системы. В результате система линейных алгебраи ческих уравнений для определения нестационарного температурного поля всего стержня принимает вид
07Q+07j +0Т2+ |
+ |
= |
^ sin(;r-/z)
- * Q L
h
Для учёта граничного условия первого рода 71(^*)[с_0=Т°е~°'ои
на левом торце стержня следует первое уравнение приведённой сис
темы заменить уравнением Т0 =т°е~°,ои
Для включения в систему уравнений граничного условия третьего
рода ХГ((,х)\х=п = - а [г (/,х )|г=я - Г . ] на правом |
конце |
стержня |
ис- |
пользуется соотношение Q1 = а[^7’(/,лг)|л.=л. П |
о с |
л е д |
|
нее уравнение полученной системы |
|
|
|
cph |
x l \ |
f2cph |
xX\ |
( |
sin^TU-A)^ |
||
|
|
|
|
Tm+xW0 |
1------i------}- |
||
~ +j r j Tm-,+ l ~ r ~h / |
\ |
и |
) |
||||
" |
|||||||
преобразуется к виду |
|
|
|
|
|
||
|
|
cph |
xX)~ |
flcph |
тХ Ь |
|
|
|
|
т " т / - и + 1т " |
~ h ) m |
|
|||
cph xX |
fc _ + |
2cph |
TA. Tm+?W0 1- |
sin(jt-/j) |
-ат(гт -Г_) |
||
~ T +~h |
|
3 |
~h |
|
|
|
|
ИЛИ
|
срА |
1+l „ |
+ 2 a * + * V |
. - |
|
\T. |
|||
|
T ~ |
|
|
|
cpA TX |
2cpA |
xA. |
sin(^-A )> |
|
T ~ + T |
|
T |
1- |
+ QI7L. |
|
|
|
Окончательно система линейных алгебраических уравнений для определения температурного поля всего стержня записывается в форме
lT0+OTt +OT2+ |
- .a~°'0U |
+0Tm=T0e |
+ 0Tm=
- TW0sin2h-2sin/j |
|
|
|
|||
o' |
|
|
|
|
|
|
|
|
|
|
|
|
♦ * - |
= f a |
* |
+2f2£E*.^'|7.i + f £ e * + ^ V , - |
||||
3 |
h ) |
' |
\ |
3 |
h У 2^У |
Ъ ^ h ) y |
-zW0sin ЗА - 2sin 2A + sin A |
|
(3.24) |
||||
0To+0T,+ ( cph |
zX |
T,+ |
+ 0Г |
= |
V3
-( ^ ♦ т М ¥ - т М ? +т>-‘-
-zW( sin 4A - 2sin 3A +sin 2A |
|
|
||
|
A |
’ |
|
|
0Г0+07;+0Г2+ |
+|ат + ^ |
+ у |Г „ = |
|
|
|
|
|
^ |
sin(T[-A) |
f + f ) r - |
' + i ^ r ~ |
~T t |
\Tm+xWo |
+ axTM |
h |
Исключённые из системы первое и последнее уравнения в даль нейшем, после вычисления узловых коэффициентов 7/, могут быть использованы для определения тепловых потоков Q0 и &
Для оценки устойчивости полученных разрешающих соотноше ний используется принцип максимума. Рассматривается второе урав нение системы (3.23):
срА |
тА |
Т,-1+2 |
2£P*+iV. +f£P*.* k , j£6* +*' |
|||||||||
|
|
|
|
|
|
|
|
V |
3 |
|
|
|
+2f |
^ |
- |
л\ |
/ |
£P^ + |
A ) |
'+l |
t |
sin*,+i —2sinJC, + sin*f_, |
|||
^ 3 |
|
A |
|
. |
3 |
° |
|
A |
|
|||
Условием устойчивости по начальным данным является соот |
||||||||||||
ношение |
|
|
|
|
|
|
|
|
|
|
|
|
|
2cph |
хХ >2 cph |
тА +2 cph |
хХ + 2 2срА |
тА |
|||||||
|
|
3 |
+ А |
3 ~~И |
|
3 + А |
3 |
~~И |
||||
|
|
|
|
|
££>A> срА |
тА |
2срА _ тА |
|
|
|||
|
|
|
|
|
3 |
"1 |
|
Т |
~1 |
Т |
|
|
|
|
cph |
2срА |
тА. > срА _ тА > 2срА |
тА. срА |
|||||||
|
|
~3 |
|
|
3 |
А |
3 |
|
А |
3 |
А |
|
|
|
|
|
2срА |
тА ^ тА ^ 2срА |
2срА |
тА |
(3.25) |
||||
|
|
|
|
|
3 |
А " |
А “ 3 |
3 |
А |
|||
|
|
|
|
|
|
|||||||
Первоначально рассматриваеся левая часть неравенства (3.25): |
||||||||||||
|
|
|
|
|
-ЗтА < 2срА2- ЗтА< ЗтА, |
|
|
|||||
|
|
|
|
|
|
О < cph2 < ЗАт. |
|
(3.26) |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Далее рассматриваеся правая часть неравенства (3.25): |
||||||||||||
|
|
|
|
|
|
2срА |
тА ^ 2срА |
тА |
|
|
||
|
|
|
|
|
|
~~3 |
h |
_ _ з |
Т ’ |
|
|
|
|
|
|
ЗтА2срА2< 2срА2- ЗтА < 2срА2- ЗтА, |
|
||||||||
|
|
|
|
|
|
ЗтА< 2срА2 |
|
|
^3 27) |
|||
Сравнение неравенств (3.26) и (3.27) приводит к условию ус |
||||||||||||
тойчивости |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
срА2< ЗАт < 2срА2 |
|
|
||||
или |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
£Е^1<Т<3£Е^1 |
|
|
(3.28) |
|||
|
|
|
|
|
|
ЗА |
|
|
ЗА |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Алгоритм решения
Ниже приведён фрагмент программы на языке Си, реализующей процедуру построения приближённого решения дифференциального уравнения стационарной теплопроводности на основе кусочно-линей ных пробных функций с использованием схемы Кранка - Николсон интегрирования по времени.
Программа 3.3
// Задача стационарной теплопроводности. Схема Кранка - Николсон
// |
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 = 7 0 .0, N=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]=x0+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.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;