Apply boundary condition to parameters during function nlinfit ?
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
function [] = nlinfitExample() % Here is an example of using nlinfit(). For simplicity, none of % of the fitted parameters are actually nonlinear! % Define the data to be fit x=(0:1:10)'; % Explanatory variable y = 5 + 3*x + 7*x.^2; % Response variable (if response were perfect) y = y + 2*randn((size(x)));% Add some noise to response variable % Define function that will be used to fit data % (F is a vector of fitting parameters) f = @(F,x) F(1) + F(2).*x + F(3).*x.^2; F_fitted = nlinfit(x,y,f,[1 1 1]); % Display fitted coefficients disp(['F = ',num2str(F_fitted)]) % Plot the data and fit figure plot(x,y,'*',x,f(F_fitted,x Does anyone knows how to apply boundary condition to the parameters during the fitting using the function nlinfit?
I know that this could be done using the function fit, but i need to use the function nlinfit. (in that regards see the post in the link attached)
Thank you very much in advance for the help.Does anyone knows how to apply boundary condition to the parameters during the fitting using the function nlinfit?
Thanks...
0 Kommentare
Antworten (1)
Parag
am 15 Apr. 2025
Yes, the standard ‘nlinfit’ function in MATLAB does not natively support constraints or boundary conditions on the parameters. However, if you must use ‘nlinfit’ due to specific project requirements, there are a couple of effective workarounds to apply parameter bounds indirectly.
One of the possible workarounds can be to reparametrize the model such that the optimization only explores values within your desired bounds.
If you want to restrict a parameter F(i) to lie between ‘a’ and ‘b’, you define a new variable ‘z(i)’ and map it using a bounded transformation like:
F(i)=a+(b−a) ⋅(1/(1+exp−z(i)))
This way, z(i) can vary freely during optimization, but ‘F(i)’ will always stay in [a,b].
You can refer to MATLAB documentation of ‘nlinfit’ for more details:
Hope it is beneficial!
0 Kommentare
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!