Решение прямой кинематической задачи для многослойного разреза
Автор: 89249931827 • Апрель 18, 2022 • Лабораторная работа • 404 Слов (2 Страниц) • 219 Просмотры
Отчет
По лабораторной работе №2
«Решение прямой кинематической задачи для многослойного разреза»
Оглавление
Задача 3
Описание решения задачи 3
Алгоритм программы 3
Код программы 3
Результаты тестирования программы 5
Построение графиков 5
Вывод 6
Задача
– Рассчитать годографы основных типов продольных сейсмических волн, возникающих в многослойном разрезе;
– отразить результаты в отчёте по лабораторной работе.
Описание решения задачи
Для выполнения данной задачи необходимо написать программу в среде Python, которая считает значения по формулам, используя импорт динамических библиотек, и сохраняет результаты в файл.
Алгоритм программы
Импортируем необходимые библиотеки, функции которых нам потребуются, вбиваем исходные данные и заводим алгоритм в цикл для удобного построения графиков, далее пишем формулы.
Код программы
import cmath
import math
import numpy as np
h1 = 186
V1 = 2142
h2 = 410
V2 = 3225
h3 = 462
a = 0.3
V3 = 4235
h4 = 659
x4 = 650
x_min = -1100
x_max = 1100
step = 100
for x in range(x_min, x_max, step ):
t = cmath.sqrt(x/V1)
t1 = math.sqrt(x*x+4*h1*h1)/V1
V_eff1 = (h1+h2)/(h1/V1+h2/V2)
t2 = math.sqrt(x*x+4*math.pow(h1+h2, 2))/V_eff1
V_eff2 = (h1 + h2+h3) / (h1 / V1 + h2 / V2 + h3/V3)
t3 = math.sqrt(x*x+4*math.pow(h1+h2+h3, 2))/V_eff2
ta = math.sqrt(x*x + 4 * (h1+h2+h3) + 4 * (h1+h2+h3) * math.sin(a)) / V_eff2
t14 = math.sqrt(x*x + 16 * math.pow(h1, 2))/ V1
t24 = math.sqrt(x*x + 16 * math.pow(h1+h2, 2)) / V_eff1
t34 = math.sqrt(x*x + 16 * math.pow(h1+h2+h3, 2))/ V_eff2
fi = math.asin(V1/V3)
t0 = 2*h1/V1*math.cos(fi)
x0 = 2 *h1*math.tan(fi)
tGV = (t0 + ( math.fabs(x) - x0))/V3
tG = (math.sqrt(math.pow(x4, 2)+math.pow(h4, 2))+ math.sqrt(math.pow(math.fabs(x)+x4, 2)+ h4*h4)) / (h4 / (h1/V1+h2/V2+(h4-h2-h1)/V3))
...