who can help me solve the error appearing in matlab cftool

3 Ansichten (letzte 30 Tage)
Ming
Ming am 18 Aug. 2014
Bearbeitet: dpb am 19 Aug. 2014
e+a.*((c-1)./c).^((1-c)./c) .* ((x-d)./b+((c-1)./c).^(1./c).^(c-1)) .* exp(-(x-d)./b+((c-1)./c).^(1./c).^c+(c-1)./c)
I use this function to make curve fittiing,but in matlab cftool appears this error:Ignoring NaNs in data. Complex value computed by model function, fitting cannot continue. Try using or tightening upper and lower bounds on coefficients.
I get this function from the sigmaplot curve fitting report:
Data Source: Data 1 in Notebook1 Equation: Peak, Weibull, 5 Parameter
f = if(x<=x0-b*((c-1)/c)^(1/c),
y0,
y0+a*((c-1)/c)^((1-c)/c) * (abs((x-x0)/b+((c-1)/c)^(1/c))^(c-1)) * ...
exp(-abs((x-x0)/b+((c-1)/c)^(1/c))^c+(c-1)/c))
this is the function that I used ,I just remove abs
R Rsqr Adj Rsqr Standard Error of Estimate
0.9425 0.8882 0.8868 3.0055
Coefficient Std. Error t P
a 29.1202 0.6399 45.5066 <0.0001
b 1.1594 0.0280 41.4211 <0.0001
c 1.5093 0.0413 36.5247 <0.0001
x0 6.1068 0.0252 241.9026 <0.0001
y0 2.2064 0.2053 10.7457 <0.0001
I also attach the original data

Antworten (1)

dpb
dpb am 18 Aug. 2014
Bearbeitet: dpb am 18 Aug. 2014
f = if(x<=x0-b*((c-1)/c)^(1/c),
y0,
y0+a*((c-1)/c)^((1-c)/c) * (abs((x-x0)/b+((c-1)/c)^(1/c))^(c-1)) * ...
exp(-abs((x-x0)/b+((c-1)/c)^(1/c))^c+(c-1)/c))
...this is the function that I used ,I just remove abs
Well, you did quite a lot else besides -- you removed the x<=x0... conditional section, as well as the abs()
I don't know SigmaPlot syntax, but just guessing I'd translate the above as
if x <= x0-b*((c-1)/c)^(1/c)
f=y0;
else
f=y0+a*((c-1)/c)^((1-c)/c) * ...
(abs((x-x0)/b+((c-1)/c)^(1/c))^(c-1)) * ...
exp(-abs((x-x0)/b+((c-1)/c)^(1/c))^c+(c-1)/c));
end
in Matlab.
Don't believe cftool has the flexibility for such a model with the conditional in it; you'll have to use one of the more sophisticated nonlinear fitting tools in Matlab.

Kategorien

Mehr zu Interpolation finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by