Error Using fitnlm Function
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Ricardo Gutierrez
am 19 Mär. 2021
Beantwortet: Star Strider
am 19 Mär. 2021
function regresion_parametros_secador
clc, clear, clear all
TR =[0.422103409 0.42981426 0.437540563 0.445266867 0.45299317 0.460719473 0.468445777 0.47617208 0.483898384 0.491624687 0.499350991 0.507077294 0.514803597 0.522529901 0.530256204 0.537982508 0.545708811 0.553435115 0.561161418 0.568887721 0.576614025 0.592066632 0.607519238 0.622971845 0.638424452 0.653877059 0.669329666 0.684782273 0.70023488 0.715687486 0.731140093 0.7465927 0.762045307 0.777497914 0.792950521 0.808403128 0.823855734 0.839308341 0.854760948 0.870213555 0.885666162 0.901118769 0.916571376 0.932023982 0.947476589 0.962929196 0.978381803 0.99383441 0.99993819];
HFG =[2500.9 2489.1 2477.2 2465.3 2453.5 2441.7 2429.8 2417.9 2406.0 2394.0 2382.0 2369.8 2357.6 2345.4 2333.0 2320.6 2308.0 2295.3 2282.5 2269.5 2256.4 2229.7 2202.1 2173.7 2144.2 2113.7 2081.9 2048.8 2014.2 1977.9 1939.7 1899.7 1857.3 1812.7 1765.4 1715.1 1661.6 1604.4 1543.0 1476.7 1404.6 1325.7 1238.4 1140.1 1027.3 892.7 719.8 443.8 0.0];
modelfun = @(p,HFG) (exp((p(1)+p(2)*(log(1./TR))^0.1+p(3)/TR.^2+p(4)/TR.^3+p(5)/TR.^4)^0.5));
beta0 = [0 53.63746882 0.01601773 0.031311254 0.071298912];
mdl = fitnlm(TR,HFG,modelfun,beta0)
end
%ERROR MESSAGE%
Error using nlinfit (line 205)
Error evaluating model function
'@(p,HFG)(exp((p(1)+p(2)*(log(1./TR))^0.1+p(3)/TR.^2+p(4)/TR.^3+p(5)/TR.^4)^0.5))'.
Error in NonLinearModel/fitter (line 1123)
nlinfit(X,y,F,b0,opts,wtargs{:},errormodelargs{:});
Error in classreg.regr.FitObject/doFit (line 94)
model = fitter(model);
Error in NonLinearModel.fit (line 1430)
model = doFit(model);
Error in fitnlm (line 94)
model = NonLinearModel.fit(X,varargin{:});
Error in regresion_parametros_secador (line 14)
mdl = fitnlm(TR,HFG,modelfun,beta0)
Caused by:
Error using ^
One argument must be a square matrix and the other must be a scalar. Use POWER (.^) for elementwise
power.
>>
0 Kommentare
Akzeptierte Antwort
Star Strider
am 19 Mär. 2021
Use element-wise operations on every applicable operation in ‘modelfun’ and transpose ‘modelfun’ to return a column vector, and it works:
TR =[0.422103409 0.42981426 0.437540563 0.445266867 0.45299317 0.460719473 0.468445777 0.47617208 0.483898384 0.491624687 0.499350991 0.507077294 0.514803597 0.522529901 0.530256204 0.537982508 0.545708811 0.553435115 0.561161418 0.568887721 0.576614025 0.592066632 0.607519238 0.622971845 0.638424452 0.653877059 0.669329666 0.684782273 0.70023488 0.715687486 0.731140093 0.7465927 0.762045307 0.777497914 0.792950521 0.808403128 0.823855734 0.839308341 0.854760948 0.870213555 0.885666162 0.901118769 0.916571376 0.932023982 0.947476589 0.962929196 0.978381803 0.99383441 0.99993819];
HFG =[2500.9 2489.1 2477.2 2465.3 2453.5 2441.7 2429.8 2417.9 2406.0 2394.0 2382.0 2369.8 2357.6 2345.4 2333.0 2320.6 2308.0 2295.3 2282.5 2269.5 2256.4 2229.7 2202.1 2173.7 2144.2 2113.7 2081.9 2048.8 2014.2 1977.9 1939.7 1899.7 1857.3 1812.7 1765.4 1715.1 1661.6 1604.4 1543.0 1476.7 1404.6 1325.7 1238.4 1140.1 1027.3 892.7 719.8 443.8 0.0];
modelfun = @(p,HFG) (exp(sqrt(p(1)+p(2).*(log(1./TR)).^0.1+p(3)./TR.^2+p(4)./TR.^3+p(5)./TR.^4))).';
beta0 = [0 53.63746882 0.01601773 0.031311254 0.071298912];
mdl = fitnlm(TR,HFG,modelfun,beta0)
producing:
mdl =
Nonlinear regression model:
y ~ F(p,HFG)
Estimated Coefficients:
Estimate SE tStat pValue
________ _______ _______ __________
b1 -5.3764 0.53639 -10.023 6.2155e-13
b2 80.604 1.2895 62.51 1.2803e-44
b3 -12.018 1.5173 -7.9205 5.2486e-10
b4 6.8052 1.0612 6.413 8.3294e-08
b5 -1.1397 0.2096 -5.4375 2.2468e-06
Number of observations: 49, Error degrees of freedom: 44
Root Mean Squared Error: 12.4
R-Squared: 1, Adjusted R-Squared 1
F-statistic vs. zero model: 2.6e+05, p-value = 3.84e-97
.
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Regression 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!