- •Выполнил:
- •Алгоритм решения
- •Реализация алгоритма
- •Z ai |ф*ФА = /ф* cosxdx’ к = 0,4,
- •Разрешающие соотношения
- •Алгоритм решения
- •Результаты расчётов
- •Разрешающие соотношения
- •Алгоритм решения
- •Реализация алгоритма
- •2.1. Аппроксимация решения кусочно-линейными функциями
- •Алгоритм решения
- •Результаты расчетов
- •Разрешающие соотношения
- •Алгоритм решения
- •Реализация алгоритма
- •Разрешающие соотношения
- •Алгоритм решения
- •Реализация алгоритма
- •3.1. Явная разностная схема
- •Алгоритм решения
- •Реализация алгоритма
- •Разрешающие соотношения
- •Программа 3.2
- •Реализация алгоритма
- •Алгоритм решения
- •Реализация алгоритма
Алгоритм решения
Ниже приведён фрагмент программы на языке Си, реализующей процедуру построения приближённого решения дифференциального уравнения с использованием кусочно-линейных пробных функций.
|
|
|
|
|
|
|
|
Программа 2.1 |
/ / |
Стационарная задача |
теплопроводности |
||||||
// |
Ne |
число |
сегментов |
|
|
|||
// |
Nk |
число |
узлов |
|
|
|
||
// |
locale |
массив |
коэффициентов системы уравнений для сегмента |
|||||
// |
localF |
массив |
правых частей системы уравнений для сегмента |
|||||
// |
globalC |
массив |
коэффициентов системы уравнений для объекта |
|||||
// |
globalF |
массив |
коэффициентов системы уравнений для объекта |
|||||
/ / |
хО |
массив |
координат узлов |
|
||||
// |
начальная |
точка |
|
|
||||
/ / |
х1 |
конечная |
точка |
|
|
|||
// |
h |
длина |
сегмента |
|
|
|||
/ / |
W0 |
амплитуда |
мощности источников |
|||||
/ / |
L |
коэффициент |
теплопроводности |
|||||
// |
ТО |
температура |
на |
левом торце |
(хО) |
|||
// |
Те |
температура |
среды |
|
||||
/ / |
А |
коэффициент |
теплоотдачи |
|
||||
#define |
Ne |
64 |
|
|
|
|
|
|
void main(void) |
|
|
|
|
||||
{ double |
globalC[Ne+1] [Ne+1], globalF[Ne+1], x[Ne+l] ; |
|||||||
|
double |
locale[2][2], |
localF[2], |
x0=0., xl=M_PI, h=(xl- |
||||
xO)/Ne; |
|
|
|
|
|
|
|
|
|
double L=70.0, N=1000.0, T0=100.0, Te=20.0, A=30.0; |
|||||||
|
int i, |
j, |
k, |
Nk=Ne+l; |
|
|
//определение координат и номеров узлов каждого сегмента for(k=0; k<Nk; k++) x[k]=x0+h*k;
//инициализация массивов коэффициентов и правых частей
//системы уравнений
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]=L/h; locale [0] [1]=-L/h; l ocale[1] [0]=-L/h; l ocale[1][1]=L/h;
localF [0] =W0* (cos (x[k] )- (sin(x[k+l] )-sin(x[k])) /h) ; localF [1] =W0* ((sin(x[k+l] )-sin(x[k] ))/h-cos (x[k+l] ));
//формирование матриц коэффициентов и правых частей для объекта
globalC [к] [к]+=1оса1С [0] [0] ; globalC[к] [к+1]+=1оса1С[0] [1] ; globalC [к+1] [к]+=1оса1С[1] [0] ;
globalC [к+1] [к+1]+=1оса1С [1] [1] ;______________________________
71 |
X |
|
|
я |
л |
|
|
^k%^\dx = - =-89,1268, |
|Х(р'ср'зdx = Jtp'cp\dx = 0, |
|
|||||
0 |
h |
|
|
0 |
|
0 |
|
W0Jsinx<pxdx = -W0sin2/>-2siny> = 52,7393; |
|
||||||
|
о |
|
|
h |
|
|
|
П |
|
|
|
Я |
л |
|
|
jA.(p2<po<& = 0, |
|X(p'2<P|d£c = —= -89,1268, |
|
|||||
jM<p'2fd x = ^ |
= \78,2535, |
[Хф'2ф;<& = y = -89,1268, |
|
||||
о |
h |
|
|
о |
|
h |
|
’fi / / , n |
... "r . |
. |
sin3/»-2sin2/H-sin/j |
„ |
|||
J Лф2ф4<& = 0, |
fF0J sin хф2Л = -Ж0------------ ------------- = 74,5847; |
||||||
'зФоdx = |А.фзф'£*с = 0 , |
|Хфзф'2<& = - |
= -89,1268, |
|
||||
^ |
О*1 |
|
|
^ |
|
\ |
|
/Мфз )2^ |
= у |
= 178,2535, |
| Х |
ф » = - = -89,1268, |
|
||
и/"г • |
, |
|
... sin*. - 2sin.r,+sinx, |
|
|
||
W0 Ism^ф3о!г= -JV0----- ----------- |
2-------- - = 52,7393; |
|
|||||
о |
|
|
|
* |
|
|
|
Я |
|
|
|
|
Я |
л |
|
|Хф'ф'йЬг = |Яф'4ф ^ |
= |Я,ф'ф2Л = 0, |
|Я.ф'4фз<& = - = -89,1268, |
ГХ(ф;)2оЬс+ а = - + а = 119,127,
оh
W0Jsinлгфзdx = ^ ( Sm4/7 in3/; - cosЗАj + aT„ =609,9684.
Подстановка полученных значений в (2.17) приводит к системе (табл. 2.1) пяти линейных алгебраических уравнений