2016-06-22 4 views
0

Я нашел, как уместить двучленную экспоненциальную модель в Matlab с функцией подгонки:Fit Двучленная экспоненциальная модель в Matlab

f2 = fit(x,y,'exp2') 
f2(x) = a*exp(b*x) + c*exp(d*x) 

Однако, я не хочу использовать эту стандартную модель. Моя экспоненциальная модель:

f2(x) = a*exp(b*x) + (1-a)*exp(c*x) 

Может кто-нибудь, пожалуйста, помогите мне, как подгонять эту модель?

Привет из Голландии, Инге

ответ

0

Является ли это:

f = fit(x,y,fittype('a*exp(b*x)+(1-a)*exp(c*x)','coeff',{'a','b','c'})) 

что вы хотите? (с использованием команды matlab «help fittype»)

+0

Я не могу заставить его работать. Кажется, я что-то упустил. Я получаю это сообщение об ошибке: Ошибка при использовании fit> iFit (строка 340) Inf вычисляется с помощью функции модели, установка не может продолжаться. Попробуйте использовать или затягивать верхние и нижние границы коэффициентов. –

0

Я нашел ответ. Я использовал lsqcurvefit для нелинейной кривой. Возможно, для некоторых людей, заинтересованных в этом, вот код, который я использовал:

F = @(x,xdata)S0*((1-x(1))*exp(-1*xdata*x(2)) + x(1)*exp(-1*xdata*x(3))); 
x0 = [0 0 0 ]  
[x] = lsqcurvefit(F,x0,xdatapoints,y);