Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы компьютерных технологий решения геологических задач

..pdf
Скачиваний:
6
Добавлен:
15.11.2022
Размер:
16.9 Mб
Скачать

элементом блока параметров, столбцом электронной таблицы, электронной таблицей. Столбец и таблица отображаются целиком. Display рекомендуется применять при отладке программы. Функция Display не возвращает значения, поэтому ее нельзя использовать в выражениях.

Замечание.

При достижении программой функции Display выполнение программы временно приостанавливается. Продолжить выполнение можно, нажав клавишу «Продолжить программу» на панели инструментов.

Пример

A, B – переменные; С1 – столбец в таблице

Display () Display (10.0) A = 3.0

B = –100.0

Display (A, B, A + B) Display (C1)

Display (Table)

LinearSystem

Функция LinearSystem решает систему линейных алгебраических уравнений методом Гаусса с выбором ведущего элемента. При использовании этой функции приняты следующие соглашения. Матрица коэффициентов и вектор свободных членов образуют подтаблицу размером N строк на N+1 столбцов (N – число неизвестных).

Подтаблица задается координатами левого верхнего и правого нижнего углов. Функция имеет 3 аргумента:

1)координаты левого верхнего угла подтаблицы (указывается имя столбца

иномер строки в квадратных скобках);

2)координаты правого нижнего угла подтаблицы (указывается имя столбца

иномер строки в квадратных скобках);

3)столбец, содержащий решение (указывается имя столбца);

Решение системы помещается в столбец, указанный в качестве 3-го аргумента. Номера строк, в которые записывается вектор неизвестных, совпадают с номерами строк подтаблицы. При невозможности решить систему уравнений содержимое столбца-решения не изменяется. Функция LinearSystem не возвращает значения, поэтому ее нельзя использовать в выражениях.

Пример

Таблица имеет 10 строк и 10 столбцов, A1, A2, A3, B – смежные столбцы, X – произвольный столбец. Система состоит из 3-х уравнений.

LinearSystem (A1[1], B[3], X)

// Решение в X[1], X[2], X[3]

LinearSystem (A1[5], B[7], X)

// Решение в X[5], X[6], X[7]

LinearSystem (A1[8], B[10], X)

// Решение в X[8], X[9], X[10]

181

Random

Функция Random генерирует случайное число, равномерно распределенное на отрезке [0,1]. Функция Random не имеет аргументов.

Пример

A – переменная; С1 – столбец в таблице

A = Random ()

// Переменная A содержит случайное число

for i = 1 to RowNumber

 

C1[i] = Random ()

// Столбец заполняется случайными числами

endfor

 

NormalRandom

Функция NormalRandom генерирует нормально-распределенное случайное число с нулевым математическим ожиданием и единичной дисперсией. Функция NormalRandom не имеет аргументов. Функция может быть использована для получения нормально-распределенной случайной величины с математическим ожиданием m и дисперсией d.

Пример

A – переменная; С1 – столбец в таблице

c

c Переменная A содержит нормально-распределенное число c

A = NormalRandom ()

c

c Столбец заполняется нормально-распределенными числами c

for i = 1 to RowNumber C1[i] = NormalRandom ()

endfor

c

c Переменная A содержит нормально-распределенное число c с математическим ожиданием m и дисперсией d

c

A = NormalRandom () * sqrt (d) + m

String

Функция String приводит содержимое ячейки Электронной таблицы к строковому типу. Это позволяет сравнивать ячейку с текстовой константой или переменной. Функция имеет один аргумент.

182

Пример

A – переменная; Пласт – столбец в таблице

A = 'Ю23'

for i = 1 to RowNumber

if (String (Пласт[i]) == A) then

Оператор1

else

Оператор2 endif

endfor

Int

Функция Int находит целую часть вещественного числа. Аргументом функции может быть: ячейка Электронной таблицы, внутренняя переменная программы, элемент блока параметров, столбец Электронной таблицы. Если аргумент является столбцом, то функция рассчитывается для каждого элемента столбца. Функция может быть использована для округления результата вычислений до заданного числа десятичных знаков после запятой.

Пример

Пусть значение переменной A равно 3.14159265 и требуется округлить его до 5 знаков после запятой, сохранив результат в переменной B. Тогда решение задачи будет следующим:

B = Int (A * 10^5) /10^5

Number

Функция Number определяет, является ли ее аргумент корректным действительным числом. Если аргумент является числом, функция возвращает 1, в противном случае функция возвращает 0. Аргументом функции может быть: ячейка Электронной таблицы, внутренняя переменная программы, элемент блока параметров, столбец Электронной таблицы. Если аргумент является столбцом, то функция рассчитывается для каждого элемента столбца.

Пример

A, B, C – переменные; С1, С2 – столбцы в таблице

A = Number (10.67)

B= Number ('Функция возвратит нуль') C2 = Number (C1)

C= Number (–C2[1])

ColumnIndex

Функция ColumnIndex возвращает порядковый номер столбца Электронной таблицы. Функция имеет 1 аргумент. Аргументом функции должно быть имя столбца Электронной таблицы.

183

Пример

N – переменная; AK – столбец в таблице

N = ColumnIndex (AK) // Переменная N содержит номер столбца АК

ColumnRename

Функция ColumnRename выполняет переименовывание столбца Электронной таблицы. Функция имеет 2 аргумента. Обращение к функции выглядит следующим образом:

ColumnRename (Имя1, Имя2), где

Имя1 – старое имя столбца Электронной таблицы. Аргумент должен быть текстовой константой;

Имя2 – новое имя столбца Электронной таблицы. Аргумент должен быть текстовой константой.

Пример

AK1 – столбец в таблице

ColumnRename ('AK1', 'AK') // Столбец АК1 будет переименован в АК

Low

Функция Low в столбце Электронной таблицы находит номер первой ячейки с корректным числовым значением. Функция имеет 1 аргумент. Аргументом функции должно быть имя столбца Электронной таблицы.

Пример

N – переменная; AK – столбец в таблице

N = Low (AK) // Переменная N содержит номер первой числовой ячейки // в столбце АК

High

Функция High в столбце Электронной таблицы находит номер последней ячейки с корректным числовым значением. Функция имеет 1 аргумент. Аргументом функции должно быть имя столбца Электронной таблицы.

Пример

N – переменная; AK – столбец в таблице

N = High (AK) // Переменная N содержит номер последней числовой ячейки // в столбце АК

Length

Функция Length определяет количество ячеек с корректными числовыми значениями в столбце Электронной таблицы. Функция имеет 1 аргумент. Аргументом функции должно быть имя столбца Электронной таблицы.

Пример

N – переменная; AK – столбец в таблице

N = Length (AK) // Переменная N содержит количество корректных // числовых ячеек в столбце АК

184

LnGamma

Функция LnGamma определяет значение натурального логарифма гаммафункции (эйлерова интеграла 1-го рода). Функция имеет один аргумент. Аргументом функции может быть числовая константа, внутренняя переменная программы, ячейка Электронной таблицы, столбец Электронной таблицы, элемент блока параметров. Значение аргумента должно находиться в диапазоне от 0.000001 до

1000000000.

Пример

A – переменная

А = Exp (LnGamma (1.0)) // Переменная A = Гамма (1.0)

Normal

Функция Normal вычисляет вероятностный интеграл от плотности нормального распределения (распределения К. Гаусса) с нулевым средним и единичной дисперсией. Функция имеет один аргумент. Аргументом функции может быть числовая константа, внутренняя переменная программы, ячейка Электронной таблицы, элемент блока параметров. Функция возвращает значение вероятности в долях единицы, при этом интегрирование выполняется от -inf (минус бесконечность) до x.

Пример

P – переменная

P = Normal (3.0) // P = 0.998650101968434

InvertNormal

Функция InvertNormal вычисляет верхние процентные точки стандартного нормального распределения. По данному p (задается в долях единицы) функция вычисляет значение x, при котором

P { X >= x } = p.

Функция имеет один аргумент. Аргументом функции может быть числовая константа, внутренняя переменная программы, ячейка Электронной таблицы, элемент блока параметров. Значение аргумента должно находиться в пределях от

0.000000000000001 до 0.999999999999999.

Пример

X – переменная

X = InvertNormal (0.998650101968434) // X = 2.99999999999994

Hi2

Функция Hi2 вычисляет вероятностный интеграл от плотности хи-квадрат распределения (распределения К. Пирсона) с v степенями свободы. Функция имеет два аргумента. Обращение к функции выглядит следующим образом:

p = Hi2 (x, v),

185

где x – нижний предел интегрирования (верхний предел равен плюс бесконечность). Аргументом может быть числовая константа, внутренняя переменная программы, ячейка Электронной таблицы, элемент блока параметров. Значение аргумента должно быть больше равно нулю;

v – число степеней свободы. Аргументом может быть числовая константа, внутренняя переменная программы, ячейка Электронной таблицы, элемент блока параметров. Значение аргумента должно быть целым числом и находиться в диа-

пазоне от 1 до 2000000000;

Пример

P – переменная

P = Hi2 (30.0, 50) // P = 0.98883521972845

InvertHi2

Функция InvertHi2 вычисляет верхние процентные точки хи-квадрат распределения с v степенями свободы. По данному p функция вычисляет значение x, при котором

P { Xи2 (v) >= x } = p.

Функция имеет два аргумента. Обращение к функции выглядит следующим образом:

x = InvertHi2 (p, v),

где p – вероятность в долях единицы. Аргументом может быть числовая константа, внутренняя переменная программы, ячейка Электронной таблицы, элемент блока параметров. Значение аргумента должно находиться в пределах от

0.00000000000001 до 0.99999999999999;

v – число степеней свободы. Аргументом может быть числовая константа, внутренняя переменная программы, ячейка Электронной таблицы, элемент блока параметров. Значение аргумента должно быть целым числом и находиться в диа-

пазоне от 1 до 2000000000;

Пример

X – переменная

X = InvertHi2 (0.98883521972845, 50) // X = 30.0000000000001

Student

Функция Student вычисляет вероятностный интеграл t-распределения (распределения Стьюдента) с n степенями свободы. Функция имеет два аргумента. Обращение к функции выглядит следующим образом:

p = Student (x, n),

где x – верхний предел интегрирования (нижний предел равен минус бесконечность). Аргументом может быть числовая константа, внутренняя переменная программы, ячейка Электронной таблицы, элемент блока параметров. Значение аргумента не ограничено;

186

n – число степеней свободы. Аргументом может быть числовая константа, внутренняя переменная программы, ячейка Электронной таблицы, элемент блока параметров. Значение аргумента должно быть целым числом и находиться в диа-

пазоне от 1 до 2000000000;

Пример

P – переменная

P = Student (4.0, 20) // P = 0.999648238353436

InvertStudent

Функция InvertStudent вычисляет верхние процентные точки t-распределения с n степенями свободы. По данному p функция вычисляет значение x, при котором

P { t (n) >= x } = p.

Функция имеет два аргумента. Обращение к функции выглядит следующим образом:

x = InvertStudent (p, n),

где p – вероятность в долях единицы. Аргументом может быть числовая константа, внутренняя переменная программы, ячейка электронной таблицы, элемент блока параметров. Значение аргумента должно находиться в пределах от

0.000000000000001 до 0.999999999999999;

n – число степеней свободы. Аргументом может быть числовая константа, внутренняя переменная программы, ячейка Электронной таблицы, элемент блока параметров. Значение аргумента должно быть целым числом и находиться в диа-

пазоне от 1 до 2000000000;

Пример

X, P – переменная

P = 0.999648238353436

X = InvertStudent (1–P, 20) // X = 4.00000000000036

Fisher

Функция Fisher вычисляет вероятностный интеграл F-распределения (распределения Р.Фишера) с v1 и v2 степенями свободы. Функция имеет три аргумента. Обращение к функции выглядит следующим образом:

p = Fisher (x, v1, v2),

где x – нижний предел интегрирования (верхний предел равен плюс бесконечность). Аргументом может быть числовая константа, внутренняя переменная программы, ячейка Электронной таблицы, элемент блока параметров. Значение аргумента должно быть больше или равно нулю;

v1 – число степеней свободы. Аргументом может быть числовая константа, внутренняя переменная программы, ячейка Электронной таблицы, элемент блока параметров. Значение аргумента должно быть целым числом и находиться в диа-

пазоне от 1 до 2000000000;

187

v2 – число степеней свободы. Аргументом может быть числовая константа, внутренняя переменная программы, ячейка Электронной таблицы, элемент блока параметров. Значение аргумента должно быть целым числом и находиться в диа-

пазоне от 1 до 2000000000;

Пример

P – переменная

P = Fisher (6.3, 3, 32) // P = 0.0017559719113603

InvertFisher

Функция InvertFisher вычисляет верхние процентные точки F-распределения со степенями свободы v1 и v2. Для данного p функция вычисляет значение x, при котором

P { F (v1, v2) >= x } = p.

Функция имеет три аргумента. Обращение к функции выглядит следующим образом:

x = InvertFisher (p, v1, v2),

где p – вероятность в долях единицы. Аргументом может быть числовая константа, внутренняя переменная программы, ячейка Электронной таблицы, элемент блока параметров. Значение аргумента должно находиться в пределах от

0.000000000000001 до 0.999999999999999;

v1 – число степеней свободы. Аргументом может быть числовая константа, внутренняя переменная программы, ячейка Электронной таблицы, элемент блока параметров. Значение аргумента должно быть целым числом и находиться в диа-

пазоне от 1 до 2000000000;

v2 – число степеней свободы. Аргументом может быть числовая константа, внутренняя переменная программы, ячейка Электронной таблицы, элемент блока параметров. Значение аргумента должно быть целым числом и находиться в диа-

пазоне от 1 до 2000000000;

Пример

X – переменная

X = InvertFisher (0.0017559719113603, 3, 32) // X = 6.29999999999985

Геофизические функции

Chart

Геофизическая функция Chart выполняет расчет по одной из палеток, находящейся в текущем альбоме палеток. Функция Chart имеет пять аргументов. Обращение к функции Chart выглядит следующим образом:

Chart ('Имя палетки', Имя1, Имя2, Имя3, Имя4),

где 'Имя палетки' – имя палетки используемой для расчета; Имя1 и Имя2 – имена столбцов таблицы с исходными данными для расчета;

188

Имя3 и Имя4 – имена столбцов таблицы, в которые будет помещен результат расчета. В случае отсутствия в таблице столбцов с именами Имя3 и (или) Имя4 эти столбцы будут автоматически добавлены в таблицу.

Пример

Chart ('Палетка Кп (АК, НКТ) ', W, АК, Литология, Кп)

Nomogram

Геофизическая функция Nomogram выполняет расчет по одной из номограмм, находящейся в текущем альбоме палеток. Функция Nomogram имеет четыре аргумента. Обращение к функции Nomogram выглядит следующим образом:

Nomogram ('Имя номограммы', Имя1, Имя2, Имя3),

где 'Имя номограммы' – имя номограммы используемой для расчета; Имя1 и Имя2 – имена столбцов таблицы с исходными данными для расчета;

Имя3 – имя столбца таблицы, в который будет помещен результат расчета. В случае отсутствия в таблице столбца с именем Имя3 этот столбец будет автоматически добавлен в таблицу.

Пример

Nomogram ('Кпр_Кп_Апс (Комсомольское м-е) ', Кп, Апс, Кпр)

Relation

Геофизическая функция Relation выполняет расчет по одной из зависимостей, находящейся в текущем альбоме палеток. Функция Relation имеет три аргумента. Обращение к функции Relation выглядит следующим образом:

Relation ('Имя зависимости', Имя1, Имя2),

где 'Имя зависимости' – имя зависимости используемой для расчета; Имя1 – имя столбца таблицы с исходными данными для расчета;

Имя2 – имя столбца таблицы, в который будет помещен результат расчета. В случае отсутствия в таблице столбца с именем Имя2 этот столбец будет автоматически добавлен в таблицу.

Пример

Relation ('Зависимость Р_Кп', Кп, Р)

ArithMean

Функция ArithMean находит среднее арифметическое в столбце Электронной таблицы. Функция имеет 1 аргумент. Аргументом функции должно быть имя столбца Электронной таблицы.

Пример А – переменная; Кп – столбец в таблице

A = ArithMean (Кп) // Переменная A содержит среднее арифметическое // значение столбца Кп

189

ArithMeanByIndex

Функция ArithMeanByIndex находит среднее арифметическое в столбце Электронной таблицы с использованием в качестве фильтра целочисленного индекса. Функция имеет 3 аргумента. Обращение к функции выглядит следующим образом:

A = ArithMeanByIndex (Имя1, Имя2, Индекс),

где Имя1 – имя столбца Электронной таблицы, для которого будет производиться расчет среднего арифметического;

Имя2 – имя столбца Электронной таблицы, содержащего целочисленные индексы;

Индекс – числовая константа, внутренняя переменная программы, ячейка Электронной таблицы, элемент блока параметров. Значение аргумента должно быть целым числом. Этот аргумент является фильтром, который отбирает для расчета среднего арифметического только те элементы из столбца Имя1, для которых соответствующие значения элементов столбца Имя2 равны Индексу.

Пример А – переменная; Кп – столбец в таблице, содержащий коэффициенты порис-

тости; ХН – столбец в таблице, содержащий индексы флюидов от 1 до 5, при этом 1 соответствует – воде, 2 – воде с нефтью, 3 – нефти с водой, 4 – нефти, 5 – газу.

с

сВ этом фрагменте программы определяется среднее арифметическое

сзначение коэффициента пористости для нефтяной части залежи

с

A = ArithMeanByIndex (Кп, ХН, 4)

GeomMean

Функция GeomMean находит среднее геометрическое в столбце Электронной таблицы. Функция имеет 1 аргумент. Аргументом функции должно быть имя столбца Электронной таблицы.

Пример

G – переменная; Кп – столбец в таблице

G = GeomMean (Кп) // Переменная G содержит среднее геометрическое // значение столбца Кп

GeomMeanByIndex

Функция GeomMeanByIndex находит среднее геометрическое в столбце Электронной таблицы с использованием в качестве фильтра целочисленного индекса. Функция имеет 3 аргумента. Обращение к функции выглядит следующим образом:

G = GeomMeanByIndex (Имя1, Имя2, Индекс),

где Имя1 – имя столбца Электронной таблицы, для которого будет производиться расчет среднего геометрического;

190