- •Выполнил:
- •Алгоритм решения
- •Реализация алгоритма
- •Z ai |ф*ФА = /ф* cosxdx’ к = 0,4,
- •Разрешающие соотношения
- •Алгоритм решения
- •Результаты расчётов
- •Разрешающие соотношения
- •Алгоритм решения
- •Реализация алгоритма
- •2.1. Аппроксимация решения кусочно-линейными функциями
- •Алгоритм решения
- •Результаты расчетов
- •Разрешающие соотношения
- •Алгоритм решения
- •Реализация алгоритма
- •Разрешающие соотношения
- •Алгоритм решения
- •Реализация алгоритма
- •3.1. Явная разностная схема
- •Алгоритм решения
- •Реализация алгоритма
- •Разрешающие соотношения
- •Программа 3.2
- •Реализация алгоритма
- •Алгоритм решения
- •Реализация алгоритма
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 |
2т |
т |
£ ^ ( 0 <P/(JC) - Z 7^(,)(P.W |
||
ле[0,я]. |
|
|
/е[0,61440]
определённые сравнением двух последовательных приближённых решений Тти Т2тдифференциального уравнения (3.5) при различных значениях числа т и 2т сегментов на одном и том же отрезке време ни 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^]. Сформировать систему линейных алгебраиче
ских уравнений относительно коэффициентов разложения искомо го решения по заданнной системе пробных функций; разработать вычислительную программу для определения коэффициентов раз ложения решения дифференциального уравнения по заданнной сис-