локально минимальная возможная проблема с использованием lsqcurvefit - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь подобрать модель, P (t) = P0 * exp (k * t) и оценить значение параметра k. У меня есть данные для P и т. В коде Matlab, который я написал, я получаю предупреждение, Местный минимум возможен. lsqcurvefit остановлен, потому что окончательное изменение суммы квадратов относительно его начальное значение меньше значения допуска по умолчанию для функции.

Итак, если я использую начальное предположение выше -30 (например, -1), я получаю вышеупомянутое предупреждение. Однако для значений выше -30 (например, -40 или -50) я получаю «Начальная точка - локальный минимум».

Тем не менее, я думаю, что оценочное значение параметра будет от -0,8 до -1.

Я попробовал предложения по здесь . Я попытался использовать различные начальные догадки и изменить допуск оптимальности, однако, это не решило проблему.

Это код:

initialGuess=-1;
time=[0;1;2;3;4;5;6];
data=[350000,210000,80000,20000,100,100,100];

data=(log10(data))';

lb=-150;
ub=0;

P_0=data(1);

model = @(x,time) P_0*exp(x(1).*time);
options = optimoptions('lsqcurvefit','OptimalityTolerance',1e-13,'FiniteDifferenceType','central'); 
[x,error]=lsqcurvefit(model,initialGuess,time,data,lb,ub,options)

Может кто-нибудь подскажите, пожалуйста, как найти оценку параметра для этих данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...