Ошибка подбора Matlab с использованием lsqcurvefit

Я разрабатываю код, чтобы привести уравнение Гомперца в соответствие с кривой роста бактерий, и практикуюсь с некоторыми примерами данных, приведенными на следующем веб-сайте:

http://www.math.tamu.edu/~phoward/m442/ia3sol.pdf.

Согласно этому коду соответствие должно почти соответствовать данным (график приведен на веб-странице выше, стр. 3). Однако когда я запускаю код, фактические данные отображаются правильно, но подгонка lsqcurve очень плохо подходит и выдает следующее сообщение:

Local minimum possible.

lsqcurvefit stopped because the size of the current step is less than
the default value of the step size tolerance.

Что-то я делаю не так?

Спасибо за ваше время,

Лаура

1 ответ

Решение

Проблема заключается в связанном документе.

Функция Гомперца параметризуется следующим образом:

%with parameters p(1) = K and p(2) = initial population
%p(3) = r.
V = p(1).*(p(2)/p(1)).^exp(-p(3)*t);

Однако начальные параметры для подгонки кривой приведены для другого упорядочения параметров в p вектор ([r, K, p0] вместо [K, p0, r]). Кроме того, вектор результата также испорчен в документе.

Путем изменения p0 к этому [1000, 3.93, 0.01] подгонка кривой сойдется, и вы получите хорошую подгонку:

Другие вопросы по тегам