ИДЗ ДифУры 2024 / Связанные маятники обратная задача
.docxКОЛЕБАНИЯ СВЯЗАННЫХ МАЯТНИКОВ
Перед нами стоит задача восстановления исходных параметров модели при помощи метода Гаусса-Ньютона.
Нашей
целью является определение параметров
,
,
,
на основе наблюдаемых значений углов
отклонений маятников. На исходные данные
был наложен шум в размере 1%.
Метод Ньютона-Гаусса использует итерационный процесс, а для решения СЛАУ на каждой итерации применяется LU-разложение.
Описание программы:
solve_system: функция метода Рунге-Кутты 4-го порядка решает прямую задачу.
residuals: функция невязки, которая вычисляет разницу между модельными (полученными из решения системы) и наблюдаемыми данными (зашумленными измерениями).
lu_decomposition: функция, реализующая LU-разложение матриц.
lu_solve: функция решения СЛАУ с использованием LU-разложения.
noisy: функция добавляет случайный шум к истинным параметрам в диапазоне 1%.
gauss_newton: функция, реализующая метод Гаусса-Ньютона, который минимизирует невязки между наблюдаемыми и модельными значениями. В начале функции накладывается шум на истинные параметры в размере 1% с помощью функции noisy.
На каждой итерации вычисляются невязки и вычисляется матрица Якоби, которая представляет собой производные невязки по параметрам.
Далее
с помощью LU-разложения решается система
линейных уравнений (
)
для уточнения значения параметров.
LU-разложение
представляет собой представление
матрицы
в виде
,
где
– нижнетреугольная матрица с еденичной
диагональю, а
– верхнетреугольная матрица.
Далее
решается СЛАУ
.
Т.к.Ax=bТ.
известно LU-разложение матрицы A
,
тоA=LU
система может быть записана как
.
Эта система решается в 2 шага: системой
и
.
LUx=b.
Итерации продолжаются до тех пор, пока не будет достигнута сходимость (норма изменения параметров меньше эпсилон) или не будет достигнуто максимальное количество итераций.
В основном коде задаются начальные условия initial_conditions и истинные параметры системы true_params. Затем решается система уравнений с истинными параметрами методом Рунге-Кутты 4-го порядка. После к результатам добавляется шум. В конце вызывается функция метода Гаусса-Ньютона с зашумленными данными.
Пример работы программы:
