Нелинейное аппроксимирование кривыми с lsqcurvefit

lsqcurvefit позволяет легко аппроксимировать параметризованные нелинейные функции к данным. Можно также использовать lsqnonlin; lsqcurvefit это просто удобный способ позвонить lsqnonlin для аппроксимирования кривыми.

В этом примере вектор xdata представляет 100 точек данных и вектор ydata представляет связанные измерения. Сгенерируйте данные для задачи.

rng(5489,'twister') % reproducible
xdata = -2*log(rand(100,1));
ydata = (ones(100,1) + .1*randn(100,1)) + (3*ones(100,1)+...
    0.5*randn(100,1)).*exp((-(2*ones(100,1)+...
   .5*randn(100,1))).*xdata);

Смоделированная связь между xdata и ydata является

ydatai=a1+a2exp(-a3xdatai)+εi.

Код генерирует xdata из 100 независимых выборок экспоненциального распределения со средним 2. Код генерирует ydata из своего определяющего уравнения используя   a = [1;3;2], возмущается добавлением нормальных отклонений со стандартными отклонениями [0.1;0.5;0.5].

Цель - найти параметры aˆi, i = 1, 2, 3, для модели, которая наилучшим образом соответствует данным.

Для порядка параметров данным с помощью lsqcurvefitнеобходимо задать функцию аппроксимации. Определите функцию аппроксимации predicted как анонимная функция.

predicted = @(a,xdata) a(1)*ones(100,1)+a(2)*exp(-a(3)*xdata); 

Чтобы подогнать модель к данным, lsqcurvefit нужна начальная оценка a0 параметров.

a0 = [2;2;2];

Функции lsqcurvefit чтобы найти оптимальные параметры aˆi.

[ahat,resnorm,residual,exitflag,output,lambda,jacobian] =...
   lsqcurvefit(predicted,a0,xdata,ydata);
Local minimum possible.

lsqcurvefit stopped because the final change in the sum of squares relative to 
its initial value is less than the value of the function tolerance.

Исследуйте полученные параметры.

disp(ahat)
    1.0169
    3.1444
    2.1596

Подгоняемые значения ahat находятся в пределах 8% от   a = [1;3;2].

Если у вас есть программное обеспечение Statistics and Machine Learning Toolbox™, используйте nlparci функция для генерации доверительных интервалов для ahat оценка.

См. также

| (Statistics and Machine Learning Toolbox)

Похожие темы