Apply boundary condition (upper and lower limit) to parameters during the fitting using the function nlinfit?
6 views (last 30 days)
Show older comments
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.
0 Comments
Answers (2)
Parag
on 14 May 2025
Edited: Parag
on 14 May 2025
The ‘nlinfit’ in MATLAB does not support parameter bounds directly . However, if you are required to use ‘nlinfit’, you can use this workaround to enforce parameter bounds:
Transform the parameters so that they always stay within bounds, even though ‘nlinfit’ optimizes over unbounded parameters.
Example: Suppose you want to constrain F(1) between 0 and 1. You can optimize over a new parameter theta, and define:
F(1) = 1 ./ (1 + exp(-theta)); % logistic transformation: bounded between 0 and 1 as exponent cannot be negative
so denominator will always be greater than 1 and in limiting case theta approaching to negative infinity this expression will approach to zero.
Hope it helps!
0 Comments
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!