Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
С. Д. Алгазин
Препринт № 802
Москва 2006 г.
Аннотация.
The summary.
2
Введение.
В [1] рассматриваются задачи на собственные значения для оператора
Лапласа в произвольной гладкой области с постоянными коэффициентами.
Однако ряд задач математической физики приводит к задачам на собственные
значения для уравнения Лапласа в двусвязной области. В качестве примера
рассмотрим задачу об обтекании кругового цилиндра вязкой жидкостью [2].
Граничные условия в бесконечности сносятся на внешнюю границу кругового
кольца большого радиуса. Для построения дискретизации уравнений Навье-
Стокса в первую очередь требуется построить дискретизацию оператора
Лапласа в кольцевой области. Эта задача рассматривается ниже. Более общая
задача, которая также рассматривается ниже, это задача на собственные
значения для оператора Лапласа в произвольной двусвязной области. Для
построения алгоритма без насыщения требуется вначале построить конформное
отображение кольца на заданную двусвязную область. В приведённом ниже
примере расчёта конформное отображение задаётся аналитической формулой.
Отметим, что для численного построения конформного отображения кольца на
заданную двусвязную область и обратно, имеются надёжные алгоритмы без
насыщения [3,4]. Дискретизация оператора Лапласа в кольце строится на
основании теории h-матрицы [1].
∂u
(1.3) =0
∂n ∂Γi
∂u
(1.4) Au + =0
∂n ∂Γi
здесь функция f(z) либо задана, либо f(z)=[q(z)+λp(z)]u(z), где q(z) и p(z) –
заданные функции, и в этом случае имеем задачу на собственные значения для
оператора Лапласа. В дальнейшем будем считать, что f,A, q и p – гладкие
функции.
Пусть z=ϕ(w), ρ≤ |w|≤ R - конформное отображение кольца на область Г;
тогда в плоскости w формально получаем те же соотношения (1.1)- (1.4), где,
однако, вместо u(z) и f(z) следует писать u(w)=u(z(w)) и |ϕ′(w)|2f(z(w)), а вместо
A - α(w)=A(z(w))|φ′(w)|.
В кольце дискретный Лапласиан записывается h-матрицей [1]:
3
n
2 '
(1.5) H =
N
∑
k =0
Λ k ⊗ hk ,
где штрих у знака суммы означает, что слагаемое при k=0 берётся с
коэффициентом ½, Λk, k=0,1,…,n – матрица размера m × m (m – число
окружностей сетки в кольце, N=2n+1- число точек на каждой окружности).
Вычислить матрицы Λk можно, проведя дискретизацию уравнений Бесселя:
y′′ − q ( x) y = λρ ( x) y,
αy′ + βy x=b = 0,
1
α 1 y′ + β 1 y x=b = 0,α 2 + α 12 ≠ 0.
2
(A-λB)y=0,
Описание параметров.
Требуемые функции-подпрограммы: Q, R.
4
Замечание. Вычисление функций Q и R должно быть оформлено в
соответствии с правилами Фортрана в виде подпрограмм-функций с
идентификаторами Q и R соответственно.
. Формулы численного дифференцирования. Для дискретизации
оператора d/dr применим формулу численного дифференцирования. Заметим,
что как легко понять, удовлетворять краевым условиям в этой формуле нет
необходимости.
b−a a+b 2x − a − b
Пусть x ∈ [a, b], y ∈ [−1,+1]; x = y+ , y= .
2 2 b−a
Выберем на отрезке [a,b] m узлов:
b−a a+b (2ν − 1)π
xν = yν + , yν = cosψ ν , ψ ν = , ν = 1,2,..., m.
2 2 2m
1−
b−a
2x − a − b
Tm ( )
sin mψ ν 2m b − a
Tm′ (...) x = xν = ⋅ , lν ( x) = ,
sinψ ν b − a sin mψ ν 2m
⋅ ⋅ ( x − xν )
sinψ ν b − a
b−a Tm ( y )
x − xν = ( y − yν ) ⇒ lν = .
2 (−1)ν −1
m ( y − yν )
sinψ ν
m m m −1
Tm ( y ) f ( xν )
Pm ( x; f ) = ∑ lν ( x) f ( xν ) =∑ ν −1
= ∑ 'a k( m )Tk ( y ),
ν =1 ν =1 (−1)
m ( y − yν ) k =0
(1.7) sinψ ν
2 m 2 m
a k( m ) = ∑ ν k ν m∑
m ν =1
f ( x )T ( y ) =
ν =1
f ( xν ) cos kψ ν .
где ‘ у знака суммы означает, что слагаемое при k=0 берётся с коэффициентом
½.
Имея интерполяционную формулу (1.7) легко получить формулу для
производной:
5
m −1
d d d k 2
Pm′ ( x; f ) = ∑ 'a k( m ) Tk ( y ), Tk ( y ) = cos k arccos y = sin k arccos y ⋅ ⋅ .
k =0 dx dx dx 1− y b − a
2
b−a a+b
При x = x µ = yµ + , y µ = cosψ µ , µ = 1,2,..., m.
2 2
d sin kψ µ 2
Tk ( y ) = ⋅k .
dx x = xµ sinψ µ b−a
Матрица дифференцирования
4 m −1 sin kψ µ cos kψ ν
Dµν = ∑ sinψ
b − a k =1 µ
(1.8)
m
f ′( x µ ) = ∑ Dµν f ( xν ).
ν =1
6
WRITE (*,*) 'WR'
WRITE (*,2),(WR(I),I=1,N)
WRITE (*,*) 'WI'
WRITE (*,2),(WI(I),I=1,N)
2 FORMAT (1X,5E18.11)
WRITE (NOUT,*) IERR
WRITE (NOUT,*) 'WR'
WRITE (NOUT,*) (WR(I),I=1,N)
WRITE (NOUT,*) 'WI'
WRITE (NOUT,*) (WI(I),I=1,N)
STOP
END
SUBROUTINE LAMDA0 (C0,C,M,AL,AL1,BE,BE1,B1,B2,T,X)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION C0(M,M),C1(M,M),T(M),X(M)
PI=3.141592653589D0
CALL EIGVAL (C0,C1,M,AL,AL1,BE,BE1,B1,B2,T,X)
C1=-C1
CALL DMINV (C1,M,DET,T,X)
CALL DIFAB (C0,M,B1,B2)
DO 1 MU=1,M
PSI=(2.D0*MU-1.D0)*PI/2.D0/M
R=(B2-B1)*COS(PSI)/2.D0+(B1+B2)/2.D0
DO 1 NU=1,M
1 C0(MU,NU)=C0(MU,NU)/R
C0=C1-C0
RETURN
END
SUBROUTINE DIFAB (D,M,A,B)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION D(M,M)
PI=3.141592653589D0
DO 1 MU=1,M
PSIMU=(2.D0*MU-1.D0)*PI/2.D0/M
DO 1 NU=1,M
PSINU=(2.D0*NU-1.D0)*PI/2.D0/M
P=0.D0
DO 2 K=1,M-1
2 P=P+SIN(K*PSIMU)*COS(K*PSINU)/SIN(PSIMU)
1 D(MU,NU)=4.D0*P/M/(B-A)
RETURN
END
REAL*8 FUNCTION Q(X)
IMPLICIT REAL*8 (A-H,O-Z)
Q=0.D0
RETURN
END
REAL*8 FUNCTION R(X)
IMPLICIT REAL*8 (A-H,O-Z)
R=1.D0
RETURN
END
7
SUBROUTINE LAMDA0 (C0,C,M,AL,AL1,BE,BE1,B1,B2,T,X)
10
CALL RASPAK (H,M,NM)
CALL TRANSP (H,NT)
I0=0
DO 1 MU=1,M
PSI=(2.D0*MU-1.D0)*PI/2.D0/M
RO=(B2-B1)*COS(PSI)/2.D0+(B1+B2)/2.D0
DO 1 L=0,N-1
FI=2.D0*L*PI/N
I0=I0+1
WWR=CMPLX(RO*COS(FI),RO*SIN(FI))
ZR=(WWR-ALFA)/(ALFA*WWR-1.D0)
XR(I0)=REAL(ZR)
YR(I0)=AIMAG(ZR)
P=ALFA**2*RO**2-2.D0*ALFA*RO*COS(FI)+1.D0
1 Z(I0)=(ALFA**2-1.D0)**2/P**2
C
WRITE (NOUT,*) 'Z'
WRITE (NOUT,*) (Z(I),I=1,NT)
WRITE (NOUT,*) 'END Z'
DO 3 I=1,NT
DO 3 J=1,NT
3 H(I,J)=H(I,J)/Z(I)
WRITE (NOUT,*) 'H - ', 'Матриица дискретной задачи'
C WRITE (NOUT,*) H
WRITE (NOUT,*) 'END H'
CALL BALANC (NT,NT,H,LOW,IGH,SCALE)
CALL ELMHES (NT,NT,LOW,IGH,H,IANA)
CALL ELTRAN (NT,NT,LOW,IGH,H,IANA,E)
CALL HQR2 (NT,NT,LOW,IGH,H,WR,WI,E,IERR)
CALL BALBAK(NT,NT,LOW,IGH,SCALE,NT,E)
WRITE (*,*) 'IERR =',IERR
WRITE (*,*) 'WR'
WRITE (*,2),(WR(I),I=1,NT)
WRITE (*,*) 'WI'
WRITE (*,2),(WI(I),I=1,NT)
2 FORMAT (1X,5E18.11)
WRITE (NOUT,*) IERR
WRITE (NOUT,*) 'WR'
WRITE (NOUT,*) (WR(I),I=1,NT)
WRITE (NOUT,*) 'WI'
WRITE (NOUT,*) (WI(I),I=1,NT)
C
RMIN=1.D12
IJ=1
I1=1
110 DO 60 I=I1,NT
IF (WR(I).LT.RMIN) THEN
RMIN=WR(I)
IANA(IJ)=I
WI(IJ)=WR(I)
ENDIF
60 CONTINUE
WR(IANA(IJ))=1.D17
RMIN=1.D12
IJ=IJ+1
IF(IJ.LE.NT) GO TO 110
C
WRITE (NOUT,*) 'Eigenvalue'
WRITE(NOUT,12) (WI(I),I=1,NT)
C
11
WRITE (NOUT,*) 'Вывод собственных значений по номеру'
DO 21 K=1,15
WRITE (*,*) 'Inject the number of an eigenvalue?'
READ (*,*) IJ
WRITE (*,*) IJ, WI(IJ)
WRITE (NOUT,*) IJ, WI(IJ)
I2=NT*(IANA(IJ)-1)
DO 22 I=1,NT
I3=I2+I
22 U(I)=E(I3)
CALL NORM1(U,NT)
DO J=1,NT
WRITE (10,13) XR(J),YR(J),U(J)
13 FORMAT(1X,E9.2,1H,,E9.2,1H,,E9.2)
ENDDO
WRITE (NOUT,12) (U(I),I=1,NT)
21 CONTINUE
12 FORMAT (1X,4E18.11)
STOP
END
SUBROUTINE LAMDA0 (C0,C,M,AL,AL1,BE,BE1,B1,B2,T,X)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION C0(M,M),C1(M,M),T(M),X(M)
PI=3.141592653589D0
CALL EIGVAL (C0,C1,M,AL,AL1,BE,BE1,B1,B2,T,X)
C1=-C1
CALL DMINV (C1,M,DET,T,X)
CALL DIFAB (C0,M,B1,B2)
DO 1 MU=1,M
PSI=(2.D0*MU-1.D0)*PI/2.D0/M
R=(B2-B1)*COS(PSI)/2.D0+(B1+B2)/2.D0
DO 1 NU=1,M
1 C0(MU,NU)=C0(MU,NU)/R
C0=C1-C0
RETURN
END
SUBROUTINE DIFAB (D,M,A,B)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION D(M,M)
PI=3.141592653589D0
DO 1 MU=1,M
PSIMU=(2.D0*MU-1.D0)*PI/2.D0/M
DO 1 NU=1,M
PSINU=(2.D0*NU-1.D0)*PI/2.D0/M
P=0.D0
DO 2 K=1,M-1
2 P=P+SIN(K*PSIMU)*COS(K*PSINU)/SIN(PSIMU)
1 D(MU,NU)=4.D0*P/M/(B-A)
RETURN
END
REAL*8 FUNCTION Q(X)
IMPLICIT REAL*8 (A-H,O-Z)
Q=0.D0
RETURN
END
REAL*8 FUNCTION R(X)
IMPLICIT REAL*8 (A-H,O-Z)
R=1.D0
RETURN
END
12
C
SUBROUTINE HMATR2(H,M,N,C0,C,B1,B2)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION H(1),C(M,M),R(300),C0(M,M)
INTEGER P,LX,MX
PI=3.141592653589D0
DO 4 I=1,M
PSI=(2.D0*I-1.D0)*PI/2.D0/M
4 R(I)=(B2-B1)*COS(PSI)/2.D0+(B1+B2)/2.D0
NM=(N+1)/2
DO 20 NU=1,M
DO 20 MU=1,M
20 C(NU,MU)=C0(NU,MU)
I0=0
DO 1 NU=1,M
DO 1 MU=1,M
DO 1 L=1,NM
I0=I0+1
1 H(I0)=C(NU,MU)/N
NM1=NM-1
DO 2 K=1,NM1
10 DO 5 NU=1,M
DO 5 MU=1,M
C(NU,MU)=C0(NU,MU)
IF(NU.EQ.MU) C(NU,MU)=C(NU,MU)+(K/R(NU))**2
5 CONTINUE
12 I0=0
DO 3 NU=1,M
DO 3 MU=1,M
I2=0
DO 3 P=1,NM
I0=I0+1
H(I0)=H(I0)+(2.D0/N)*C(NU,MU)*COS(K*2.D0*PI*I2/N)
3 I2=I2+1
2 CONTINUE
RETURN
END
SUBROUTINE NORM1(Y,N)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION Y(1)
P=0.D0
DO 1 I=1,N
IF (ABS(Y(I)).GT.P) IP=I
IF (ABS(Y(I)).GT.P) P=ABS(Y(I))
1 CONTINUE
P=Y(IP)
DO 2 I=1,N
2 Y(I)=Y(I)/P
RETURN
END
+∞
λ (ε ) ~ ∑ λ k (| log ε | −1 )ε k ,
k =0
N= 5 M= 5
1 6.30384075516804
2 12.5240922198482
3 15.9580110251974
4 22.8614928473457
5 24.1610926979499
6 32.0682184824719
7 43.7446945591614
8 44.6415968019628
9 62.6184858563839
10 83.8491481104204
11 121.068805836460
12 162.573305871365
13 170.933780941740
14 263.383296006460
15 305.427147272978
N= 11 M= 10
1 5.77050661547592
2 14.5686681089652
3 14.6985941074533
4 26.8539395430502
5 26.8940934000276
6 30.6013958851386
7 41.3184064296173
8 43.1082052757943
9 47.9201005203276
10 52.9820506191867
11 57.8680827923321
12 69.0424523885065
18
13 77.2529014654754
14 77.6082138638389
15 89.2746961968013
N= 21 M= 10
1 5.77050732946742
2 14.5684034671894
3 14.6988797083739
4 26.8581200853388
5 26.8941025040953
6 30.6047575432239
7 42.1951609444227
8 42.3913856724706
9 47.8533150055410
10 53.0043515118520
11 60.9338526044798
12 60.9373346675876
13 77.3045028192794
14 77.4658145790727
15 82.6969752385093
N= 31 M= 20
1 5.76449329963725
2 14.5749592609702
3 14.6695662582186
4 26.5377242090849
5 26.5680481284245
6 30.1511120853414
7 41.2022857041910
8 41.3301571565336
9 46.5302787304297
10 50.7321162022981
100 495.102027395843
200 1660.71610392133
300 5164.31766797336
400 16825.2281264273
500 96163.2209909992
N= 41 M= 20
1 5.76449329609502
2 14.5749592623602
3 14.6695662583098
4 26.5377242091606
5 26.5680481287167
6 30.1511120839660
7 41.2022857041488
8 41.3301571564366
9 46.5302787321246
10 50.7321162001148
100 469.322247420829
200 1272.53426125444
300 2900.67854644215
400 6516.04530926094
500 15744.0299389843
N= 41 M= 30
19
1 5.76440204669439
2 14.5747904753512
3 14.6694564757088
4 26.5370193408589
5 26.5673336276894
6 30.1505262830865
7 41.1995819270209
8 41.3273863997590
9 46.5257521628439
10 50.7190107043593
100 438.089300006650
200 949.404613961481
300 1769.83901531329
400 3225.33665710478
500 6302.06615038869
N= 51 M= 30
1 5.76440205021481
2 14.5747904734649
3 14.6694564747013
4 26.5370193399276
5 26.5673336269722
6 30.1505262843316
7 41.1995819271309
8 41.3273864001101
9 46.5257521603382
10 50.7190107070094
100 438.089315905997
200 891.886815184539
300 1504.11130549833
400 2423.98959435721
500 4026.49644426570
N= 61 M= 30
1 5.76440204273043
2 14.5747904768052
3 14.6694564751796
4 26.5370193409362
5 26.5673336273771
6 30.1505262813539
7 41.1995819274330
8 41.3273863995869
9 46.5257521650820
10 50.7190107025159
100 438.089315918242
200 858.247022459029
300 1407.95994950962
400 2162.62731007730
500 3219.10979446937
N= 71 M= 30
1 5.76440204824848
2 14.5747904724130
3 14.6694564749682
4 26.5370193349754
5 26.5673336269089
6 30.1505262883732
20
7 41.1995819267834
8 41.3273864003366
9 46.5257521589958
10 50.7190107049671
100 438.089315902206
200 854.667749741571
300 1362.72972006569
400 2015.13883189700
500 2892.81949051789
N= 81 M= 30
1 5.76440204357959
2 14.5747904786245
3 14.6694564761079
4 26.5370193410119
5 26.5673336282917
6 30.1505262817918
7 41.1995819272539
8 41.3273863992442
9 46.5257521642518
10 50.7190107002435
100 438.089315939268
200 854.667566410578
300 1345.80710894073
400 1943.99275267488
500 2690.78023680276
N= 91 M= 30
1 5.76440206688130
2 14.5747904690065
3 14.6694564746124
4 26.5370193365170
5 26.5673336266959
6 30.1505262928776
7 41.1995819273383
8 41.3273864005616
9 46.5257521543217
10 50.7190107168500
100 438.089315903094
200 854.667566265031
300 1336.75280760447
400 1906.51136160980
500 2605.92730720524
N= 101 M= 30
1 5.76440204802657
2 14.5747904806916
3 14.6694564802356
4 26.5370193386225
5 26.5673336275471
6 30.1505262840265
7 41.1995819285764
8 41.3273863987383
9 46.5257521686629
10 50.7190107033544
100 438.089315951625
200 854.667566265242
21
300 1336.91652611454
400 1878.34599709043
500 2540.05755294514
N= 111 M= 30
1 5.76440205013250
2 14.5747904684326
3 14.6694564761867
4 26.5370193425016
5 26.5673336258238
6 30.1505262697356
7 41.1995819269819
8 41.3273864008377
9 46.5257521547014
10 50.7190107223094
100 438.089315879034
200 854.667566266258
300 1336.91683329429
400 1874.20618892078
500 2508.15702744049
N= 101 M= 40
1 5.76440210757410
2 14.5747911525768
3 14.6694560235128
4 26.5370120410139
5 26.5673295743309
6 30.1504923208563
7 41.1995752439943
8 41.3273782291153
9 46.5257064528378
10 50.7190239516203
100 435.845001932850
200 856.178194896293
300 1301.51827733956
400 1721.46674979217
500 2182.72634222189
N= 151 M= 40
1 5.76440211324461
2 14.5747911366198
3 14.6694560125607
4 26.5370120449611
5 26.5673295924867
6 30.1504923282571
7 41.1995752225500
8 41.3273782291731
9 46.5257064185371
10 50.7190239279168
100 435.845002040277
200 856.178194899004
300 1301.51827732829
400 1715.78405518922
500 2176.93758302320
22
Примечание. Расчёты производились на ПЭВМ Pentium IV с тактовой
частотой 3,00 ГГц и объёмом оперативной памяти 1 Ггб. Время последнего
расчёта на сетке 40×151 около 5 часов 20 минут. Предыдущий расчёт на сетке
40×101 занимает около часа. Остальные расчёты несколько минут. Как видно из
сравнения результатов на двух последних сетках, надёжно с 6-7 знаками после
запятой определяется 300 собственных значений.
Для сетки 30×41 определялись собственные функции. На Фиг. 1 – Фиг.
11 приведены собственные формы для собственных значений 1-10, 100. На Фиг.
12 приведены линии уровня 1-ой собственной формы.
Заключение.
По поводу получения полных версий описанных программ обращайтесь по
электронному адресу: algazinsd@mail.ru или на адрес Института проблем
механики РАН, 119526, Москва, проспект Вернадского д.101, к.1.
Фиг. 1
23
Фиг. 2
24
Фиг. 3
25
Фиг. 4
26
Фиг. 5
27
Фиг. 6
28
Фиг. 7
29
Фиг. 8
30
Фиг. 9
31
Фиг. 10
32
Фиг. 11
33
0.80
0.60
0.95
0.90
0.40 0.85
0.80
0.75
0.70
0.20 0.65
0.60
0.55
0.50
0.00
0.45
0.40
0.35
-0.20 0.30
0.25
0.20
0.15
-0.40 0.10
0.05
0.00
-0.05
-0.60
-0.80
-0.60 -0.40 -0.20 -0.00 0.20 0.40 0.60
Фиг. 12
34
Литература.
35