Файл: Булах Е.Г. Автоматизированная система интерпретации гравитационных аномалий (метод минимизации).pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 28.07.2024

Просмотров: 111

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

необходимо ввести

значения величин п — количество точек, кото­

рые используются

при

решении

задачи, m — количество

возму­

щающих тел,

которыми

аппроксимируется геологическая

схема.

Что же касается величины (Т +

К)

— общее количество

параметров

в элементарном

геологическом

теле, то оно постоянно

для

каждой

конкретной задачи. Например, если геологическое тело представ­

ляется совокупностью

цилиндрических

тел,

то Т + К — 4,

Т =

= 3 (это параметры t,

h, d), а параметр

/< =

1 это sign а. Если

гео­

логическая схема описана как совокупность прямых уступов, огра­

ниченных по простиранию (рис. 1), то

чаще

всего

Т — 1 (этим

параметром

является

d

положение

грани

уступа).

Величина

К = 5 (a,

h,

H,

Іъ

U) — все

они

считаются постоянными и

не подлежат изменениям в процессе минимизации (1.2).

 

 

Далее в

память

машины

должны быть

записаны

значения

F K 0 I I

и АК 0 1 І . Эти

величины

определят

окончание вычислительных

цик­

лов по критериям (1.13) и (1.14).

 

 

 

 

 

 

 

Значение

FKon

может быть вычислено, а

величина

Д К 0 І І

задается.

Она должна

быть определена в

процессе

опробования конкретных

практических задач или установлена из модельных исследований. Чаще всего эта величина колеблется в пределах 0,05—0,02. Таким образом, в оперативном запоминающем устройстве выделяется мас­ сив исходных значений для решения задачи. Обозначим его Мх. Размеры этого массива зависят от величины п и /п.

Введенная в вычислительную машину информация печатается. Это необходимо для возможной проверки исходных данных. Ведь даже незначительная на первый взгляд ошибка во введенной число­ вой информации может исказить замысел интерпретатора, и задача не будет решена.

Теперь вновь обратимся к описанию переменных величин в программе. Символами і, j обозначены переменные индексы: і изме­

няется от

0 до п, j — от

0 до пг. Величины SKL,

T K L , Р35,

Р7

определяются в самой программе. Первые две величины нужны

для

передачи

управления по

переключателям switch

KLM2:

=

АО,

A I , А2, A3; switch КХ37:

= Т6, Т14, Û. Возле наименования

пере­

ключателя указаны метки, которыми обозначены некоторые опера­ торы в программе. Величина SKL в процессе решения задачи может принимать значение от 1 до 4. В зависимости от значения этой ве­ личины переключатель KLM2 передает управление одному из опе­ раторов с метками АО, A l , А2 или A3. Величина T K L может при­ нимать в вычислительном процессе значения от 1 до 3. Целые числа Р35 и Р7 так же используются для передачи управления.

Далее описаны массивы действительных чисел. В начале идут координаты точек и значения поля в данных точках, затем парамет­ ры геологической схемы. Д л я записи промежуточных данных выделе­

но две

группы массивов 7И2 и М3.

В группе М2 выделены массивы

РР1М2,

РР2М2,

РРТМ2 [1 : m] для записи результатов

вычис­

лений

в

очередной

итерации параметров

геологической

схемы.

В каждом

цикле вычислительного

процесса

после изменений

геоло-

30


гической схемы делается расчет гравитационного поля

У т е о р

(хс, t/t)

в и

точках. В программе этот массив обозначен GTM2

[1 : п\.

В мас­

сив

М3 переписываются вычисленные значения

геологических

параметров и рассчитанное гравитационное поле (массивы РР1МЗ,

РР2МЗ, ... РРТМЗ [1 : т]

и

GTM3 [1 :л]). Символами FPR1,

FPR2,

... FPRT [1 : т]

обозначены

массивы

значений

производных

от

функции (1.2) по искомым параметрам.

 

 

 

 

Затем следует описание действительных чисел. Как указыва­

лось,

FK 0 1 I , А к о п

вводятся

вместе с

исходными данными. Они опи­

саны

идентификаторами

FKON

и

DELT .

О

значении

других

чисел будет сказано дальше.

 

 

 

 

 

s1

Теперь перейдем к описанию

самой программы. Величинам

и s2 присваиваются значения

соответственно

1,0 и 2,0. Целое

число

Р7 получает значение 0. Далее следует составной оператор. Он опи­ сан меткой N . В цикле переписываются значения переменных па­

раметров в массиве М2. Переменным Р35, SKL,

T K L присваивается

значение 1 и управление передается оператору,

которому присвое­

на метка А.

 

В самом конце программы помещены четыре группы операторов, возле которых стоят метки А, В, С, К . Они тесно связаны между со­

бой, и представляют, по сути,

специализированные подпрограммы.

Меткой

А обозначен блок,

в

котором вычисляются значения

 

 

 

m

 

 

Ѵтеор (*£і Ус) =

І Ѵ^/теор (Х[,

Ус).

 

 

 

і=\

 

Под меткой

В записан блок вычисления функции

 

п

 

 

 

 

F = Il [Ѵнабл І,

У[) — Ѵтеор (*„

Ус)?.

Работает блок в одном вычислительном цикле четыре раза. Здесь помещен переключатель КХМ2 (switch KLM2: = АО, A I , А2, A3;).

Функция F поочередно записывается в

четыре разные ячейки

памяти.

 

На следующий блок (метка С) переходят только в том случае,

если число Р35 Ф 0. Здесь вычисляются

производные функции F

по искомым параметрам. Эти величины в каждом цикле вычисляют­ ся только один раз. Значит, каждый раз при переходе к А (а значит,

и к блоку

В, который следует за ним) всегда

нужно обращать вни­

мание на

значения числа

Р35.

 

С помощью оператора

К осуществляет выход из этой своеобраз­

ной подпрограммы в нужное место основной

программы.

Обращает на себя внимание, что операторы А и С не могут быть описаны конкретно в общей программе. В каждой задаче будут свои функции Ѵ/теор (xt, ус), значит, и разные значения производных функции F. При рассмотрении конкретных задач необходимо опи­ сать эти блоки.

Выход из подпрограммы с метками А — В — С К осуществ­ ляется на оператор Т6 при (TKL = 1). Вычисленное значение функ-

31



ции F, массив

Ѵ т е о р (xi, t/i)

и значения

переменных

параметров

переписываются в массив М3.

Затем

управление передается

опера­

тору Т9. Осуществляется вывод на печать прямой задачи.

Таким

образом, есть

возможность сравнить

У н а б л

(xi, уі) с

У т е о Р

(xi, уі),

которая вычислена для схемы первого приближения. Здесь может быть остановлен весь вычислительный процесс и введена коррек­ тива в схему первого приближения геологического строения, если интерпретатор решит, что она неудовлетворительно была состав­ лена ранее. Оператором Р7 : = 1 закрывается в дальнейшем доступ к оператору Т9.

В блоке Т10 вычисляется коэффициент Хш- Затем

(оператор Т11)

для s = Sx и s = s2 определяются

значения искомых параметров,

при этом каждый раз обращаются к

подпрограммам

(блоки А — К).

Перед переходом на блок А параметрам Р35 и ТКХ присваиваются

значения соответственно 0 и 2. Это как раз и нужно, чтобы

опустить

расчет

производных (блок

С) и

вернуться к оператору

Т14. Здесь

отыскивается F = Fmin

и

в массив М3 переписываются

значения

параметров геологической схемы и соответствующий

им

массив

^теор (Xl,

Уі)-

 

 

 

 

 

 

 

 

 

Далее

вычисляется

коэффициент s по формуле (1.26)

и вновь

рассчитываются

значения

геологических

параметров

(при

этом

опять

передается

управление

подпрограммам А — К). Меткой Д

обозначены операторы

анализа

на минимум

вычисленной

 

функции

F. Затем проверяются

некоторые отношения. Если Fmln

(она имеет

идентификатор FM3) равна

F0,

то это свидетельствует

о том,

что

функция в данном цикле не уменьшилась. Мы достигли

возможно­

го Fmin

при конкретных геологических данных. Вычисления

должны

быть

закончены.

 

наступает и тогда, когда Fm-in

•< FK0

 

Конец

вычисления

или

характер

монотонного

изменения функции

достаточно

 

мал. При

этом печатаются результаты минимизации: значения параметров, подобранная функция и сама функция F (метка Д1).

Если же ни один из описанных

критериев не выполнен, то под­

готавливается переход к новой итерации

и управление передается

блоку N .

 

 

 

 

 

 

 

 

 

Программа минимизации функционалов

 

 

 

Begin

 

 

 

 

 

 

 

 

 

integer n, m, i , j

, P7, P35, S K L , T K L , T;

 

real array X T , Y T , G N A B L

[ l : n ] ,

 

 

 

PP1,

PP2, ... PPT

[ l : m ] ,

 

 

 

 

P I ,

P2, ... P K [l:ra],

 

 

 

 

PP1M2,

PP2M2,

... PPTM2

[ l : m ] ,

 

GTM2

[ l : n ] ,

 

 

 

 

 

 

 

PP1M3,

PP2M3,

... PPTM3

[ l : m ] ,

 

GTM3

[ l : n ] ,

 

 

 

 

 

 

 

F P R 1 ,

FPR2,

... F P R T

[ l : m ] ;

 

real

F K O N ,

D E L T ,

FM2, FO, F l , F2,

FF,

 

FM3, L A M , S I , S2,

SW;

 

 

 

switch

K L M 2 : = A O , A l , A2, A3i

 

 

switch

K L 3 7 : = T 6 , T14,

D ;

 

 

 

32


Ввод

Begin

integer

n, m; real

F K O N ,

D E L T ;

 

 

 

real

array X T , Y T , G N A B L

[ l : n ] ,

 

 

 

 

 

 

 

PP1,

PP2,

... PPT

[ l : m ] ,

 

 

 

 

 

 

 

P I ,

P2,

... P K

[ l : m ] end

 

 

 

 

Печать

Begin

real array

X T , Y T , G N A B L

[ l : n ] ,

 

 

 

 

 

PP1,

PP2,

... PPT

[ l : m ] ,

 

 

 

 

 

 

 

P I ,

P2,

... PK

( l : m ] end

 

 

 

 

 

Begin

S l : = 1.0; S2:=2 . 0;

P 7 : = 0 end

 

 

N :

Begin

for j : = l step

1 until m

do

 

 

 

 

 

Begin

P P l M 2 [ j ] : = P P l [ j ] ;

P P 2 M 2 [ j ] : = P P 2 [ j ] ; ...

 

 

 

 

P P T M 2 [ j ] : = P P T

[j] end

 

 

 

 

 

 

 

P 3 5 : = S K L : = T K L : = 1 ;

go

to A end

 

 

T6: for j : = 1 step 1 until

m do

 

 

 

 

 

 

 

Begin

P P l M 3 [ j ] : =

P P l M 2 [ j ] ;

PP2M3[j]:=PP2M2[j]s

 

 

 

 

. . . P P T M 3 [ j ] : = P P T M 2 [ j ] end

 

 

 

 

 

F M 3 : = F M 2 ;

 

 

 

 

 

 

 

 

 

 

 

 

for i : = l step

1 until n

do

 

 

 

 

 

 

 

G T M 3 [ i ] : = G T M 2 [ i ] ;

 

 

 

 

 

 

 

 

if P7 =

0 then

go to T9 else go to T10;

 

T9:

Begin

 

P 7 : = l ;

 

 

 

 

 

 

 

 

 

 

 

 

 

Печать (real FO; array

GTM 2 [i:n]}

end

 

 

T10:

Begin

real sum, K W ;

 

 

 

 

 

 

 

 

 

 

 

 

sum:=0 . 0

 

 

 

 

 

 

 

 

 

 

 

for

j : = l step

1 u n t i l

m do

 

 

 

 

 

 

 

 

Begin

K W : = F P R l [ j ] t

2 +

FPR2[j]

t

2 ... +

F P R T [ j ] t

2;

 

 

 

sum:=su m +

K W end

 

 

 

 

 

 

 

 

L A M : = F M 2 / s u m

end

 

 

 

 

 

T i l :

for S W : = S 1 , S2 do

 

 

 

 

 

 

 

 

 

 

 

Begin

for j : = l step

1 until

m do

 

 

 

 

 

Begin

PP1M2 [ j ] : = P P l

[j] — SW X

L A M X

F P R l [ j ] ;

 

 

 

 

P P T M 2 [ j ] : = P P T [ j ]

— SW X

L A M X

F P R T [ j ]

end

 

 

 

P35:=0 ; T K L : = 2 ;

go to A;

 

 

 

T14: of FM3 > FM2 then

 

 

 

 

 

 

 

 

 

 

 

Begin

F M 3 : = F M 2 ;

 

 

 

 

 

 

 

 

 

 

 

for

j : = l step

1 until

m do

 

 

 

 

 

 

 

Begin

PP1M3 [ j ] : = P P l M 2 [ j ] ;

 

 

 

 

 

 

 

 

PPTM3

[ j ] : = P P T M 2 [j] end

 

 

 

 

for

i : = l step

1 until n do

 

 

 

 

 

 

 

 

 

 

GTM3

[ i ] : = G T M 2

[i ] end

end

 

 

 

 

 

S W : = ( S 2 X S2 X (FI — FO) — S I X S I X (F2 — FO))/

 

 

 

(2.0 X

(S2 X

(F l — FO) — SI X (F2—FO)));

 

 

for

j : = l step

1 u n t i l

m

do

 

 

 

 

 

 

 

Begin

P P l M 2 [ j ] : = P P l [ j ]

— SW X

L A M X F P R l [ j ] ;

 

 

 

 

PPTM2[j] =

PPT[j] — SW X L A M X F P R T [ j ]

end

 

 

 

T K L : = 3 ; go to A ;

 

 

 

 

 

 

D: if FM3 > FM2 then

 

 

 

 

 

 

 

 

 

 

 

Begin

F M 3 — F M 2 ;

 

 

 

 

 

 

 

 

 

 

 

for

i : = 1 ster

1 u n t i l

n do

 

 

 

 

 

 

 

 

 

 

G T M 3 [ i ] : = G T M 2 [ i ] ;

 

 

 

 

 

 

for

j : = l step 1

u n t i l

m do

 

 

 

 

 

 

 

Begin

P P l M 3 [ j ] : = P P l M 2 [ j ] ;

 

 

 

 

 

 

 

 

P P T M 3 [ j ] : = P P T M 2 [ j ]

end '

 

 

 

 

 

 

if (FM3 =

FO) V (FM3 <

F K O N ) V

(abs (((FM3 - FO)/FM3)

 

 

 

< D E L T ) )

then go to D l ;

 

 

 

 

8

2—И45

33