1329
.pdfном интервале при i = N определяется из граничных условий в этой точке. С одной стороны,
U N = χ2U N −1 + µN ,
а с другой, по выражению (3.35), –
U N −1 = αNU N + βN .
Из этой системы находится значение функции на последнем интервале разбиения пространственной координаты:
U N = |
µ |
2 |
+ χ2βN |
. |
(3.42) |
||
1 − αN χ |
2 |
||||||
|
|
|
Зная эту величину и используя выражение (3.35), можно рассчитать значения искомой функции на остальных интервалах разбиения i = N −1, N − 2, ..., 1 (обратный ход).
Используя этот метод, необходимо выполнить определённые условия, обеспечивающие устойчивость вычислительного процесса:
первое условие
|
C i |
|
≥ |
|
Ai |
|
+ |
|
Bi |
|
, i =1, 2, ..., N −1, |
(3.43) |
|
|
|
|
|
|
причём строгое неравенство должно выполняться хотя бы в одной точке;
второе условие
χ1,2 ≤ 1 , |
|
χ1 |
|
+ |
|
χ2 |
|
< 2 . |
(3.44) |
|
|
|
|
При выполнении этих условий знаменатель выражений (3.41) всегда больше числителя и величина коэффициентов αi оказывается всегда меньше единицы. Поэтому возникшие в процессе расчёта ошибки округления не приводят к их возрастанию и накоплению.
Достоинством метода является минимальное число математических операций, необходимых на его реализацию и, самое главное, линейная зависимость числа операций от числа алгебраических уравнений (порядка 10 операций). Такие методы принято называть экономичными [24]. Это обстоятельство делает метод прогонки весьма популярным для решения уравнений математической физики.
61
Помимо основного варианта метода прогонки разработаны разновидности, применяемые для решения тех же краевых задач, что
идля основного варианта. К ним относятся метод обратной прогонки
иметод встречных прогонок.
Как следует из названия, метод обратной прогонки отличается тем, что вычисление прогоночных коэффициентов η i и ς i произво-
дится в обратной последовательности, начиная с N-интервала для N −1, N − 2, ..., 2,1, с использованием выражения (3.35), а вычисле-
ние функции в прямой последовательности i =1, 2, ..., N − 2, N −1:
U i +1 = ηiU i + ς i , i =1, 2, ..., N −1 . |
(3.45) |
Метод встречных прогонок применяется в том случае, если необходимо найти решение в одной из точек исследуемой области. Для этого, исходя из граничных условий при i = 0 , рассчитывают прого-
ночные коэффициенты αi и βi , до исследуемой точки. Затем рассчитываются прогоночные коэффициенты ηi и ς i , исходя из граничных
условий на второй границе при i = N . Записываются выражения искомой величины в исследуемой точке:
U |
i = |
i 1 I 1 + β |
i+1 |
; |
i 1 = η |
iU |
i + ς |
i |
. |
(3.46) |
|
α + U + |
|
U + |
|
|
|
Совместное решение этой системы позволяет определить значение искомой функции в точках i и i +1 . При необходимости значения функции в других точках исследуемой области рассчитываются по любому из приведённых выражений (3.46). Для реализации метода здесь и далее использован пакет MATLAB [29].
Пример 3.1. Решение краевой задачи методом прогонки. На ин-
тервале [0,1] решим краевую задачу методом прогонки:
Y ′′ − 2 XY ′ − 2Y = −4 X ; Y (0) − Y ′(0) = 0; Y (1) = 1 + e = 3, 71828,
и сравним решение, полученное численным методом, с аналитическим решением [28]
Y = X + exp (х2 ) .
62
Для решения задачи исследуемую область разбиваем на N =10 интервалов величиной
h x =1 N =110 = 0,1.
Дифференциальные операторы уравнения заменяем конечноразностными выражениями:
Yi +1 − 2Yi + Yi −1 |
− 2 X |
|
Yi+1 − Yi−1 |
− 2Y |
= −4 X |
|
. |
h2 |
i 2h |
|
|||||
|
i |
|
i |
|
|||
x |
|
|
x |
|
|
|
|
Преобразуя эти выражения, получим систему трёхчленных алгебраических уравнений для каждого из интервалов разбиения пространственной координаты:
|
|
|
AiYi−1 − CiYi + BiYi+1 = −Fi , |
|
|
||||||||||
с коэффициентами |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Ai =1+ Xi hx ; |
Bi =1− Xi hx ; Ci |
= 2 + 2hx2 , |
i =1, 2, ..., N − 2, N −1, N. |
||||||||||||
Краевые условия аппроксимированы следующим образом: |
|||||||||||||||
|
Y0 − (Y1 − Y0 ) / hx = 0 ; |
YN = 3, 71828 . |
|
|
|||||||||||
Отсюда |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Y0 = |
|
Y1 |
; |
χ1 = |
|
|
1 |
|
; |
µ1 = 0 . |
|
|
||
|
1 + hx |
|
|
+ hx |
|
|
|||||||||
|
|
|
|
1 |
|
|
|
|
|
||||||
Прогоночные коэффициенты |
|
|
|
|
|
|
|
||||||||
α 1 = χ1 = |
1 |
; |
|
β1 = 0 ; α |
i+1 = |
|
Βi |
|
|
; βi +1 = |
F i + βi Ai |
; |
|||
|
|
C i − α |
|
|
C i − α i Ai |
||||||||||
|
1 + hx |
|
|
|
|
|
i Ai |
|
i =1, 2, ..., N −1 .
Записываем значение искомой функции на каждом интервале разбиения пространственной координаты
Y i = α i +1Y i +1 + β i +1 ; i = N −1, N − 2, ..., 2,1.
63
Программа решения краевой задачи:
n=10; hx=1./n; for j=1:n
x(j)=hx*j; a(j)=1.+x(j)*hx; b(j)=1.-x(j)*hx; c(j)=2.+2.*hx^2; f(j)=4.*x(j)*hx^2; end
alf(2)=1./(1.+hx); bet(2)=0.; for j=2: n
r1=c(j)-a(j)*alf(j); alf(j+1)=b(j)/r1; bet(j+1)=(a(j)*bet(j)+f(j))/r1; end
y(n+1)=3.71828; for j=n:-1:1
y(j)=alf(j+1)*y(j+1)+bet(j+1); end
for j=1:n+1
x(j)=hx*(j-1); x1=x(j)^2; x3=exp(x1); xx(j)=x(j)+x3; end
disp(y); disp(xx);
Результаты расчета приведены в табл. 3.1, 3.2.
Таблица 3 . 1
Коэффициенты системы трёхчленных алгебраических уравнений в зависимости от пространственной координаты
x |
Ai |
Bi |
C i |
F i |
|
|
|
|
|
0,10000 |
1,0100 |
0,9900 |
2,0200 |
0,0040 |
0,20000 |
1,0200 |
0,9900 |
2,0200 |
0,0080 |
0,30000 |
1,0300 |
0,9700 |
2,0200 |
0,0120 |
0,40000 |
1,0400 |
0,9600 |
2,0200 |
0,0160 |
0,50000 |
1,0500 |
0,9500 |
2,0200 |
0,0200 |
0,60000 |
1,0600 |
0,9400 |
2,0200 |
0,0240 |
0,70000 |
1,0700 |
0,9300 |
2,0200 |
0,0280 |
0,80000 |
1,0800 |
0,9200 |
2,0200 |
0,0320 |
0,90000 |
1,0900 |
0,9100 |
2,0200 |
0,0360 |
1,00000 |
1,1000 |
0,9000 |
2,0200 |
0,0360 |
64
Таблица 3 . 2
Прогоночные коэффициенты, значения искомой функции и погрешность численного решения
x |
α i |
β i |
Численное |
Аналитич. |
Погрешность |
|
решение |
решение |
|||||
|
|
|
|
|||
0,10000 |
0,9091 |
0 |
1,1512 |
1,1100 |
0,03712 |
|
0,20000 |
0,8985 |
0,0036 |
1,2772 |
1,2408 |
0,02933 |
|
0,30000 |
0,8881 |
0,0106 |
1,4262 |
1,3941 |
0,0230 |
|
0,40000 |
0,8776 |
0,0207 |
1,6015 |
1,5735 |
0,0178 |
|
0,50000 |
0,8670 |
0,0339 |
1,8081 |
1,7840 |
0,01351 |
|
0,60000 |
0,8561 |
0,0501 |
2,0534 |
2,0333 |
0,009885 |
|
0,70000 |
0,8449 |
0,0693 |
2,3482 |
2,3323 |
0,00681 |
|
0,80000 |
0,8334 |
0,0916 |
2,7078 |
2,6965 |
0,00419 |
|
0,90000 |
0,8215 |
0,1169 |
3,1540 |
3,1479 |
0,001935 |
|
1,00000 |
0,8092 |
0,1453 |
3,7183 |
3,7183 |
0 |
3.2.2. Циклическая прогонка
Большинство электрических машин имеют замкнутый магнитопровод. Исследование магнитных полей таких машин производится в цилиндрической системе координат. Для задач, решаемых в цилиндрической системе координат, широко используется вариант прогонки, называемый циклическим [27].
Характерной особенностью таких задач являются условия периодичности для коэффициентов уравнений и решения задачи:
F i = F i + N ; Ai = Ai + N ; Bi = Bi + N ; C i = C i + N ; |
|
Y i = Y i + N , |
(3.47) |
а также для них справедливы периодические краевые условия в точках сопряжения
Y0 = YN |
; |
∂ Y0 |
= |
∂ |
YN |
. |
(3.48) |
|
∂ x |
|
∂ |
|
|||||
|
|
|
|
x |
|
|||
Поэтому решение краевой |
задачи |
достаточно |
найти для точек |
i = 0,1, 2, ..., N −1 и сформулировать её в виде:
65
A0Y N −1 − C 0Y 0 + B0Y 1 = −F 0, i = 0; |
|
AiY i −1 − C iY i + BiY i+1 = −F i, 1 ≤ i≤ N− 1; |
(3.49) |
|
|
Y N = U 0. |
|
Будем искать решение как сумму составляющих
Y i = U i + Y N V i , |
0 ≤ i ≤ N , |
(3.50) |
где Ui – решение неоднородной задачи с однородными краевыми условиями:
AU |
− C U |
+ B U |
= −F , 1 ≤ i≤ N− 1; |
(3.51) |
i i −1 |
i i |
i i+1 |
i |
|
U 0 = 0; U N = 0;
Vi – решение однородной задачи с неоднородными краевыми условиями:
AV |
− C V + B V |
= 0, 1 ≤ i≤ N− 1; |
(3.52) |
i i −1 |
i i i i+1 |
|
|
V 0 =1; V N =1.
В полном соответствии систем (3.51) и (3.52) краевой задаче (3.49) можно убедиться, умножив (3.52) на YN и сложив с (3.51).
Каждая из краевых задач (3.51) и (3.52) решается методом прогонки, описанным выше:
U |
i |
= |
|
i 1 i 1 |
+ β |
i+1 |
; |
|
V |
i = |
i 1 i 1 + γ |
i+1 |
, |
||||||||||
|
|
|
α + U |
+ |
|
|
|
|
|
|
α + V + |
|
|||||||||||
|
|
|
|
αi +1 = |
|
|
|
Bi |
|
|
|
; βi +1 = |
F i + Aiβi |
; |
|||||||||
|
|
|
|
|
C i − αi Ai |
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
C i − αi Ai |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i =1, 2, ..., N −1, N |
||||||
|
|
|
|
β |
N +1 |
+ |
|
α |
N 1 |
|
|
1 |
|
|
|
|
|
|
|
|
|
||
Y N = |
|
|
|
|
|
+ U |
|
|
|
; Yi = Ui + YNVi , 0 ≤ |
|||||||||||||
1 − γ |
N |
=1 |
− |
α |
N |
|
1 1 |
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
= V |
|
|
|
|
|
|
|
|
|
i = N −1, N − 2, ..., 1 ;
γ i+1 |
= |
Aiγ |
i |
|
, |
C i − α |
|
|
|||
|
|
|
i Ai |
||
; |
|
|
|
|
|
i≤ |
N , i =1, 2, ... N −1. |
Для реализации циклической прогонки необходимо затратить 14N–8 математических операций на один интервал разбиения пространственной координаты, т.е. этот метод также является экономичным. При соблюдении условий устойчивости прогонки накопления ошибки не происходит, счёт является устойчивым.
66
Пример 3.2. Решение периодической задачи методом цикличе-
ской прогонки. В области [0, 2π ] решим краевую задачу
∂2Y − 0, 446Y = − f (x)
∂x2
спериодическими краевыми условиями
|
|
∂ Y |
∂ |
Y |
|||
Y (0) |
= Y (2π) = 0, |
|
|
= |
|
|
. |
|
∂ |
|
|||||
|
|
∂ x 0 |
|
x 2π |
Правая часть дифференциального уравнения является функцией пространственной координаты и для 24 интервалов имеет следующие значения:
f 1… f 2= 0; f 3… f 10= 0,137; |
f 11… |
f 14= 0; |
f 15… f 22= − 0,137; f 23… |
f 24= |
0. |
Исследуемая область разбивается на N = 24 пространственных интервалов величиной
h x = 2π N = 0, 2618 .
Дифференциальный оператор аппроксимируетcя конечно-раз- ностным выражением со вторым порядком точности и подставляется в уравнение
Y i +1−2Y i +Y i −1 − 0, 446Yi = − fi .
2
hx
Преобразуя это выражение, получаем систему трёхчленных алгебраических уравнений для всех интервалов разбиения пространственной координаты:
Ai Y i −1 − C i Y i + Bi Y i +1 = − F i , |
|
i =1, 2, ..., N −1, N , |
|
||||||||
где Ai = 1; Bi =1; Fi = f i h2x ; |
Ci |
= 2 + 0, 446hx2 ; Y0 = YN . |
|
|
|
||||||
α1 = 0; β1 = 0; γ1 =1; |
αi +1 |
= |
|
Bi |
|
|
; βi+1 = |
Fi + Ai |
βi |
|
; |
Ci |
− Ai |
αi |
|
Ci − Ai |
αi |
||||||
|
|
|
|
|
|
67
γi+1 = |
|
Ai γi |
|
|
, i =1, 2, ..., N , |
U N −1 = βN ; |
V N −1 = αN + γN ; |
|||||||||||||||
Ci − Ai αi |
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
U |
i |
= |
α |
i +1 |
i +1 + β |
i+1 |
; |
V = α |
V + |
|
γ |
i +1 |
, |
i = N − 2, N − 3, ..., 2,1; |
||||||||
|
|
U |
|
|
|
i |
i +1 i+1 |
|
|
|
|
|
|
|
||||||||
|
|
|
|
= |
β N +1 + α N +1U1 |
Yi = Ui |
+ YNVi , |
i =1, 2, ..., N −1; |
||||||||||||||
|
|
YN |
|
|
|
|
|
|
, |
|||||||||||||
|
|
1− γ |
N +1 |
− α |
V |
|||||||||||||||||
|
|
|
|
|
|
|
|
N +1 1 |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
= Y1 |
; Y0 = YN ; |
|
∂ Y |
= |
Y |
− Y |
||||||||
|
|
|
|
|
YN +1 |
|
|
|
|
i +1 |
i −1 |
. |
||||||||||
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
∂ x i |
|
2hx |
По полученным данным построены графические зависимости A( x) = Y ( x) и B(x) = Y ′(x) , которые описывают распределение век-
торного потенциала и магнитной индукции по длине расточки стато-
ра (рис. 3.2).
Рис. 3.2. Пространственное распределение векторного потенциала (a) и магнитной индукции (б)
Программа решения краевой задачи:
n=24; dx=2.*pi/n;
a(1:n+1)=1.; b(1: n+1)=1.; c(1: n+1)=a(1: n+1)+b(1: n+1)+0.446*dx^2; f(1:n+1)=0; r1=0.137*dx^2; f(3:10)=r1; f(15:22)=-r1; ss(1:n)=0.;
alf(2)=0.; bet(2)=0.; gam(2)=1.;
disp(a); disp(b); disp(c); disp(f); disp(alf); disp(bet); disp(gam);
68
for j=1:n nn(j)=j;
end
for j=2:n+1
r=c(j)-a(j)*alf(j); alf(j+1)=b(j)/r; bet(j+1)=(f(j)+a(j)*bet(j))/r; gam(j+1)=a(j)*gam(j)/r;
end
u(n)=bet(n+1); v(n)=alf(n+1)+gam(n+1); for j=n-1:-1:2
u(j)=alf(j+1)*u(j+1)+bet(j+1); v(j)=alf(j+1)*v(j+1)+gam(j+1); end
r2=bet(n+2)+alf(n+2)*u(2); r3=1.-alf(n+2)*v(2)-gam(n+2); y(n+1)=r2/r3; y(1)=y(n+1);
for j=2:n y(j)=u(j)+y(n+1)*v(j);
end
bl(1)=(y(2)-y(n))/(2.*dx); bl(n)=(y(1)-y(n-1))/(2.*dx); for j=2:n-1
bl(j)=(y(j+1)-y(j-1))/(2.*dx); end
n1(nn)=nn; n2(nn)=ss; n3(nn)=bl(1: n); n4(nn)=y(1: n); disp(y); disp(bl);
plot(n1,n2,n1,n3,n1,n4)
Результаты решения задачи приведены в табл. 3.3, 3.4.
Таблица 3 . 3
Коэффициенты системы алгебраических уравнений и прогоночные коэффициенты
i |
Ai |
Bi |
C i |
α i |
β i |
γ i |
1 |
1,0000 |
1,0000 |
2,0357 |
0.0000 |
0,0000 |
0,0000 |
2 |
1,0000 |
1,0000 |
2,0357 |
0.0000 |
0,0000 |
1,0000 |
3 |
1,0000 |
1,0000 |
2,0357 |
0,4925 |
0,0000 |
0,4925 |
4 |
1,0000 |
1,0000 |
2,0357 |
0,6502 |
0,0061 |
0,3202 |
5 |
1,0000 |
1,0000 |
2,0357 |
0,7244 |
0,0112 |
0,2319 |
6 |
1,0000 |
1,0000 |
2,0357 |
0,7656 |
0,0158 |
0,1776 |
7 |
1,0000 |
1,0000 |
2,0357 |
0,7905 |
0,0199 |
0,1404 |
69
Окончание табл. 3 . 3
i |
Ai |
Bi |
C i |
α i |
β i |
γ i |
8 |
1,0000 |
1,0000 |
2,0357 |
0,8064 |
0,0199 |
0,1132 |
9 |
1,0000 |
1,0000 |
2,0357 |
0,8169 |
0,0270 |
0,0925 |
10 |
1,0000 |
1,0000 |
2,0357 |
0,8240 |
0,0300 |
0,0762 |
11 |
1,0000 |
1,0000 |
2,0357 |
0,8288 |
0,0326 |
0,0632 |
12 |
1,0000 |
1,0000 |
2,0357 |
0,8321 |
0,0271 |
0,0525 |
13 |
1,0000 |
1,0000 |
2,0357 |
0,8344 |
0,0226 |
0,0438 |
14 |
1,0000 |
1,0000 |
2,0357 |
0,8360 |
0,0189 |
0,0367 |
15 |
1,0000 |
1,0000 |
2,0357 |
0,8371 |
0,0158 |
0,0307 |
16 |
1,0000 |
1,0000 |
2,0357 |
0,8379 |
0,0054 |
0,0257 |
17 |
1,0000 |
1,0000 |
2,0357 |
0,8385 |
–0,0033 |
0,0216 |
18 |
1,0000 |
1,0000 |
2,0357 |
0,8389 |
–0,0107 |
0,0181 |
19 |
1,0000 |
1,0000 |
2,0357 |
0,8391 |
–0,0168 |
0,0152 |
20 |
1,0000 |
1,0000 |
2,0357 |
0,8393 |
–0,0220 |
0,0127 |
21 |
1,0000 |
1,0000 |
2,0357 |
0,8395 |
–0,0264 |
0,0107 |
22 |
1,0000 |
1,0000 |
2,0357 |
0,8395 |
–0,0300 |
0,0090 |
23 |
1,0000 |
1,0000 |
2,0357 |
0,8395 |
–0,0331 |
0,0075 |
24 |
1,0000 |
1,0000 |
2,0357 |
|
|
|
Таблица 3 . 4
Коэффициенты U(J), V(J) и результаты решения краевой задачи Y(j) и BL(j)
i |
Ui |
Vi |
Yi |
BLi |
1 |
0 |
0 |
0,0126 |
0,0973 |
2 |
0,0276 |
0,8450 |
0,0383 |
0,1003 |
3 |
0,0561 |
0,7159 |
0,0652 |
0,0884 |
4 |
0,0769 |
0,6086 |
0,0846 |
0,0613 |
5 |
0,0907 |
0,5199 |
0,0973 |
0,0360 |
6 |
0,0978 |
0,4471 |
0,1035 |
0,0119 |
7 |
0,0986 |
0,3880 |
0,1035 |
–0,0119 |
8 |
0,0929 |
0,3408 |
0,0973 |
–0,0360 |
9 |
0,0808 |
0,3039 |
0,0846 |
–0,0613 |
10 |
0,0617 |
0,2764 |
0,0652 |
–0,0884 |
11 |
0,0351 |
0,2573 |
0,0383 |
–0,1003 |
70