Для решения задачи обобщенной нелинейной регрессии в MATLAB имеется функция lsqnonlin(), возвращающая решение задачи нахождения точки минимума функции f(x)
где в общем случае f(x) – вектор-функция, х – вектор-столбец искомых переменных, L – некоторая константа.
х0 – начальная точка, с которой начинается процесс поиска минимума функции;
lb, ub – соответственно левая и правая границы отрезка, на котором определяется минимум функции;
options – параметр, задающий режим работы функции оптимизирующей функции (перечень возможных значений данного параметра приведен в Help MATLAB в главе Optimization Toolbox в разделе Optimization Parameters);
P1, P2, … – параметры, от которых зависит функция fun.
Рассмотрим пример, демонстрирующий использование данной функции для нахождения параметров функции
» % листинг m-файла FABXCX2;
function z=FABXCX2(Coeff,vx,vy);
k=1:length(vx);
z=vy–exp(Coeff(1)+Coeff(2)*vx+Coeff(3)*vx.^2);
где оператор .^ – означает поэлементное возведение в степень