С. Д. Алгазин
Препринт № 816
Москва 2006 г.
Аннотация.
The summary.
2
Введение. В [1] рассмотрены численные алгоритмы без
насыщения для решения стационарных задач математической
физики. В настоящей работе эти результаты обобщаются на
нестационарные задачи. Численные алгоритмы без насыщения
предложены К. И. Бабенко [2] в начале 70-х годов прошлого века.
Многолетнее применение этих методов к задачам математической
физики автором настоящей работы, доказало их высокую
эффективность. Однако до сих пор рассматривались только
стационарные задачи. В настоящей работе этот пробел восполняется.
Для примера рассмотрено одномерное уравнение теплопроводности,
но по ходу изложения будет показано, что размерность здесь
несущественна.
∂u ( x, t ) ∂ 2u ( x, t )
(1.1) = + f ( x, t ), ( x, t ) ∈ D;
∂t ∂x 2
(1.2) u t =0 = u0 ( x);
3
2. Дискретизация. По x приблизим искомую функцию u(x,t)
многочленом: для этого по x выберем сетку, состоящую из m узлов:
1 (2 µ − 1)π
xµ = ( z µ + 1), z µ = cos χ µ , χ µ = , µ = 1,2,..., m,
2 2m
m
Tm ( x)( x − 1) xqk
(2.1) q( x) = ∑ , qµ = q ( xµ ), z = 2 x − 1.
µ =1 (−1) µ −1
m ( xµ − 1) xµ ( z − z µ )
sin χ µ
1 (2ν − 1)π
tν = ( zν + 1), zν = cos χν , χν = , ν = 1,2,..., k ,
2 2k
k
Tm (t )tqν
(2.2) q (t ) = ∑ .
ν =1 (−1)ν −1
m tν ( z − zν )
sin χν
4
d2
Пусть A матрица дискретного оператора − , тогда
dx 2
обозначив uμν=u(xμ,tν), μ=1,2,…,m; ν=1,2,…,k и получим
∂u ( xµ , t ) m
+ ∑ Aµp u ( x p , t ) = f ( xµ , t ).
∂t p =1
k m
(2.3) ∑ Bν uµ + ∑ Aµ u ν
q =1
q q
p =1
p p = f µν .
(2.4) ( B ⊗ I m + I k ⊗ A)u = f ,
B ⊗ ∑ h p + I k ⊗ (∑ λ p h p ) = ∑ ( B + λ p I k ) ⊗ h p ⇒
p p p
5
(2.5) ( B ⊗ I m + I k ⊗ A) −1 = ∑ ( B + λ p I k ) −1 ⊗ h p (см. [1]).
p
M = 5 K = 5
Точное решение
0.63594E-01 0.49945E+00 0.82800E+00 0.49945E+00
0.63594E-01
0.54768E-01 0.43013E+00 0.71309E+00 0.43013E+00
0.54768E-01
0.36822E-01 0.28919E+00 0.47943E+00 0.28919E+00
0.36822E-01
0.15718E-01 0.12345E+00 0.20465E+00 0.12345E+00
0.15718E-01
0.18794E-02 0.14760E-01 0.24469E-01 0.14760E-01
0.18794E-02
Приближённое решение
0.63586E-01 0.49947E+00 0.82808E+00 0.49947E+00
0.63586E-01
0.54762E-01 0.43015E+00 0.71316E+00 0.43015E+00
0.54762E-01
0.36817E-01 0.28920E+00 0.47947E+00 0.28920E+00
0.36817E-01
0.15716E-01 0.12345E+00 0.20467E+00 0.12345E+00
0.15716E-01
0.18791E-02 0.14760E-01 0.24470E-01 0.14760E-01
0.18791E-02
Норма матрицы дискретной задачи
BNORM = 0.181397574207915
Норма разности
RNORM = 8.498969703851778E-005
M = 10 K = 10
6
Точное решение
0.16208E-01 0.14279E+00 0.37214E+00 0.63389E+00
0.81295E+00
0.81295E+00 0.63389E+00 0.37214E+00 0.14279E+00
0.16208E-01
0.15679E-01 0.13814E+00 0.36000E+00 0.61322E+00
0.78644E+00
0.78644E+00 0.61322E+00 0.36000E+00 0.13814E+00
0.15679E-01
0.14573E-01 0.12840E+00 0.33462E+00 0.56998E+00
0.73098E+00
0.73098E+00 0.56998E+00 0.33462E+00 0.12840E+00
0.14573E-01
0.12853E-01 0.11323E+00 0.29511E+00 0.50267E+00
0.64466E+00
0.64466E+00 0.50267E+00 0.29511E+00 0.11323E+00
0.12853E-01
0.10569E-01 0.93113E-01 0.24267E+00 0.41335E+00
0.53011E+00
0.53011E+00 0.41335E+00 0.24267E+00 0.93113E-01
0.10569E-01
0.79167E-02 0.69748E-01 0.18177E+00 0.30963E+00
0.39709E+00
0.39709E+00 0.30963E+00 0.18177E+00 0.69748E-01
0.79167E-02
0.52140E-02 0.45937E-01 0.11972E+00 0.20392E+00
0.26153E+00
0.26153E+00 0.20392E+00 0.11972E+00 0.45937E-01
0.52140E-02
0.28219E-02 0.24861E-01 0.64792E-01 0.11037E+00
0.14154E+00
0.14154E+00 0.11037E+00 0.64792E-01 0.24861E-01
0.28219E-02
0.10533E-02 0.92801E-02 0.24185E-01 0.41197E-01
0.52834E-01
0.52834E-01 0.41197E-01 0.24185E-01 0.92801E-02
0.10533E-02
0.11904E-03 0.10488E-02 0.27333E-02 0.46557E-02
0.59709E-02
0.59709E-02 0.46557E-02 0.27333E-02 0.10488E-02
0.11904E-03
Приближённое решение
0.16208E-01 0.14279E+00 0.37214E+00 0.63389E+00
0.81295E+00
0.81295E+00 0.63389E+00 0.37214E+00 0.14279E+00
0.16208E-01
0.15679E-01 0.13814E+00 0.36000E+00 0.61322E+00
0.78644E+00
0.78644E+00 0.61322E+00 0.36000E+00 0.13814E+00
0.15679E-01
0.14573E-01 0.12840E+00 0.33462E+00 0.56998E+00
0.73098E+00
0.73098E+00 0.56998E+00 0.33462E+00 0.12840E+00
0.14573E-01
0.12853E-01 0.11323E+00 0.29511E+00 0.50267E+00
0.64466E+00
0.64466E+00 0.50267E+00 0.29511E+00 0.11323E+00
0.12853E-01
0.10569E-01 0.93113E-01 0.24267E+00 0.41335E+00
0.53011E+00
7
0.53011E+00 0.41335E+00 0.24267E+00 0.93113E-01
0.10569E-01
0.79167E-02 0.69748E-01 0.18177E+00 0.30963E+00
0.39709E+00
0.39709E+00 0.30963E+00 0.18177E+00 0.69748E-01
0.79167E-02
0.52140E-02 0.45937E-01 0.11972E+00 0.20392E+00
0.26153E+00
0.26153E+00 0.20392E+00 0.11972E+00 0.45937E-01
0.52140E-02
0.28219E-02 0.24861E-01 0.64792E-01 0.11037E+00
0.14154E+00
0.14154E+00 0.11037E+00 0.64792E-01 0.24861E-01
0.28219E-02
0.10533E-02 0.92801E-02 0.24185E-01 0.41197E-01
0.52834E-01
0.52834E-01 0.41197E-01 0.24185E-01 0.92801E-02
0.10533E-02
0.11904E-03 0.10488E-02 0.27333E-02 0.46557E-02
0.59709E-02
0.59709E-02 0.46557E-02 0.27333E-02 0.10488E-02
0.11904E-03
Норма матрицы дискретной задачи
BNORM = 0.156331288248615
Норма разности
RNORM = 1.533128068942347E-010
4. Программы на Фортране.
$objcomment lib:"hceq.lib"
PROGRAM HCEQ1D02
PARAMETER (M=5,K=5,NG=M*K)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION A(M,M),B(K,K),X(M),Y(M),IANA(M),IANA1(M),LR(K),MR(K)
DIMENSION A1(M,M),B1(M,M),D(M,M),HR(K,K),BS(M,M)
DIMENSION R(NG,NG),F(NG),RES(NG),RES1(NG)
DATA PI/3.141592653589D0/
8
CALL DIFR22 (B,K,0.D0,0.D0,DL)
CALL KRON1 (R,NG,B,HR,K,D,M,X,Y,IANA,IANA1,A1,B1,LR,MR)
I=0
DO NU=1,K
T1=(1.D0+COS((2.D0*NU-1.D0)*PI/2.D0/K))/2.D0
DO MU=1,M
X1=(1.D0+COS((2.D0*MU-1.D0)*PI/2.D0/M))/2.D0
I=I+1
F(I)=COS(T1)*SIN(PI*X1)+PI**2*SIN(T1)*SIN(PI*X1)
RES(I)=SIN(T1)*SIN(PI*X1)
ENDDO
ENDDO
DO I=1,NG
RES1(I)=0.D0
DO J=1,NG
RES1(I)=RES1(I)+R(I,J)*F(J)
ENDDO
ENDDO
CALL NORM(NG,RES-RES1,RNORM)
WRITE (*,*) 'RNORM =',RNORM
OPEN (4,FILE='NOUT')
WRITE (4,*) 'M = ',M,'K = ',K
WRITE (4,*) 'Точное решение'
WRITE (4,12) RES
12 FORMAT(1X,5E15.5)
WRITE (4,*) 'Приближённое решение'
WRITE (4,12) RES1
CALL NMATR(NG,R,BNORM)
WRITE (*,*) 'BNORM = ',BNORM
WRITE (4,*) ' Норма матрицы дискретной задачи'
WRITE (4,*) 'BNORM = ',BNORM
WRITE (4,*) ' Норма разности'
WRITE (4,*) 'RNORM = ',RNORM
STOP
END
SUBROUTINE NMATR (N,A,BNORM)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION A(N,N)
BNORM = 0.D0
DO 1 I=1,N
C=0.D0
DO 2 J=1,N
2 C=C+ABS(A(I,J))
IF (C.GT.BNORM) BNORM=C
1 CONTINUE
RETURN
END
SUBROUTINE NORM(N,Y,RNORM)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION Y(1)
RNORM=0.D0
DO 1 J=1,N
IF(ABS(Y(J)).GT.RNORM) RNORM=ABS(Y(J))
1 CONTINUE
RETURN
END
SUBROUTINE DIFR22(DR,M,UM1,EPS,DL)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION DR(M,M),DL(M)
PI=3.141592653589D0
DO 1 MU=1,M
TM=(2.*MU-1.)*PI/2./M
RM=0.5*(EPS+1.)+COS(TM)*0.5*(1.-EPS)
DL(MU)=(-1)**(M+MU+1)*M*2.*UM1/SIN(TM)/(1.-EPS)
DO 1 NU=1,M
TN=(2.*NU-1.)*PI/2./M
RN=0.5*(EPS+1.)+COS(TN)*0.5*(1.-EPS)
P=1.D0/(RN-EPS)/M
DO 2 L=1,M-1
2 P=P+4.*COS(L*TN)*L*SIN(L*TM)*(RM-EPS)/
/(1.-EPS)/SIN(TM)/(RN-EPS)/M+2.*COS(L*TN)*COS(L*TM)/(RN-EPS)/M
1 DR(MU,NU)=P
RETURN
END
Примечание.
12
5. SUBROUTINE KRON1 (R,NG,H,HR,NT,D,K, X,Y,IANA,IANA1,A,B,LR,MR)
R – результат (матрица размера NG×NG); H – входной массив
13
Литература.
14