Skip to content

In this project we solve direct problem (DP) and inverse problem (IP) for ODE using linearization algorithm for representing the problem in Aq=f view in order to use SVD algorithm to get the final solution

Notifications You must be signed in to change notification settings

dklyuchinskiy/Solving-IP-for-ODE-using-linearization-and-SVD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

Solving-IP-for-ODE-using-linearization-and-SVD

In this project we solve direct problem (DP) and inverse problem (IP) for ODE using linearization algorithm for representing the problem in Aq=f view in order to use SVD algorithm to get the final solution

Рассмотрим прямую задачу, которая является задачей Коши для системы ОДУ:

x^(1)=B(x(t),φ)

x(0)=ψ

t∈(0,T) x∈R^N,φ∈R^M,ψ∈R^N

Обратной будет задача определения вектора параметров q=(φ,ψ)^T∈ R^(M+N) по данным измерений в фиксированных точках времени (полученных экспериментально или синтетически: решением прямой задачи с заранее известными параметрами)

x_n (t_k,φ,ψ)=x_n^k

k=1,…,K_n; n=1,…,N.

Решение прямой задачи будем записывать в виде x=x(t,φ,ψ), имея ввиду зависимость решения от вектора параметров φ и начальных данных ψ.

Не вдаваясь в подробности скажем, что текущая задача аппроксимируется и дискретизируется на сетке, а затем сводится с помощью линеаризации к системе Aq=f вида:

〖(A)〗((N * N_t )×(M + N) )=〖(A_1 |…| A(N_t))〗^T , где N_t - количество точек сетки

q - вектор неизвестных параметров, требуемых для нахождения (решение обратной задачи)

f - вектор данных, которые берутся экспериментально, или из решения прямой задачи с известными параметрами (синтетически)

Важно сказать, что в реальных случаях этих данных очень мало, и поэтому проводится их линейная интерполяция на узлы сетки.

Данная система решается SVD алгоритмом.

Стоить отметить, что из-за линеаризации и применения формулы Тейлора при построении алгоритма, в результате решения системы получается не сам вектор неизвестных параметров, а некоторая разница δq.

Поэтому данный алгоритм сворачивается в итерационный процесс, где на каждом шаге составляется линейная система, решается SVD алгоритмом, находится δq и затем, после прибавления к начальному приближению мы получаем уже вектор восстановленных (неизвестных) параметров q, который и сравнивается с точным вектором решений (известный заранее). Т.е. сравниваем по итерациям с точным решением:

  1. q_sol_0 = q_0 + δq_0

  2. q_sol_1 = q_sol_0 + δq_1

  3. q_sol_2 = q_sol_1 + δq_2

Итерации останавливаются, когда L2 норма разницы векторов q_sol_n и q_exact будет меньше заранее заданной точности eps.

About

In this project we solve direct problem (DP) and inverse problem (IP) for ODE using linearization algorithm for representing the problem in Aq=f view in order to use SVD algorithm to get the final solution

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages