Решение задач нелинейной подгонки кривой (подгонки данных) в смысле наименьших квадратов
Нелинейный решатель наименьших квадратов
Найти коэффициенты x, которые решают проблему
ydatai) 2,
заданные входные данные xdata и наблюдаемые выходные ydata, где xdata и ydata являются матрицами или векторами, а F (x, xdata) - матрично-значимая или векторнозначная функция того же размера, что и ydata.
Необязательно, компоненты x могут иметь нижнюю и верхнюю границы 1b и ub. Аргументами x, lb и ub могут быть векторы или матрицы; см. Аргументы матрицы.
lsqcurvefit функция использует тот же алгоритм, что и lsqnonlin. lsqcurvefit просто обеспечивает удобный интерфейс для проблем с подгонкой данных.
Вместо вычисления суммы квадратов, lsqcurvefit требуется определяемая пользователем функция для вычисления функции с векторными значениями
x, xdata (k))].
начинается в x = lsqcurvefit(fun,x0,xdata,ydata)x0 и находит коэффициенты x для наилучшего соответствия нелинейной функции fun(x,xdata) к данным ydata (в смысле наименьших квадратов). ydata должен быть того же размера, что и вектор (или матрица) F возвращено fun.
Примечание
Передача дополнительных параметров объясняет, как передать дополнительные параметры векторной функции fun(x), при необходимости.
определяет набор нижних и верхних границ для конструктивных переменных в x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub)x, чтобы решение всегда находилось в диапазоне lb ≤ x ≤ ub. Можно исправить компонент решения x(i) путем указания lb(i) = ub(i).
Примечание
Если указанные входные границы для проблемы противоречивы, вывод x является x0 и выходные данные resnorm и residual являются [].
Компоненты x0 которые нарушают границы lb ≤ x ≤ ub возвращаются к внутренней части поля, определяемой границами. Компоненты, соответствующие границам, не изменяются.
Алгоритм, отражающий область доверия, не решает неопределенные системы; он требует, чтобы число уравнений, то есть размерность строки F, было по меньшей мере таким же большим, как число переменных. В случае с неопределенностью, lsqcurvefit использует алгоритм Левенберга - Марквардта.
lsqcurvefit может решать сложные задачи напрямую. Нет, что связанные ограничения не имеют смысла для сложных значений. Для сложной проблемы с ограничивающими ограничениями разбейте переменные на вещественные и мнимые части. См. раздел Подгонка модели к данным со сложным значением.
Вычисление устройства предварительного кондиционирования, используемое в предварительно кондиционированной сопряженной градиентной части метода отражения области доверия, формирует JTJ (где J - матрица Якобиана) перед вычислением устройства предварительного кондиционирования. Поэтому ряд J со многими ненулевыми значениями, что приводит к получению почти плотного продукта JTJ, может привести к дорогостоящему процессу решения больших проблем.
Если компоненты x не имеют верхних (или нижних) границ, lsqcurvefit предпочитает, чтобы соответствующие компоненты ub (или lb) иметь значение inf (или -inf для нижних границ) в отличие от произвольного, но очень большого положительного (или отрицательного для нижних границ) числа.
Алгоритм отражения области доверия можно использовать в lsqnonlin, lsqcurvefit, и fsolve с малыми и средними проблемами без вычисления Jacobian в fun или предоставление якобианской модели разреженности. (Это также относится к использованию fmincon или fminunc без вычисления гессенского или предоставления гессенского шаблона разреженности.) Насколько малыми являются малые и средние размеры? Абсолютный ответ недоступен, так как зависит от объема виртуальной памяти в конфигурации компьютера.
Предположим, что у вашей проблемы m уравнения и n неизвестные. Если команда J = sparse(ones(m,n)) вызывает Out of memory ошибка на вашем компьютере, то это, безусловно, слишком большая проблема. Если это не приведет к ошибке, проблема может быть слишком большой. Вы можете узнать, только запустив его и увидев, работает ли MATLAB в пределах объема виртуальной памяти, доступной в вашей системе.
Методы Левенберга-Марквардта и отражения области доверия основаны на нелинейных алгоритмах наименьших квадратов, также используемых в fsolve.
Алгоритм отражения области доверия по умолчанию является методом области доверия подпространства и основан на способе Ньютона с внутренним отражением, описанном в [1] и [2]. Каждая итерация включает в себя приблизительное решение большой линейной системы методом предварительно кондиционированных сопряженных градиентов (PCG). См. Доверие - Область - Отражающие наименьшие квадраты.
Метод Левенберга-Марквардта описан в ссылках [4], [5] и [6]. См. Метод Левенберга-Марквардта.
Задача «Оптимизировать интерактивный редактор» обеспечивает визуальный интерфейс для lsqcurvefit.
[1] Коулман, Т. Ф. и Я. Ли. «Подход» Внутренняя область, область доверия «для нелинейной минимизации с учетом ограничений». Журнал СИАМ по оптимизации, том 6, 1996, стр. 418-445.
[2] Коулман, Т. Ф. и Я. Ли. «О сходимости отражающих методов Ньютона для масштабной нелинейной минимизации, зависящей от границ». Математическое программирование, том 67, номер 2, 1994, стр. 189-224.
[3] Деннис, Дж. Э. младший «Нелинейные наименьшие квадраты». Состояние искусства в численном анализе, ред. Д. Джейкобс, Академическая пресса, стр. 269-312.
[4] Левенберг, К. «Метод решения некоторых проблем в наименьших квадратах». Ежеквартальная прикладная математика 2, 1944, с. 164-168.
[5] Марквардт, Д. «Алгоритм оценки нелинейных параметров методом наименьших квадратов». SIAM Journal Applied Mathematics, Vol. 11, 1963, pp. 431-441.
[6] Море, Дж. Дж. «Алгоритм Левенберга-Марквардта: реализация и теория». Численный анализ, ред. Г. А. Уотсон, лекционные записки по математике 630, Springer Verlag, 1977, с. 105-116.
[7] Море, Дж. Дж., Б. С. Гарбоу и К. Э. Хиллстрем. Руководство пользователя для MINPACK 1. Аргоннская национальная лаборатория, Репт. ANL-80-74, 1980.
[8] Пауэлл, М. Дж. Д. «Подпрограмма Фортрана для решения систем нелинейных алгебраических уравнений». Численные методы нелинейных алгебраических уравнений, П. Рабиновиц, изд., Ch.7, 1970.