Академический Документы
Профессиональный Документы
Культура Документы
С. Д. Алгазин
Препринт № 801
Москва 2006 г.
Аннотация.
The abstract.
2
Введение.
В [1] рассматриваются задачи на собственные значения для оператора
Лапласа в произвольной гладкой области с постоянными коэффициентами.
Однако ряд задач математической физики приводит к задачам на собственные
значения для уравнения второго порядка с переменными коэффициентами (см.
ниже). Для решения этих задач существует метод наискорейшего спуска [2],
который в частности сводит решение самосопряжённого уравнения второго
порядка к последовательности решения задач для уравнения Пуассона в этой же
области. Этот метод применяется также для решения нелинейных уравнений [3].
Однако рассмотренные там примеры численных расчётов не вызывают
оптимизма в быстроте сходимости метода. В настоящей главе построен
численный алгоритм без насыщения в задаче на собственные значения для
эллиптического уравнения второго порядка с переменными коэффициентами.
Для примера рассмотрено краевое условие Неймана. По ходу изложения будет
пояснено, как рассмотреть другие краевые условия.
∂ (mρ )
(1.1) + div( ρv ) = 0,
∂t
где m=Vпор./V – пористость ( для реальных пластов лежит в пределах 0,15 ~ 0,22
); mρ – концентрация; v - скорость фильтрации (а не скорость жидкости).
Это уравнение получается из обычного закона сохранения массы
d d
(1.2) ∫ ρdτ = ∫ ρmdτ = 0,
dt Vпор . dt V
где Vпор. – объём пор, а V – полный объём, причём оба объёма подвижные. Из
(1.2) получаем, применяя формулу дифференцирования по подвижному объёму
[4]:
∂ (mρ )
= div(mρw), v = mw,
∂t
где v − скорость фильтрации, а w − скорость жидкости. В результате получаем
уравнение (1.1).
Закон Дарси (1856) справедлив для медленных движений жидкости в
изотропной пористой среде, т.е. для малых значений числа Рейнольдса Re
(Re<Reкр.)
k
(1.3) v = − qrad p,
µ
3
где k - коэффициент проницаемости, измеряемый в Дарси (1д = 10-8/0,981 см2).
Для реальных пористых сред k = 100 ~ 1000 мд ( 1мд=10-3д). Проницаемость -
геометрическая характеристика пористой среды, т. е. определяется размерами
частиц, их формой и упаковкой, μ – динамическая вязкость.
Уравнение состояния.
M p
ρ= ,
RT z ( p )
∂ (mρ )
(1.4) + div( ρv ) = f ( z , t ), z ∈ G,
∂t
∂ (mρ )
(1.5) =| ϕ ′(ς ) | − 2 L( w) + f (ς , t ), ς = re iθ , 0 ≤ r ≤1, 0 ≤ θ < 2π , | ς |≤ 1;
∂t
1 ∂ ∂w 1 ∂ ∂w
(1.6) L( w) = rk (r ,θ ) + 2 k ( r ,θ ) .
r ∂r ∂r r ∂θ ∂θ
4
μ=μ(p) – вязкость ( известная функция давления );
ρ ( p)ψ ( p)
w( p ) = ∫ dp.
µ ( p)
∂p
(1.7) = 0,
∂n ∂G
которое означает отсутствие потока газа через границу области дG (см. (1.3)).
Заметим, что функция w также удовлетворяет этому граничному условию.
∂w
(2.1) L( w) + λw = 0, = 0.
∂r r =1
Заметим, что
∂w 2 k ∂w 2
− ∫
|ς |≤1
L( w) wdς = ∫ k + 2
|ς |≤1 ∂r r ∂θ
dς .
∂w 2 k ∂w 2
(2.2) J ( w) = ∫ k + 2 − λw dς → min .
2
∂r
|ς |≤1 r ∂θ
5
k 1 ∂ 1 ∂
δJ = 2
| ς
∫ kwr hr + r 2 wθ hθ − λwh dς = 2{krwr h r =1 − ∫ [ r ∂r (rkwr ) + r 2 ∂θ (kwθ ) +
|≤1 |ς |≤1
+ λw]hdς } = 0
ς
∫ f (ς )dσ = ∑
| |≤1 ν
cν
,l
l fνl , fνl = f (rν e iθ l ),
(2.3)
(2ν − 1)π 2πl
rν = cos, ν = 1,2,..., m; θ l = , l = 0,1,...,2n; N = 2n + 1.
4m N
Эта квадратурная формула получается, если заменить подынтегральную
функцию интерполяционной формулой для функции двух переменных в круге
[1]:
2n m
(2.4) ( PM f )(r ,θ ) = ∑∑ fνl Lνl (r ,θ ) , fνl = f (rν ,θ l ) ,
l = 0 ν =1
2T2 m (r ) Dn (θ − θ l ) Dn (θ − θ l + π )
Lvl (r ,θ ) = − ,
NT2'm (rν ) r − rν r + rν
n
Dn (θ ) = 0,5 + ∑ cos kθ , Tm (r ) = cos(m arccos x).
k =1
∂ k +l f
≤ K, k + l ≤ µ,
∂x k ∂y l
тогда, если f∈ H ∞M ( K; D) , то
(2.6) |ρM( . ;f)|∞≤ cµ K M−µ/2 log2M,
где cµ - константа, зависящая от µ.
Таким образом, из рассмотрения формулы (2.6) видно, что при
одинаковом числе узлов интерполяции M скорость убывания погрешности
интерполяционной формулы (2.4) возрастает с ростом µ, т.е. с ростом гладкости
интерполируемой функции f. Это означает, что полученная интерполяционная
формула не имеет насыщения.
Основываясь на интерполяционной формуле (2.4), легко построить
квадратурную формулу для вычисления определённых интегралов, когда
областью интегрирования является круг. В самом деле, заменяя
подынтегральную функцию выражением (2.4), получим квадратурную формулу
(2.3), где dσ - элемент площади, сνl – весовые коэффициенты, а δ(f) –
погрешность. Для сνl имеем
cν l = ∫ Lν l (r ,θ )dσ ,
D
s −1
4πrν cosψ ν m −1 (2ν − 1)π
сν = + ∑ t s cos sψ ν , t s = 1 /(1 + (−1) 2 s ), ψ ν = , s ≥ 1 − нечётно.
m(2nν + 1) 2 s = 3( 2 ) 4m
∂w
= ∑ H νl , µp wµp
∂r ς =ςνl µ , p
∂w N
= ∑ Blp wνp
∂θ ς =ςνl p =1
7
Матрицы B и H подучаются дифференцированием интерполяционной
формулы (2.4)
2 n
2π (l − p )
Blp =
N
∑ k sin k
k =1 N
n
где Dn (θ p + π − θ l ) = 0,5 + ∑ (−1) k cos k (θ p − θ l ) ⇒
k =1
2 ( 2)
H µp ,νl = Aµν
(1)
δ pl − Aµν Dn (θ p + π − θ l )
N
Нетрудно видеть, что H – h-матрица [1], и, следовательно, представляется в
виде
n
2 '
(2.7) H =
N
∑
k =0
Λ k ⊗ hk ,
где штрих у знака суммы означает, что слагаемое при k=0 берётся с
коэффициентом ½, Λk, k=0,1,…,n – матрица размера m × m; hk, k=0,1,…,n –
матрица размера N × N:
hkij=cos[k2π(i-j)/N)], i,j=1,2,…,N,
Итак,
2 2 m −1 s cos sψ ν sin sψ µ
Λ 2 k , µν = ∑
m s =2( 2) sin ψ µ
8
2 2 m −1 s cos sψ ν sin sψ µ
Λ 2 k +1, µν = ∑
m s =1( 2 ) sin ψ µ
подробно:
2 n ' 2π ( p − l )
H νl , µp =
N
∑
k =0
Λ(νµk ) cos k
N
,
~
2 n ' 2π (l − l )
H νl , µ~~l =
N
∑q =0
Λ(νqµ~) cos q
N
.
µ, p p =1
где
~
4 n ' n ' m 2n
2π ( p − l ) 2π (l − l )
Bµ~~l , µp = 2 ∑∑ ∑ cν Λνµ Λνµ~ ∑ kνl cos k
(k ) (q)
N
cos q
N
N k =0 q =0 ν =1 l =0
~
4 c µ~ n n N 2π (l − p ) 2π (l − l )
µ~
A~l p = 2 2 ∑∑ kq ∑ k µ~l sin k
N
sin q
N
.
N rµ~ k =1 q =1 l =1
Это есть дискретный аналог задачи на собственные значения
div(kqradw)+λw=0, r<1
∂w
= 0.
∂r r =1
Оценка погрешности описанной дискретизации может быть получена по
схеме, описанной в [1]. См. также [5].
§3. Результаты численных экспериментов.
Проводились расчёты задачи (2.1) в круге (k=1), возмущённом круге
(эпитрохоида, k=1, k≠1). В круге собственные значения известны λ i , i = 1,2,... -
нуль производной функции Бесселя. Сравнение с таблицами показывает, что
даже на сетке 3×7 имеем в первых собственных значениях по 4 знака после
запятой. Однако точность значительно хуже, чем по методике, описанной в [1]
для уравнения с постоянными коэффициентами. Второй расчёт проводился для
9
эпитрохоиды (ϕ(ς)=ς(1+εςn), ε = 0.0625, n=12), для которой в [1] в таблице (3.9)
приведены вычисленные значения. Результаты расчётов представлены в
таблице 3.1 (выписаны знаки, совпавшие с расчётами из [1]).
Таблица 3.1
№ 8×11 10×21 15×31
2 1.76 1.7751 1.77623557
6 3.77 3.72 3.7317
11 5.2 5.16 5.1770
16 6.9 6.5 6.4787
Третий расчёт проводился для той же эпитрохоиды для функции
k(r,θ)=k0(0.1+r2)(sin12θ+1.1), k0=10-13/0.981 м2=0.1 дарси.
Результаты расчётов представлены в таблице 3.2.
Таблица 3.2
№ 8×11 10×21 15×31 20×41 30×41
2 2.8451E-7 2.5447E-7 2.4840E-7 2.6227E-7 2.5541E-7
6 5.8268E-7 6.5814E-7 7.0164E-7 7.2177E-7 7.1376E-7
11 9.2409E-7 9.3812E-7 1.0838E-6 9.8923E-7 9.5191E-7
16 1.2075E-6 1.3895E-6 1.1905E-6 1.1763E-6 1.0876E-6
21 1.4927E-6 1.5927E-6 1.4384E-6 1.4482E-6 1.4222E-6
$objcomment lib:"treq.lib"
PROGRAM ALAPN
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION H(1512900),B(1512900),WR(1230),WI(1230),IANA(1230),
*U(1230),PR(1230),A1(900),A2(900),NL(30),Z(1230),X(1230),
*Y(1230),Y2(11)
REAL*4 PR
P(R,T)=(1.D-13/0.981)*(0.1+R*R)*(SIN(12.*T)+1.1)
C P(R,T)=1.D0
PI=3.141592653589D0
WRITE (*,*) 'M=?, N=?'
READ (*,*) M,N
10
NT=M*N
NT2=NT*NT
I=0
DO 10 NU=1,M
R=COS((2.*NU-1.)*PI/4./M)
DO 10 L=1,N
T=2.*PI*(L-1.)/N
I=I+1
10 PR(I)=P(R,T)
CALL LAPN (H,M,N,NT,PR,A1,A2)
WRITE (*,*) 'EPS=?, NP=?'
READ (*,*) EPS,NP
DO I=1,M
NL(I)=N
ENDDO
CALL MOD2 (Z,M,NL,EPS,NP)
IJ=0
DO I=1,NT
DO J=1,NT
IJ=IJ+1
H(IJ)=H(IJ)/Z(J)
ENDDO
ENDDO
C
NOUT=4
OPEN(UNIT=4,FILE='NOUT')
WRITE(NOUT,*) 'H'
WRITE (NOUT,*), (H(I),I=1,NT*NT)
WRITE(NOUT,*) 'end H'
C
CALL ELMHES (NT,NT,1,NT,H,IANA)
CALL ELTRAN (NT,NT,1,NT,H,IANA,B)
CALL HQR2 (NT,NT,1,NT,H,WR,WI,B,IERR)
WRITE (*,*) 'IERR = ',IERR
PAUSE
PRINT 12, (WR(I),I=1,NT),(WI(I),I=1,NT)
12 FORMAT (1X,4E18.11)
C NOUT=4
C OPEN(UNIT=4,FILE='NOUT')
WRITE (NOUT,12), (WR(I),I=1,NT),(WI(I),I=1,NT)
DO 23 I=1,NT
23 WR(I)=DSQRT(ABS(WR(I)))
WRITE (*,*) 'Eigenvalue'
PRINT 12, (WR(I),I=1,NT)
WRITE (NOUT,*) 'Eigenvalue'
WRITE (NOUT,12), (WR(I),I=1,NT)
DO I=1,NT
X(I)=WR(I)
ENDDO
C
RMIN=1.D12
IJ=1
I1=1
110 DO 60 I=I1,NT
IF (X(I).LT.RMIN) THEN
RMIN=X(I)
IANA(IJ)=I
Y(IJ)=X(I)
ENDIF
60 CONTINUE
11
X(IANA(IJ))=1.D17
RMIN=1.D12
IJ=IJ+1
IF(IJ.LE.NT) GO TO 110
C
WRITE(NOUT,12) (X(I),I=1,NT)
WRITE(NOUT,12) (Y(I),I=1,NT)
WRITE (NOUT,*) 'Eigenvalue'
WRITE(NOUT,12) (Y(I),I=1,NT)
C
M11=2*M
DO 21 K=1,10
WRITE (*,*) 'Inject the number of an eigenvalue?'
READ (*,*) IJ
WRITE (*,*) IJ, Y(IJ)
WRITE (NOUT,*) IJ, Y(IJ)
I2=NT*(IANA(IJ)-1)
DO 22 I=1,NT
I3=I2+I
22 U(I)=B(I3)
CALL URT (0.D0,M,NL,U,X)
CALL URT (3.14159265359D0,M,NL,U,Z)
DO 4 I=1,M
I1=M11-I+1
4 X(I1)=Z(I)
DO 20 LL=1,11
X2=0.1*(LL-1)
C X2=0.1*(LL-1)/Y(IJ)
20 Y2(LL)=EIGEN (X2,X,Z,M11,-1.D0,+1.D0)
CALL NORM1(Y2,11)
WRITE (NOUT,12) Y2
PRINT 12,Y2
21 PAUSE
120 FORMAT(A)
STOP
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
15
Литература.
4. Седов Л.И. Механика сплошной среды. Т.1, М.: Наука, 1970, 492 с.
16