2

У меня есть система следующим образом:MATLAB - lsqnonlin для систем уравнений

A*(B-C-D) - (sqrt((E-x)^2 + (F-y)^2) - sqrt((G-x)^2 + (H-y)^2) = p 

A*(I-J-K) - (sqrt((L-x)^2 + (M-y)^2) - sqrt((N-x)^2 + (O-y)^2) = p 

Значения коэффициентов [АО] будут знать, и я пытаюсь оценить [х, у] (по минимизации значение р). Если необходимо, у меня есть исходное предположение [x0, y0].

Я не очень хорошо разбираюсь в работе с функциями в Matlab. Как я могу запрограммировать это (используя решение RLS - что заставило меня задуматься о lsqnonlin)? Должен ли я вообще использовать lsqnonlin?

Я использую MATLAB 2010b. Спасибо, парни.

PS: Иногда я использую дополнительное уравнение (подобное этим двум), вследствие чего система переопределяется. Будет ли он работать?

ответ

0

Использование lsqnonlin имеет смысл;

Учитывая документацию нотации (http://www.mathworks.fr/fr/help/optim/ug/lsqnonlin.html), функции являются следующие:

f1 = sqrt((E-x)^2 + (F-y)^2) + sqrt((G-x)^2 + (H-y)^2) + p - A(B-C-D) 
f2 = sqrt((L-x)^2 + (M-y)^2) - sqrt((N-x)^2 + (O-y)^2) + p - A(I-J-K) 

Solver будет минимизируют f1^2 + f2^2. Конечно, вы можете добавить дополнительные уравнения, но они не будут считаться жесткими ограничениями.

Если вы хотите, чтобы ваше решение применяло ограничения, вы должны иметь возможность сделать это с помощью fsolve.

Cheers