Лапласово сглаживание для обратной задачи в питоне - PullRequest
0 голосов
/ 18 мая 2019

В настоящее время я работаю над обратной задачей, написанной на python, в которой наблюдаемые данные GPS используются для определения смещения под землей (например, землетрясение).Смещение под землей можно дискретизировать в сетке, а уравнение, описывающее эти проблемы, можно записать в виде:

G(n*n) * S(n*1) =  U(n*1)    [1]

Где G - наша модельная матрица, описывающая проблему, S - смещение под землейвектор, а U - вектор наблюдений поверхности.В этом случае n - это число точек сетки.

Для наказания «нефизических» решений мы можем упорядочить обратную задачу, предполагая, что смещение в точке сетки аналогично ее соседям через матрицу сглаживания Лапласа.С математической точки зрения мы хотим минимизировать лапласиан смещения, который с использованием матрицы можно записать в виде:

F(nxn) * S(n*1) =  0(n*1) [2]

, где F - матрица Лапласа, S - вектор столбца смещений, а «0» - нулевой столбец.вектор.n - количество точек сетки, используемых в инверсии.Оба уравнения [1] и [2] могут быть оптимизированы с помощью таких методов, как scipy.optimize.nnls, который используется в этом сценарии.

Проблема заключается в построении матрицы Лапласа, я не уверен, как мне следуетначать строить его;Есть какой-нибудь scipy или другой метод библиотеки, который может достичь того, что я хочу?Я искал некоторые методы в scipy для сглаживания Лапласа, которые используются для обработки изображений, но я не знаю, работают ли они для этого конкретного случая.Другой вариант - создание метода конечных разностей для лапласиана, но я не уверен, как мне начать его создавать.

Спасибо

1 Ответ

0 голосов
/ 02 июля 2019

Может быть NetworkX библиотека в Python может быть вариантом. Учитывая, что смещение под землей может быть дискретизировано в сетке, вы можете построить сеть G (N, E), где N - количество узлов в вашей сетке, а E - все возможные ребра, соединяющие ваши узлы N.

В каждом узле и ребре вы можете применить значение веса (например, показатель смещения). Кроме того, в NetworkX есть функция, связанная с вычислением матрицы Лапласа .

...