Я пытаюсь решить систему нелинейных уравнений с использованием fsolve; скажемfsolve Matlab сходится *, но * кажется, дает неправильное решение
F (x; lambda) = 0, где lambda - вектор параметров, а x - вектор, который я хочу решить.
Я использую fsolve Matlab.
У меня есть 2 значения параметра лямбда, которые я хочу решить для системы. Для одного значения лямбда я получаю решение, которое, похоже, хорошо.
Для другого значения лямбда я снова получаю решение (выход matlab с флагом 1. Однако я знаю, что это не настоящее решение. Например, я знаю, что некоторые из измерений x должны быть равны каждому другие, и это не так в решении, которое я получаю от fsolve.
Я пробовал как область доверия, так и алгоритм levenberg-marquardt, и я не получаю никаких лучших результатов (явное принуждение этих x то же, все же, кажется, дает решения, которые не согласуются с тем, что я ожидал бы от свойств системы)
Мой вопрос: делают ли алгоритмы, используемые fsolve, какой-либо стабильностью системы? Может ли быть, что изменение параметра lambda во втором случае, о котором я упоминал выше, я делаю систему неустойчивой и может ли fsolve с трудом решить ее правильно?
Спасибо, Джордж
Нелинейные задачи только сходятся к локальному минимуму. Чтобы сходиться к глобальному минимуму, вы должны обеспечить хорошее начальное предположение. – Justin
Вы пытались добавить свои предположения к модели? Например, добавьте ограничение, которое делает размеры x равными. – nneonneo
@nneonneo да, у меня есть, и это, похоже, не помогает. Мой вопрос скорее о том, есть ли условия, при которых алгоритмы доверия доверия, используемые fsolve, как известно, терпят неудачу – George