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

ИДЗ ДифУры 2024 / Связанные маятники обратная задача

.pdf
Скачиваний:
0
Добавлен:
09.09.2026
Размер:
486 Кб
Скачать
КОЛЕБАНИЯ СВЯЗАННЫХ МАЯТНИКОВ
Перед нами стоит задача восстановления исходных параметров модели
при помощи метода Гаусса-Ньютона.
Нашей целью является определение параметров 𝑚1, 𝑚2, 𝑙1, 𝑙2 на основе
наблюдаемых значений углов отклонений маятников. На исходные данные был
наложен шум в размере 1%.
Метод Ньютона-Гаусса использует итерационный процесс, а для
решения СЛАУ на каждой итерации применяется LU-разложение.
Описание программы:
solve_system: функция метода Рунге-Кутты 4-го порядка решает прямую
задачу.
residuals: функция невязки, которая вычисляет разницу между
модельными (полученными из решения системы) и наблюдаемыми данными
(зашумленными измерениями).
lu_decomposition: функция, реализующая LU-разложение матриц.
lu_solve: функция решения СЛАУ с использованием LU-разложения.
noisy: функция добавляет случайный шум к истинным параметрам в
диапазоне 1%.
gauss_newton: функция, реализующая метод Гаусса-Ньютона, который минимизирует невязки между наблюдаемыми и модельными значениями. В начале функции накладывается шум на истинные параметры в размере 1% с
помощью функции noisy.
На каждой итерации вычисляются невязки и вычисляется матрица
Якоби, которая представляет собой производные невязки по параметрам.
Далее с помощью LU-разложения решается система линейных уравнений (𝐽𝑇𝐽𝛥 = 𝐽𝑇𝑟) для уточнения значения параметров.
LU-разложение представляет собой представление матрицы 𝐴 в виде 𝐴 = 𝐿 ⋅ 𝑈, где 𝐿 – нижнетреугольная матрица с еденичной диагональю, а 𝑈 – верхнетреугольная матрица.
Далее решается СЛАУ 𝐴𝑥 = 𝑏. Т.к. известно LU-разложение матрицы 𝐴, то система может быть записана как 𝐿𝑈𝑥 = 𝑏. Эта система решается в 2 шага: системой 𝐿𝑦 = 𝑏 и 𝑈𝑥 = 𝑦.
Итерации продолжаются до тех пор, пока не будет достигнута сходимость (норма изменения параметров меньше эпсилон) или не будет
достигнуто максимальное количество итераций.
В основном коде задаются начальные условия initial_conditions и истинные параметры системы true_params. Затем решается система уравнений с истинными параметрами методом Рунге-Кутты 4-го порядка. После к результатам добавляется шум. В конце вызывается функция метода Гаусса-
Ньютона с зашумленными данными.
Пример работы программы: