Лучший способ решить систему нелинейных уравнений, где неизвестными являются векторы?

У меня есть следующие уравнения, которые описывают геометрическую обратную задачу, которую я хотел бы решить:

введите здесь описание изображения

В общем, задача трехмерная, поэтому для каждого из перечисленных векторных уравнений я получаю три уравнения (по одному на каждое направление). Pstar_i, n_r,i, n_d и P — неизвестные векторы. i обозначает точку данных, которую я измеряю (для каждой точки данных я измеряю n_s,i и R_i и ввожу неизвестные Pstar_i< /strong> и n_r,i). Таким образом, каждая точка данных вводит 6 неизвестных компонентов и 9 компонентных уравнений. Следовательно, если у меня есть две точки данных, система становится разрешимой (поскольку в этом случае у меня есть 18 компонентных уравнений и 18 неизвестных). Однако, поскольку данные, вероятно, будут искажены шумом и прочим, я измерю более 2 точек и найду наилучшее соответствие.

Насколько я понимаю, это система нелинейных векторных уравнений. Я попытался записать уравнение для каждого компонента, но это действительно отнимает много времени и создает очень трудный для чтения код. Вы можете найти 2D-пример в мой предыдущий вопрос, где я решил эту систему с помощью python scipy fsolve.

Мой вопрос: есть ли лучший способ сделать это? Существует ли числовой решатель, который может принимать векторные уравнения, как показано на изображении выше, без необходимости записывать каждый компонент? Или вообще есть другая стратегия решения, которую я должен использовать, чтобы найти неизвестные? Спасибо заранее


person masteryoda436    schedule 11.04.2021    source источник