Решите нелинейный подбор кривых (подбор кривой данных) проблемы в смысле наименьших квадратов
Решатель нелинейного метода наименьших квадратов
Найдите коэффициенты x, которые решают задачу
учитывая входные данные xdata и наблюдаемый выход ydata, где xdata и ydata являются матрицами или векторами, и F (x, xdata) являются функцией с векторным знаком или с матричным знаком одного размера с ydata.
Опционально, компоненты x могут иметь нижние и верхние границы lb и ub. Аргументы x, lb и ub могут быть векторами или матрицами; смотрите Матричные аргументы.
lsqcurvefit функционируйте использует тот же алгоритм как lsqnonlin. lsqcurvefit просто обеспечивает удобный интерфейс для соответствующих данным проблем.
Вместо того, чтобы вычислять сумму квадратов, lsqcurvefit требует, чтобы пользовательская функция вычислила функцию с векторным знаком
запускается в 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 использует алгоритм Levenberg-Marquardt.
lsqcurvefit может решить задачи с комплексным знаком непосредственно. Обратите внимание на то, что связанные ограничения не целесообразны для комплексных чисел. Для комплексной проблемы со связанными ограничениями, разделение переменные в действительные и мнимые части. Сочтите целесообразным Модель к Данным с комплексным знаком.
Расчет перед формирователем, используемый в предобусловленной части метода сопряженных градиентов доверительной области отражающий метод, формирует JTJ (где J является якобиевской матрицей) прежде, чем вычислить предварительный формирователь. Поэтому строка J со многими ненулями, который приводит к почти плотному продукту JTJ, может привести к процессу дорогостоящего решения для больших проблем.
Если компоненты x имеют не верхний (или ниже) границы, lsqcurvefit предпочитает что соответствующие компоненты ub (или lb) будьте установлены в inf (или -inf для нижних границ) в противоположность произвольному, но положительному очень большому (или отрицательный для нижних границ) номер.
Можно использовать доверительную область отражающий алгоритм в lsqnonlin, lsqcurvefit, и fsolve с маленьким - к проблемам средней шкалы, не вычисляя якобиан в fun или обеспечение якобиевского шаблона разреженности. (Это также применяется к использованию fmincon или fminunc не вычисляя Гессиан или предоставляя шаблон разреженности Гессиана.), Как маленький мал - к средней шкале? Никакой абсолютный ответ не доступен, когда это зависит от суммы виртуальной памяти в вашей настройке компьютерной системы.
Предположим, что ваша проблема имеет m уравнения и n неизвестные. Если команда J = sparse(ones(m,n)) вызывает Out of memory ошибка на вашей машине, затем это - конечно, слишком большая проблема. Если это не приводит к ошибке, проблема может все еще быть слишком большой. Можно узнать только путем выполнения его и наблюдения, запускается ли MATLAB в сумме виртуальной памяти, доступной в системе.
Levenberg-Marquardt и доверительная область отражающие методы основаны на алгоритмах нелинейного метода наименьших квадратов, также используемых в fsolve.
Доверительная область по умолчанию отражающий алгоритм является методом доверительной области подпространства и основан на внутреннем отражающем методе Ньютона, описанном в [1] и [2]. Каждая итерация включает приближенное решение большой линейной системы с помощью метода предобусловленных методов сопряженных градиентов (PCG). Смотрите Доверительную область Отражающие Наименьшие квадраты.
Метод Levenberg-Marquardt описан в ссылках [4], [5], и [6]. См. Метод Levenberg-Marquardt.
Оптимизировать задача Live Editor обеспечивает визуальный интерфейс для lsqcurvefit.
[1] Коулман, Т.Ф. и И. Ли. “Внутренний, Доверительный Подход области для Нелинейной Минимизации Согласно Границам”. SIAM Journal на Оптимизации, Издании 6, 1996, стр 418–445.
[2] Коулман, Т.Ф. и И. Ли. “На Сходимости Отражающих Методов Ньютона для Крупномасштабной Нелинейной Минимизации Согласно Границам”. Математическое программирование, Издание 67, Номер 2, 1994, стр 189–224.
[3] Деннис, J. E. “Нелинейный метод наименьших квадратов” младший. Состояние в Числовом Анализе, редакторе Д. Джейкобсе, Academic Press, стр 269–312.
[4] Levenberg, K. “Метод для Решения Определенных проблем в Наименьших квадратах”. Ежеквартальная Прикладная математика 2, 1944, стр 164–168.
[5] Marquardt, D. “Алгоритм для Оценки Наименьших квадратов Нелинейных Параметров”. Прикладная математика SIAM Journal, Издание 11, 1963, стр 431–441.
[6] Moré, J. J. “Алгоритм Levenberg-Marquardt: Реализация и Теория”. Числовой Анализ, редактор Г. А. Уотсон, Примечания Лекции в Математике 630, Springer Verlag, 1977, стр 105–116.
[7] Moré, J. J. бакалавр наук Гарбоу и К. Э. Хиллстром. Руководство пользователя для MINPACK 1. Национальная лаборатория Аргонна, Rept. ANL–80–74, 1980.
[8] Пауэлл, M. J. D. “Стандартная подпрограмма Фортрана для Решения Систем Нелинейных Алгебраических уравнений”. Численные методы для Нелинейных Алгебраических уравнений, П. Рабиновица, редактора, Ch.7, 1970.